chatchat-space/Langchain-ChatchatView GitHub Homepage for Latest Official Releases
ChatGLM, Qwen, Llama 등 대규모 언어 모델과 Langchain 프레임워크를 기반으로 구현된 오픈 소스, 오프라인 배포 가능한 RAG 및 Agent 애플리케이션 프로젝트
Apache-2.0TypeScriptLangchain-Chatchatchatchat-space 35.9k Last Updated: March 25, 2025
Langchain-Chatchat 프로젝트 상세 소개
프로젝트 개요
Langchain-Chatchat (원래 이름: Langchain-ChatGLM)은 대규모 언어 모델과 Langchain 등의 애플리케이션 프레임워크를 기반으로 구현된 오픈 소스, 오프라인 배포 가능한 RAG (검색 증강 생성) 및 Agent 애플리케이션 프로젝트입니다. 이 프로젝트는 중국어 환경과 오픈 소스 모델에 대한 지원이 우수하고 오프라인으로 실행 가능한 지식 기반 질의응답 솔루션을 구축하는 데 주력합니다.
핵심 기능
1. 다중 모델 지원
이 프로젝트는 시중의 주요 오픈 소스 대규모 언어 모델을 지원합니다.
- GLM 시리즈: GLM-4-Chat, ChatGLM 등
- Qwen 시리즈: Qwen2-Instruct, Qwen-VL-Chat 등
- Llama 시리즈: Llama3 등
- 온라인 API: OpenAI GPT API 호출 지원
2. 다양한 배포 프레임워크
다양한 모델 배포 프레임워크를 지원하여 유연한 액세스 방식을 제공합니다.
프레임워크 | 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 |
3. 풍부한 대화 기능
0.3.x 버전은 다양한 대화 모드를 제공합니다.
기능 | 0.2.x | 0.3.x |
---|---|---|
LLM 대화 | ✅ | ✅ |
지식 기반 대화 | ✅ | ✅ |
검색 엔진 대화 | ✅ | ✅ |
파일 대화 | ✅ 벡터 검색만 | ✅ File RAG 기능으로 통합, BM25+KNN 등 다양한 검색 방식 지원 |
데이터베이스 대화 | ❌ | ✅ |
다중 모드 이미지 대화 | ❌ | ✅ qwen-vl-chat 사용 권장 |
ARXIV 문헌 대화 | ❌ | ✅ |
Wolfram 대화 | ❌ | ✅ |
텍스트-이미지 생성 | ❌ | ✅ |
Agent | ❌ 불안정 | ✅ ChatGLM3 및 Qwen에 최적화 |
기술 아키텍처
RAG 구현 원리
프로젝트의 핵심 기술은 RAG (검색 증강 생성) 아키텍처를 기반으로 합니다.
문서 로드 → 텍스트 읽기 → 텍스트 분할 → 텍스트 벡터화 → 질문 벡터화 →
유사도 매칭 (Top-K) → 컨텍스트 구축 → LLM 답변 생성
Agent 기능
0.3.x 버전의 핵심 기능은 Agent에 의해 구현되며 세 가지 작동 모드를 제공합니다.
작동 방식 | 구현 기능 | 적용 시나리오 |
---|---|---|
Agent 활성화 + 다중 도구 | LLM 자동 도구 호출 | ChatGLM3/Qwen 등 Agent 기능이 있는 모델 |
Agent 활성화 + 단일 도구 | LLM은 도구 매개변수만 분석 | Agent 기능이 일반적인 모델, 수동으로 기능 선택 |
Agent 비활성화 + 단일 도구 | 수동 매개변수 입력 | Agent 기능이 없는 모델 |
설치 및 배포
1. Python 라이브러리 설치
pip install langchain-chatchat -U
pip install "langchain-chatchat[xinference]" -U
2. 환경 요구 사항
- Python 버전: 3.8-3.11
- 운영 체제: Windows, macOS, Linux
- 하드웨어 지원: CPU, GPU, NPU, MPS
3. 구성 단계
루트 디렉토리 설정 (선택 사항)
# 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
4. Docker 배포
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
사용 시나리오
1. 기업 지식 기반 질의응답
- 문서 관리 및 검색
- 내부 지식 공유
- 고객 서비스 자동화
2. 학술 연구
- 문헌 검색 및 분석
- 학술 논문 대화
- 연구 자료 정리
3. 개인 지식 관리
- 개인 문서 정리
- 학습 노트 검색
- 자료 보관 관리
장점 및 특징
- 완전 오픈 소스: Apache-2.0 프로토콜 준수, 코드 완전 공개
- 오프라인 배포: 완전 오프라인 실행 지원, 데이터 개인 정보 보호
- 중국어 친화적: 중국어 환경에 최적화, 중국어 모델 지원
- 유연한 프레임워크: 다양한 모델 배포 프레임워크 지원
- 풍부한 기능: RAG, Agent, 다중 모드 등 다양한 기능 제공
- 쉬운 배포: pip 설치 및 Docker 배포 방식 제공
기술 스택
- 핵심 프레임워크: Langchain
- 웹 프레임워크: FastAPI, Streamlit
- 벡터 데이터베이스: FAISS 등
- 모델 추론: Xinference, Ollama, LocalAI, FastChat
- API 액세스: One API는 다양한 온라인 API를 지원합니다.
이 프로젝트는 로컬 지식 기반 질의응답 시스템을 구축해야 하는 사용자에게 완벽한 솔루션을 제공하며, 특히 데이터 개인 정보 보호에 대한 엄격한 요구 사항이 있는 기업 및 개인 사용자에게 적합합니다.