Home [RAG] langchain활용 RAG 챗봇 구축기 part 2 /4
Post
Cancel

[RAG] langchain활용 RAG 챗봇 구축기 part 2 /4

0.프로젝트 정의 및 개발 환경

  • 프로젝트 정의 : 1900년대 문서들부터 최신 문서까지 약 1,000건의 문서를 기반으로한 RAG 구축
  • 개발 환경 : Ubuntu
  • 활용 프레임워크 : Langchain
  • 활용 LLM : OpenAI API
  • Vector Store : MILVUS(chromadb, pinecone)
  • 데이터 형태 : Source로 사용될 문서는 1건의 csv 문서, 1건의 excel문서와 PDF 문서들

1. 1차 프롬프트 업데이트

  • RAG 관련 프롬프팅을 많이 찾아봤지만 일반적인 것들만 나오고 타겟 서비스에 적합한 것들은 직접 구축해야하는 것으로 확인
  • 요구사항
    • 문서 내에 있는 결과만 활용하여 응답할 것
    • 출처에 대한 표기가 명확할 것
    • 문서를 찾지 못한 경우 찾지 못 했다고 응답할 것
  • 기본적인 옵션들과 요구사항에 얼추 맞게 작성
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    prompt = """{아래 주어진 말들을 잘 따라라}
    {챗봇의 이름, 역할 등등 명확하게}
    {신신당부해야할 규칙들 ex)결과만 활용해라, 출처를 표기해라, 모르면 모른다 해라 등등 }
    --------------------
    response tempalet
    {원하는 형테의 응답 템플릿}
    --------------------
    {입력된 문서에 기반하여 응답은 response template을 따라서 해라}
    """
    

2. 1차 프롬프트 테스트 결과

  • 기존의 자유로운 응답보다 입력한 템플릿에 맞는 통일된 형태의 응답하게 됨
  • 종종 유사하지도 않은 문서들을 가져오는 경우 발생
  • 날짜에 대한 입력을 정상적으로 처리하지 못함(ex. 오늘 며칠이야?)
  • 일반적인 인사에 대해서도 대응하지 못함 -> 유사한 문서를 기반으로 응답함

3. 2차 프롬프트 업데이트

1
2
3
4
5
6
7
8
9
10
11
prompt = """{아래 주어진 말들을 잘 따라라}
{챗봇의 이름, 역할 등등 명확하게 정의}
{신신당부해야할 규칙들 ex)결과만 활용해라, 출처를 표기해라, 모르면 모른다 해라 등등 }
{인사가 들어오면 인사해라}
{오늘의 YYYY년 MM월 DD일이다}
--------------------
response tempalet
{원하는 형테의 응답 템플릿}
--------------------
{입력된 문서에 기반하여 응답은 response template을 따라서 해라}
"""

4. 2차 프롬프트 테스트 결과

  • 인사, 날짜 부분은 해결
  • 과거 데이터를 기반으로 한 답변이 생성되거나 날자에 대한 기준을 명확하게 이해하지 못함
  • 프롬프팅으로 처리할 수 있는 부분은 어느정도 해결된것으로 보이며 문서를 더 잘 찾을 수 있도록 해주는 부분이 필요할 것으로 판단
  • 우선 문서 검색을 해결하고 추후에 프롬프트를 업데이트 진행

5. 추가 고도화 방향

1) 프롬프트 업데이트 2) 데이터 구조 업데이트 3) 리트리버 업데이트

This post is licensed under CC BY 4.0 by the author.

[RAG] langchain활용 RAG 챗봇 구축기 part 1 /4

[RAG] langchain활용 RAG 챗봇 구축기 part 3 /4

Trending Tags