• 카테고리

    질문 & 답변
  • 세부 분야

    AI · ChatGPT 활용

  • 해결 여부

    미해결

SelfQueryRetriever 사용시

24.07.02 17:26 작성 조회수 32

0

안녕하세요 SelfQueryRetriever를 이용하여 메타데이터별로 문제를 생성하는 코드를 작성 중에 궁금한 것이 생겨서 질문드립니다. 데이터별로 메타데이터에 카테고리를 저장해놓았는데 카테고리별로 llm을 돌릴때마다 각 카테고리 내에서 문서를 랜덤하게 가져올 수 있는 방법이 있을까요??

카테고리를 잘 인식해서 가져오는데 llm을 돌릴때마다 같은 데이터를 벡터db에서 받아와 생성합니다.

 

 

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.07.04

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

SelfQueryRetriever를 사용하여 카테고리별로 문서를 랜덤하게 가져오기 위해서는 몇 가지 접근 방식을 고려할 수 있습니다.

  1. 데이터 로딩 단계에서 랜덤성 주기: 메타데이터를 로딩할 때, 특정 카테고리에 속한 문서들을 먼저 필터링하고 그 중에서 랜덤하게 문서를 선택하여 llm에 입력하는 방식입니다. Python의 random.choice() 함수를 사용하여 구현할 수 있습니다.

  2. 벡터 데이터베이스 쿼리 수정: 벡터 데이터베이스에서 쿼리를 날릴 때, 카테고리별로 문서를 랜덤하게 가져오는 조건을 추가하는 방법입니다. 이는 사용하고 있는 벡터 데이터베이스의 쿼리 언어나 API에 따라 구현 방법이 달라질 수 있습니다.

  3. 포스트 프로세싱 단계에서 랜덤 선택: llm에 의해 반환된 카테고리별 문서 목록에서, 후처리 과정을 통해 랜덤하게 하나를 선택하는 방식입니다. 이 방법은 llm이 반환한 결과 중에서 후속 처리로 랜덤 선택을 하는 것이므로, 전처리 단계에서 랜덤성을 주는 것보다는 제한적일 수 있습니다.

정확한 구현 방법은 사용하고 있는 llm의 API와 벡터 데이터베이스의 기능, Python 라이브러리 등에 따라 다를 수 있으므로, 개별 환경에 맞게 적용해 보시기 바랍니다.

채널톡 아이콘