인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

SPAGGY님의 프로필 이미지

작성한 질문수

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

Agent RAG 시스템을 그래프로 구현

Agent RAG 구현에서 '정보 추출 및 평가' 노드 결과 애러

작성

·

29

·

수정됨

0

안녕하세요, 강사님.

강의 마지막 섹션 Agent RAG 시스템을 그래프로 구현 에서 # 4. Agent RAG 구현 부분에서 LLM 모델에 따라 결과 다르게 나오는 것 같습니다.

참고로, 저는 ANTHROPIC claude-3-7-sonnet-20250219 모델을 사용하는데요.

다음과 같이, '정보 추출 및 평가' 노드에서 애러가 발생합니다. 안정적인 결과를 얻기 위해서는 어떤 방안이 좋을지 의견을 부탁 드립니다.

 

---정보 추출 및 평가---

ValidationError: 2 validation errors for ExtractedInformation

strips

Input should be a valid list [type=list_type, input_value='[\n {\n "content": "...="query_relevance">0.95', input_type=str]

For further information visit https://errors.pydantic.dev/2.10/v/list_type

query_relevance

Field required [type=missing, input_value={'strips': '[\n {\n "..."query_relevance">0.95'}, input_type=dict]

For further information visit https://errors.pydantic.dev/2.10/v/missing

수업 영상 몇 분/초 구간인지 알려주세요.

답변 2

0

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

안녕하세요. 답변이 늦었습니다.

Pydantic에서 기대하는 출력 구조가 OpenAI와 Anthropic이 다르기 때문에 발생한 에러로 보입니다.

수업 영상 몇 분/초 구간인지 알려주시면 같은 모델로 테스트해보겠습니다.

SPAGGY님의 프로필 이미지
SPAGGY
질문자

"Agent RAG 시스템을 그래프로 구현" 10분 30초 구간입니다.

감사합니다.

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

안녕하세요.
Claude를 사용할 때 구조화된 출력 스키마에서 리스트 구조 처리하는 과정에서 문제가 발생한 것 같습니다. 다음과 같이 프롬프트에 추출하려는 구조를 명시하면 해결됩니다.

        extract_prompt = ChatPromptTemplate.from_messages([
            ("system", """당신은 개인정보보호법 전문가입니다. 주어진 문서에서 질문과 관련된 주요 사실과 정보를 3~5개 정도 추출하세요. 
            각 추출된 정보에 대해 다음 두 가지 측면을 0에서 1 사이의 점수로 평가하세요:
            1. 질문과의 관련성
            2. 답변의 충실성 (질문에 대한 완전하고 정확한 답변을 제공할 수 있는 정도)
            
            당신의 응답은 반드시 다음 JSON 구조를 따라야 합니다:
            {{
              "strips": [
                {{
                  "content": "추출된 정보 내용",
                  "source": "정보의 출처",
                  "relevance_score": 0.9,
                  "faithfulness_score": 0.9
                }},
                ...
              ],
              "query_relevance": 0.8
            }}
            
            모든 점수는 0에서 1 사이의 숫자여야 합니다.
            """),
            ("human", "[질문]\n{question}\n\n[문서 내용]\n{document_content}")
        ])


감사합니다.

0

인프런 AI 인턴님의 프로필 이미지

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

‘정보 추출 및 평가’ 노드에서 발생한 문제는 Pydantic을 이용한 데이터 유효성 검사에서 발생하는 오류로, 모델의 출력이 예상한 데이터 구조와 일치하지 않기 때문에 발생할 수 있습니다. 이를 해결하기 위해 아래 몇 가지 접근 방법을 제안드립니다:

  1. 모델 출력 조정: ANTHROPIC의 ‘claude-3-7-sonnet-20250219’ 모델이 특정 형식의 출력을 반환하고 있는지 확인해보세요. 만약 그렇다면, 모델에 추가적인 지시 또는 프롬프트 엔지니어링을 통해 형식을 수정할 수 있습니다.

  2. 에러 메시지 분석: 에러 메시지를 통해 무엇을 수정해야 하는지 명확히 파악할 수 있습니다. query_relevance 필드가 누락되었다는 점을 지적하고 있으므로, 예상하는 JSON 구조에 이 필드를 추가해서 모델의 출력을 조정해보세요.

  3. 출력 변환 로직 추가: Pydantic의 데이터 모델로 변환하기 전에 모델의 출력을 변환하는 로직을 추가해서, 적절한 필드가 포함되도록 중간 처리를 해보세요.

아래는 이와 관련된 유사한 상황에서의 논의 및 해결 방법을 다룬 게시물입니다:

이 진행 중인 문제에 대한 포괄적인 해결책이 필요하다면, 관련 강의의 프롬프트 및 모델 사용 방법 섹션을 주의 깊게 살펴보시는 것도 권장드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

SPAGGY님의 프로필 이미지

작성한 질문수

질문하기