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

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

quan33님의 프로필 이미지

작성한 질문수

LangGraph를 활용한 LLM Agent 개발

llm의 응답을 특정문자열 내에서만 응답하도록하는법

작성

·

47

0

안녕하세요 강의 잘 듣고있습니다.

 

llm을 이용해 카테고리화된 응답 을 받아야할때 강의에서 사용한 아래와같은 프롬프트를 사용하는데

doc_relevance_prompt = hub.pull("langchain-ai/rag-document-relevance")

 

모델에 따라 제가 원하는 단어가 아닌 문장단위가 나와서 판단 로직이 잘 수행되지않더라고요

이런 경우 프롬프트 말고 다른 해결 책이 있을까요?

 

특정 문자열이 아니면 irrelevant 이런 식으로 처리하려고해도 대부분의 질문이 관련 없다 라고만 판단을 해서 제대로된 기능 사용이 힘드네요

답변 2

0

강병진님의 프로필 이미지
강병진
지식공유자

안녕하세요! 좋은 질문 감사합니다.

langchain-ai/rag-document-relevance 프롬프트가 Score를 리턴하게 되어있어서 강의에서는 score를 기반으로 어떤 노드로 진행할지 판단하는데요, 만약 LLM 실행 결과를 relevant 또는 irrelevant 로 강제하고 싶다면 Structured Outputs을 활용하는 것이 가장 무난할 것 같습니다.

dictionary나 pydantic model을 활용해서 답변의 형식을 지정하는 방식인데요, 한번 시도해보시고 정상적으로 동작하지 않는다면 다시 말씀 부탁드립니다!

0

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

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

LLM을 사용할 때 특정 문자열이나 단어에 대해 명확하게 응답을 받기 위해서는 몇 가지 접근법을 고려해 볼 수 있습니다.

  1. 프롬프트 수정: 프롬프트를 사용하여 모델에게 구체적으로 원하는 유형의 응답을 잘 전달해야 합니다. 예를 들어, “응답은 반드시 [이 포맷]을 따라야 합니다: ‘관련 있음’/‘관련 없음’“과 같이 명확하게 요구사항을 제시해 보세요.

  2. 후처리 로직 추가: 모델의 응답을 받은 후, 응답을 문자열로 처리하는 로직을 추가할 수 있습니다. 예를 들어, “관련 있음” 또는 “관련 없음”의 키워드가 포함되어 있는지 탐색하고, 없는 경우 추가적인 로직을 통해 보정할 수 있습니다.

  3. 모델 미세 조정 (Fine-tuning): 필요하다면, 원하는 형식의 결과를 얻기 위해 모델을 미세 조정하여 상황에 맞는 답변을 하도록 학습시킬 수 있습니다.

  4. 레벨 셋팅: Threshold를 설정하여 특정 키워드 또는 패턴이 응답 내에 포함되어야만 ‘관련 있음’으로 처리되도록 할 수 있습니다.

이러한 방법을 사용하면, 응답의 정확도를 높이고 원하는 조건 내에서 작동하도록 개선할 수 있습니다.

관련된 또 다른 질문에 대한 설명은 아래 링크에서 확인해 보실 수 있습니다:
- “LangSmith를 활용한 LLM Evaluation에서 metadata 만드는법”

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

quan33님의 프로필 이미지

작성한 질문수

질문하기