RAG 응답에 대한 커스텀(JSON)
프롬프트 포맷 및 중괄호 사용:LangChain의 프롬프트에서 중괄호 {{}}를 사용할 때는 보간을 위해 사용하는데, JSON 내에서 사용하려면 이중으로 사용해야 합니다. 한번 더 확인해보세요.Typo 또는 이름 불일치:중간에 변수 사용이나 반환 값에서 delivery_address와 같은 키가 선언되어 있어야 합니다. 프롬프트 내에서 잘못 기재되었는지 점검해보세요. 해당 의견을 반영하면 어떻게 되어야 하는지 예시를 볼 수 있을까요? 기존에반환값 포맷: { "message": {{message}}, "data": { "delivery_address": {{delivery_address}}, "phone_number": {{phone_number}} } } """)에서반환값 포맷: {{{ "message": {{message}}, "data": { "delivery_address": {{delivery_address}}, "phone_number": {{phone_number}} } }}} """)이렇게 하면 되는 건가요? 또 리턴값에 delivery_address 가 선언되어야 한다고 했는데 어디에서 선언해야 하는건지요? state에 선언되어야 하는건가요? from typing_extensions import TypedDict class DataState(TypedDict): delivery_address: str phone_number: str class AgentState(TypedDict): question: str message: str data: DataState 이렇게 선언해두고 자시 실행해봐도 KeyError Traceback (most recent call last) Cell In[12], line 2 1 initial_state = {'question': '대왕판교로 1234 201동 앞에 01022384938'} ----> 2 graph.invoke(initial_state) File ~/miniconda3/envs/ai/lib/python3.11/site-packages/langgraph/pregel/main.py:3026, in Pregel.invoke(self, input, config, context, stream_mode, print_mode, output_keys, interrupt_before, interrupt_after, durability, kwargs) 3023 chunks: list[dict[str, Any] | Any] = [] 3024 interrupts: list[Interrupt] = [] -> 3026 for chunk in self.stream( 3027 input, 3028 config, 3029 context=context, 3030 stream_mode=["updates", "values"] 3031 if stream_mode == "values" 3032 else stream_mode, 3033 print_mode=print_mode, 3034 output_keys=output_keys, 3035 interrupt_before=interrupt_before, 3036 interrupt_after=interrupt_after, 3037 durability=durability, 3038 kwargs, 3039 ): 3040 if stream_mode == "values": 3041 if len(chunk) == 2:... 255 else: --> 256 return kwargs[key] KeyError: '\n "delivery_address"' During task with name 'generate' and id '800f8345-efd6-2e9b-4ae5-e8bbabce0b7b'이런 키에러가 납니다..