LangConnect: LangChain 기반의 효율적인 RAG 서비스

  • 카카오톡 공유하기
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 링크 복사하기

LangConnect는 FastAPI와 LangChain, Python을 기반으로 구축된 RAG(Retrieval-Augmented Generation) 서비스입니다. 이 서비스는 컬렉션과 문서를 관리하기 위한 REST API를 제공하며, PostgreSQL과 pgvector를 사용하여 벡터 저장소를 구현합니다.

https://github.com/langchain-ai/langconnect

주요 기능

  • FastAPI 기반의 REST API
  • PostgreSQL과 pgvector를 활용한 문서 저장 및 벡터 임베딩
  • Docker를 통한 간편한 배포 지원

시작하기

사전 요구사항

  • Docker 및 Docker Compose
  • Python 3.11 이상

Docker를 사용한 실행 방법

1. 저장소 클론하기:

git clone https://github.com/langchain-ai/langconnect.git
cd langconnect

2. 서비스 시작하기:

docker-compose up -d

이 명령어는 다음과 같은 작업을 수행합니다:

  • pgvector 확장이 설치된 PostgreSQL 데이터베이스 시작
  • LangConnect API 서비스 빌드 및 시작

3. API 접근하기:

  • API 문서: http://localhost:8080/docs
  • 헬스 체크: http://localhost:8080/health

개발 환경

라이브 리로드 기능이 있는 개발 모드에서 서비스를 실행하려면:

docker-compose up

API 문서

서비스가 실행 중일 때 http://localhost:8080/docs에서 API 문서를 확인할 수 있습니다.

환경 변수

다음 환경 변수는 docker-compose.yml 파일에서 구성할 수 있습니다:

  • POSTGRES_HOST: PostgreSQL 호스트 (기본값: postgres)
  • POSTGRES_PORT: PostgreSQL 포트 (기본값: 5432)
  • POSTGRES_USER: PostgreSQL 사용자 이름 (기본값: postgres)
  • POSTGRES_PASSWORD: PostgreSQL 비밀번호 (기본값: postgres)
  • POSTGRES_DB: PostgreSQL 데이터베이스 이름 (기본값: postgres)

주요 API 엔드포인트

기본적으로 API이용에 따른 권한은 Bearer 를 사용합니다. 1시간 간격으로 refresh를 해야 하므로, 이것을 고려한 시스템 설계가 필요할것으로 보입니다.

컬렉션(Collections) 관리

  • GET /collections: 모든 컬렉션 목록 조회
  • POST /collections: 새 컬렉션 생성
  • GET /collections/{collection_id}: ID로 특정 컬렉션 조회
  • DELETE /collections/{collection_id}: ID로 특정 컬렉션 삭제

문서(Documents) 관리

  • GET /collections/{collection_id}/documents: 특정 컬렉션의 모든 문서 목록 조회
  • POST /collections/{collection_id}/documents: 특정 컬렉션에 새 문서 생성
  • DELETE /collections/{collection_id}/documents/{document_id}: ID로 특정 문서 삭제
  • POST /collections/{collection_id}/documents/search: 의미론적 검색을 사용하여 문서 검색

LangConnect의 활용 사례

LangConnect는 다음과 같은 다양한 시나리오에서 활용될 수 있습니다:

  • 문서 기반 질의응답 시스템 구축
  • 지식 베이스 관리 및 검색
  • 의미론적 검색 기능이 필요한 애플리케이션
  • AI 챗봇을 위한 백엔드 서비스

결론

LangConnect는 LangChain 생태계의 일부로, RAG 시스템을 쉽게 구축하고 관리할 수 있는 강력한 도구입니다. FastAPI와 PostgreSQL의 조합으로 확장성과 성능을 모두 갖추고 있으며, Docker 지원을 통해 배포가 간편합니다. 문서 관리와 의미론적 검색 기능을 필요로 하는 프로젝트에 LangConnect를 도입하면 개발 시간을 크게 단축할 수 있을 것입니다.

최근 국내 유튜버에 의해서 LangConnect Client 를 개발하여 발표한 영상이 있습니다. 다음엔 이 Client에 대한 포스팅을 진행하도록 하겠습니다.


게시됨

카테고리

,

작성자

댓글

“LangConnect: LangChain 기반의 효율적인 RAG 서비스” 에 하나의 답글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다