[Langchain] Langfuse로 RAG시스템 모니터링하기

최영섭·2024년 5월 6일
0

0. 배경 및 요구사항

1) 배경

  • 기존에 Lnagwatch를 통해 모니터링을 하려고 시도했었다.
  • langwatch에서는 연동을 위해 단계적으로 진행해줘야하는 작업들이 있었고 이를 시도하다 Lnagfuse를 찾게 되어 적용해보게 되었다.

2) 요구사항

  • 챗봇 사용량, 유저 쿼리(질문과 찾은 레퍼런스를 포함)에 대한 답변 품질 모니터링
  • RAG시스템 성능 평가 및 프롬프트 개선

1. 설치

설치는 굉장히 간단했다.

langfuse 라이브러리를 설치하고

pip install langfuse

내가 langchain에서 chain을 invoke하는 부분에서 callback함수로 아래와 같이 넣어주기만 하면 됐어

from langfuse.callback import CallbackHandler

langfuse_handler = CallbackHandler(
    public_key="pk-lf-1e3626d4-4d63-458a-9af7-203de169a0cc",
    secret_key="sk-lf-d70b6926-7ad7-4b10-ae3a-1985163322a8",
    host="https://cloud.langfuse.com"
)

QueryResponse = QueryChain.invoke({"input": user_question}, config={"callbacks": [langfuse_handler]})

2. 모니터링 결과


그리고 더 놀라운 점은 위와 같이 단순한 연동임에도 불구하고 아래처럼 우리가 제작한 chain구조 각각에 대해 트래킹이
이러한 부분들을 봤을때 확실히 langwatch보다는 나았다.

3. 추가 기능

그 외에서 우리가 계속 고민했던 프롬프트 버전관리 부분이나

평가 및 저장 관리 기능도 모두 제공해서 너무 좋은듯 하다.

profile
세상에 필요한 것을 고민하고 그것을 만드는 과정에서 문제를 해결하는 일이 즐겁습니다. 창업, 백엔드, RAG에 관심을 가지고있습니다.

0개의 댓글