summ의 블로그

[Langchain] rag multiquery & LCEL 본문

langchain

[Langchain] rag multiquery & LCEL

summ._ 2024. 9. 10. 16:10
 

 

MultiQueryRetriever 초기화

 

logging 설정

  • 디버깅이나 모니터링을 위하여 소프트웨어 동작 상태 정보를 기록해서 볼 수 있음
  • 로그(log)를 생성하도록 시스템을 작성하는 활동
  • 문제가 발생하는 경우 로그가 중요한 정보를 제공하기에 문제 진단, 해결가능
  • INFO: 상태 변경과 같은 정보성 로그를 표시
  • retriever.get_relevant_documents 질의와 관련된 문서를 검색하고 반환
  • 쿼리와 관련하여 검색기가 찾은 문서 수: 5개

Adding the Generation in RAG

  • 지금까진 쿼리로 구동되는 rag를 구축
  • 템플릿 생성 추가, 체인 생성

Chaining Everything with a SequentialChain

  • 여러 개의 체인을 연결
  • d.page_content: 텍스트 콘텐츠 추출, 검색된 각 문서에서 텍스트 콘텐츠(페이지 콘텐츠) 목록을 생성
  • context 결합: 모든 문서 텍스트를 단일 문자열을 \n---\n으로 구분하여 원래 쿼리와 함께 딕셔너리에 저장
  • TransformChain(retrieval_chain)으로 쿼리와 관련된 문서를 검색하고 처리
  • SequentialChain으로 앞선 출력물(쿼리와 컨텍스트로 생성된 사전)을 qa_chain으로 전달하여 최종 답변을 생성 

LangChain Expression Language LCEL

  • 다양한 구성 요소를 단일 체인으로 결합할 때 사용
  • LCEL이 무엇인지, 어떻게 작동하는지, LCEL 체인, 파이프 및 Runnables의 필수 요소
lcel_chain = prompt | model | output_parser

 

Runnables

  • 작업 유연성 극대화
  • 벡터 저장소 구성요소 초기화

RunnableParallel

  • 여러 작업을 병렬로 실행함. 해당 작업이 동시에 실행
  • 내부의 작업은 동일한 입력을 받고 독립적으로 사용하거나 나중에 결합할 수 있는 다양한 출력을 생성

RunnablePassthrough

  • 입력을 수정하지 않고 체인의 현재 단계를 통해 직접 전달
  • 원래 입력 또는 입력/출력의 일부를 전달하여 다음 단계에서 사용가능

'langchain' 카테고리의 다른 글

[Langchain] Streaming  (0) 2024.09.06
[Langchain] retrieval augmented generation  (0) 2024.09.05
[Langchain] AI agent  (0) 2024.09.04
[Langchain] Retrieval Agents  (0) 2024.08.21
[Langchain] chain  (0) 2024.07.15