Langchain-Chatchat (원래 이름: Langchain-ChatGLM)은 대규모 언어 모델과 Langchain 등의 애플리케이션 프레임워크를 기반으로 구현된 오픈 소스, 오프라인 배포 가능한 RAG (검색 증강 생성) 및 Agent 애플리케이션 프로젝트입니다. 이 프로젝트는 중국어 환경과 오픈 소스 모델에 대한 지원이 우수하고 오프라인으로 실행 가능한 지식 기반 질의응답 솔루션을 구축하는 데 주력합니다.
이 프로젝트는 시중의 주요 오픈 소스 대규모 언어 모델을 지원합니다.
다양한 모델 배포 프레임워크를 지원하여 유연한 액세스 방식을 제공합니다.
프레임워크 | Xinference | LocalAI | Ollama | FastChat |
---|---|---|---|---|
OpenAI API 인터페이스 정렬 | ✅ | ✅ | ✅ | ✅ |
가속 추론 엔진 | GPTQ, GGML, vLLM, TensorRT, mlx | GPTQ, GGML, vLLM, TensorRT | GGUF, GGML | vLLM |
액세스 모델 유형 | LLM, Embedding, Rerank, Text-to-Image, Vision, Audio | LLM, Embedding, Rerank, Text-to-Image, Vision, Audio | LLM, Text-to-Image, Vision | LLM, Vision |
0.3.x 버전은 다양한 대화 모드를 제공합니다.
기능 | 0.2.x | 0.3.x |
---|---|---|
LLM 대화 | ✅ | ✅ |
지식 기반 대화 | ✅ | ✅ |
검색 엔진 대화 | ✅ | ✅ |
파일 대화 | ✅ 벡터 검색만 | ✅ File RAG 기능으로 통합, BM25+KNN 등 다양한 검색 방식 지원 |
데이터베이스 대화 | ❌ | ✅ |
다중 모드 이미지 대화 | ❌ | ✅ qwen-vl-chat 사용 권장 |
ARXIV 문헌 대화 | ❌ | ✅ |
Wolfram 대화 | ❌ | ✅ |
텍스트-이미지 생성 | ❌ | ✅ |
Agent | ❌ 불안정 | ✅ ChatGLM3 및 Qwen에 최적화 |
프로젝트의 핵심 기술은 RAG (검색 증강 생성) 아키텍처를 기반으로 합니다.
문서 로드 → 텍스트 읽기 → 텍스트 분할 → 텍스트 벡터화 → 질문 벡터화 →
유사도 매칭 (Top-K) → 컨텍스트 구축 → LLM 답변 생성
0.3.x 버전의 핵심 기능은 Agent에 의해 구현되며 세 가지 작동 모드를 제공합니다.
작동 방식 | 구현 기능 | 적용 시나리오 |
---|---|---|
Agent 활성화 + 다중 도구 | LLM 자동 도구 호출 | ChatGLM3/Qwen 등 Agent 기능이 있는 모델 |
Agent 활성화 + 단일 도구 | LLM은 도구 매개변수만 분석 | Agent 기능이 일반적인 모델, 수동으로 기능 선택 |
Agent 비활성화 + 단일 도구 | 수동 매개변수 입력 | Agent 기능이 없는 모델 |
pip install langchain-chatchat -U
pip install "langchain-chatchat[xinference]" -U
# Linux/macOS
export CHATCHAT_ROOT=/path/to/chatchat_data
# Windows
set CHATCHAT_ROOT=/path/to/chatchat_data
chatchat init
주요 구성 파일은 다음과 같습니다.
model_settings.yaml
: 모델 구성basic_settings.yaml
: 기본 경로 구성kb_settings.yaml
: 지식 기반 구성chatchat kb -r
chatchat start -a
docker pull chatimage/chatchat:0.3.1.3-93e2c87-20240829
docker pull ccr.ccs.tencentyun.com/langchain-chatchat/chatchat:0.3.1.3-93e2c87-20240829
이 프로젝트는 로컬 지식 기반 질의응답 시스템을 구축해야 하는 사용자에게 완벽한 솔루션을 제공하며, 특히 데이터 개인 정보 보호에 대한 엄격한 요구 사항이 있는 기업 및 개인 사용자에게 적합합니다.