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에 대한 포스팅을 진행하도록 하겠습니다.
답글 남기기