Inflearn brand logo image

인프런 커뮤니티 질문&답변

오장일님의 프로필 이미지
오장일

작성한 질문수

AI 에이전트로 구현하는 RAG 시스템(w. LangGraph)

랭체인 (LangChain) 에이전트(Agent) 활용하기

agent_executor 실행시 JSONDecodeError에러가 발생해요.

작성

·

50

0

문제가 발생하는 코드

ㄴ LLM모델만 gemini-2.5-pro로 사용하고 있고 다른 부분은 다른게 없는데 아래의 에러가 발생하네요...

혹시 도와주실 수 있을까요?

 

# AgentExecutor 실행

query = "시그니처 스테이크의 가격과 특징은 무엇인가요? 그리고 스테이크와 어울리는 와인 추천도 해주세요."
agent_response = agent_executor.invoke({"input": query})

에러로그

Entering new AgentExecutor chain... Invoking: search_menu with {'query': 'Signature Steak'} [Document(metadata={'menu_name': '시그니처 스테이크', 'menu_number': 1, 'source': './data/restaurant_menu.txt'}, page_content='1. 시그니처 스테이크\n • 가격: ₩35,000\n • 주요 식재료: 최상급 한우 등심, 로즈메리 감자, 그릴드 아스파라거스\n • 설명: 셰프의 특제 시그니처 메뉴로, 21일간 건조 숙성한 최상급 한우 등심을 사용합니다. 미디엄 레어로 조리하여 육즙을 최대한 보존하며, 로즈메리 향의 감자와 아삭한 그릴드 아스파라거스가 곁들여집니다. 레드와인 소스와 함께 제공되어 풍부한 맛을 더합니다.'), Document(metadata={'menu_name': '안심 스테이크 샐러드', 'menu_number': 8, 'source': './data/restaurant_menu.txt'}, page_content='8. 안심 스테이크 샐러드\n • 가격: ₩26,000\n • 주요 식재료: 소고기 안심, 루꼴라, 체리 토마토, 발사믹 글레이즈\n • 설명: 부드러운 안심 스테이크를 얇게 슬라이스하여 신선한 루꼴라 위에 올린 메인 요리 샐러드입니다. 체리 토마토와 파마산 치즈 플레이크로 풍미를 더하고, 발사믹 글레이즈로 마무리하여 고기의 풍미를 한층 끌어올렸습니다.')] Invoking: search_wine with {'query': 'steak'} [Document(metadata={'menu_name': '사시카이아 2018', 'menu_number': 3, 'source': './data/restaurant_wine.txt'}, page_content='3. 사시카이아 2018\n • 가격: ₩420,000\n • 주요 품종: 카베르네 소비뇽, 카베르네 프랑, 메를로\n • 설명: 이탈리아 토스카나의 슈퍼 투스칸 와인입니다. 블랙베리, 카시스의 강렬한 과실향과 함께 허브, 가죽, 스파이스 노트가 복잡성을 더합니다. 풀바디이지만 우아한 타닌과 신선한 산도가 균형을 잡아줍니다. 오크 숙성으로 인한 바닐라, 초콜릿 향이 은은하게 느껴집니다.'), Document(metadata={'menu_name': '샤토 디켐 2015', 'menu_number': 9, 'source': './data/restaurant_wine.txt'}, page_content='9. 샤토 디켐 2015\n • 가격: ₩800,000 (375ml)\n • 주요 품종: 세미용, 소비뇽 블랑\n • 설명: 보르도 소테른 지역의 legendary 디저트 와인입니다. 아프리콧, 복숭아, 파인애플의 농축된 과실향과 함께 꿀, 사프란, 바닐라의 복잡한 향이 어우러집니다. 놀라운 농축도와 균형 잡힌 산도, 긴 여운이 특징이며, 100년 이상 숙성 가능한 와인으로 알려져 있습니다.')]

