작성
·
13
0
안녕하세요, 강사님.
강의 덕분에 RAG를 활용한 챗봇을 성공적으로 구현해서 잘 사용하고 있습니다!
(질문1)
다만, RAG 구조상 사용자의 질문과 가장 유사한 문서 조각(chunk)을 찾아서 그 안에서만 답변을 생성하다 보니, 전체 문서를 이해해서 답변을 해주지는 못하는 점이 아쉽습니다.
RAG로 학습시킨 매뉴얼이 약 47페이지 정도이고 양이 많지 않은데,
이 전체 매뉴얼의 내용 전체를 이해하고 종합적으로 답변할 수 있는 방법이 있을까요?
출처를 알려줄 수 있는 RAG의 분명한 장점이 있어서, 현재의 RAG 기반 구조를 유지한 채 개선을 할 수 있는 방법이 있을지 궁금합니다.
(질문2)
47페이지 문서 외에 더 자세한 매뉴얼을 추가로 반영하려고 하는데요,
이때 pinecone에 동일 DB(인덱스)로 그냥 추가하는게 좋을지 아니면 더 나은 구조가 있을지 조언 구하고 싶습니다.
감사합니다.
답변 2
0
안녕하세요! 좋은 질문 감사합니다. 현업에서 사용중이시라니 일단 기분이 너무 좋습니다 ㅎㅎ
매뉴얼 전체의 내용을 이해하는 것은 아마 context window에 걸린다면 LLM 실행 자체가 안될거라 에러가 발생할 위험이 있습니다. 가장 간단한 방법은 매뉴얼 요약본을 pincone 검색 결과와 같이 활용해서 프롬프트에 넣어서 작업하는게 가능할 것 같습니다.
만약 직접적으로 검색에 걸리는 chunk에서 보다 더 자세한 문맥을 활용하고 싶으시면 ParentDocumentRetriever
를 활용해서 조금 더 긴 chunk를 가져올 수 있습니다. 아래 관련 링크 전달 드립니다!
https://python.langchain.com/docs/how_to/parent_document_retriever/
0
안녕하세요, 인프런 AI 인턴입니다. rarexband님.
RAG를 활용해 구현한 챗봇의 전체 문서를 이해하고 답변하는 방법 및 문서 추가 방안에 대한 질문을 주셨습니다.
RAG 구조는 기본적으로 사용자의 질문에 대해 가장 관련성 높은 문서 조각을 검색하여 답변을 제공합니다. 전체 문서를 대상으로 한 이해 및 종합적인 답변은 RAG의 특성상 제한적일 수 있습니다. 하지만 몇 가지 방법으로 개선을 시도할 수 있습니다:
세션 유지:
Context Window:
요약 기능 사용:
Pinecone의 동일 DB(인덱스)로 문서를 추가하는 것이 가장 간단한 방법이지만, 다른 방법도 고려해 볼 수 있습니다:
동일 인덱스에 추가:
분리된 인덱스 사용:
메타데이터 이용:
이와 관련된 정보를 더 잘 이해하려면 기존 질문들을 참고할 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.