--------------------------------------------------------------------------- JSONDecodeError Traceback (most recent call last) Cell In[163], line 4 1 # AgentExecutor 실행 3 query = "시그니처 스테이크의 가격과 특징은 무엇인가요? 그리고 스테이크와 어울리는 와인 추천도 해주세요." ----> 4 agent_response = agent_executor.invoke({"input": query}) File c:\Users\jangi\AppData\Local\pypoetry\Cache\virtualenvs\langgraph-agent-AGzdf7hx-py3.11\Lib\site-packages\langchain\chains\base.py:170, in Chain.invoke(self, input, config, kwargs) 168 except BaseException as e: 169 run_manager.on_chain_error(e) --> 170 raise e 171 run_manager.on_chain_end(outputs) 173 if include_run_info: File c:\Users\jangi\AppData\Local\pypoetry\Cache\virtualenvs\langgraph-agent-AGzdf7hx-py3.11\Lib\site-packages\langchain\chains\base.py:160, in Chain.invoke(self, input, config, kwargs) 157 try: 158 self._validate_inputs(inputs) 159 outputs = ( --> 160 self._call(inputs, run_manager=run_manager) 161 if new_arg_supported 162 else self._call(inputs) 163 ) 165 final_outputs: Dict[str, Any] = self.prep_outputs( 166 inputs, outputs, return_only_outputs 167 )

...

339 if end != len(s): --> 340 raise JSONDecodeError("Extra data", s, end) 341 return obj JSONDecodeError: Extra data: line 1 column 29 (char 28)

Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...

 

답변 4

0

오장일님의 프로필 이미지
오장일
질문자

빠른 답변 감사합니다. 아래의 모델 변경으로 해결하였습니다~

gemini-2.5-flash

 

0

판다스 스튜디오님의 프로필 이미지
판다스 스튜디오
지식공유자

안녕하세요. 판다스스튜디오입니다.

gemini-2.5-pro 모델로 tool calling 등 구조화 출력을 수행하는 부분에서 커뮤니티에서도 관련 에러에 대한 이슈가 이야기 되고 있습니다. Thinking 모델의 출력을 LangChain/LangGraph에서 처리하는 부분에서 에러가 발생하고 있고, 아직 관련 문제가 해결되지 않은 상태입니다.

https://github.com/langchain-ai/langgraph/issues/4780

당분간은 gpt-4.1 계열이나 gemini-2.0-flash 모델을 사용하셔야 할 것 같습니다.

새로운 모델이 나올 때 종종 발생하는 문제입니다. 참고하시기 바랍니다.

 

감사합니다.

 

0

오장일님의 프로필 이미지
오장일
질문자

네 저도 ai에 문의해서 같은 답변을 받았는데 해결방법을 알수가 없어서....질문한거여서요..ㅠㅠ

0

안녕하세요, 인프런 AI 인턴입니다. 오장일님.

AgentExecutor를 사용하는 과정에서 발생한 JSONDecodeError는 일반적으로 JSON 처리 중에 잘못된 형식의 데이터가 포함될 때 발생합니다. 이를 해결하기 위해 몇 가지 확인해야 할 사항과 조치를 제안드립니다:

  1. 입력 데이터 확인: agent_executor.invoke에 전달되는 입력이 제대로 구성된 JSON 포맷인지 확인하세요. 특히 중첩된 JSON 객체나 리스트가 있을 경우, 문자열 형식이 올바른지 확인이 필요합니다.

  2. 출력 포맷 확인: AgentExecutor의 출력이 예상한 데이터 구조와 일치하지 않을 수 있습니다. 특히 각 단계별로 반환되는 데이터 포맷이 Json으로 직렬화될 수 있는지 점검해 보아요.

  3. 디버깅: 일부분의 코드를 주석 처리해가며, 어느 시점에서 에러가 발생하는지 세부적으로 확인하거나, test 데이터로 대체하여 문제 유발 요소를 찾아보세요.

  4. 문서와의 일치 검사: 강의 내 제공된 예제 코드를 참조하여 입력 및 출력 포맷이 맞는지 번현히 확인해보세요.

JSON 에러가 발생한 부분이 “Extra data: line 1 column 29 (char 28)“를 가리키는 것으로 보아, parsing하는 중에 예상치 못한 추가 데이터가 포함됐음을 나타냅니다. 이는 JSON 구조의 마지막에 불필요한 데이터가 있을 때 흔히 발생합니다.

보다 구체적인 원인 파악 및 해결 방법에 대해 소통할 수 있도록, 기존에 다룬 유사한 게시물로 유도합니다:

  • “플러그인 활용 문제”에서는 유사한 상황에서의 JSON 오류 해결을 위한 다양한 접근법에 대한 제안을 제공하고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

오장일님의 프로필 이미지
오장일

작성한 질문수

질문하기