Home
Login

ChatGLM, Qwen, Llama 등 대규모 언어 모델과 Langchain 프레임워크를 기반으로 구현된 오픈 소스, 오프라인 배포 가능한 RAG 및 Agent 애플리케이션 프로젝트

Apache-2.0TypeScript 35.3kchatchat-space Last Updated: 2025-03-25

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. 개인 지식 관리

  • 개인 문서 정리
  • 학습 노트 검색
  • 자료 보관 관리

장점 및 특징

  1. 완전 오픈 소스: Apache-2.0 프로토콜 준수, 코드 완전 공개
  2. 오프라인 배포: 완전 오프라인 실행 지원, 데이터 개인 정보 보호
  3. 중국어 친화적: 중국어 환경에 최적화, 중국어 모델 지원
  4. 유연한 프레임워크: 다양한 모델 배포 프레임워크 지원
  5. 풍부한 기능: RAG, Agent, 다중 모드 등 다양한 기능 제공
  6. 쉬운 배포: pip 설치 및 Docker 배포 방식 제공

기술 스택

  • 핵심 프레임워크: Langchain
  • 웹 프레임워크: FastAPI, Streamlit
  • 벡터 데이터베이스: FAISS 등
  • 모델 추론: Xinference, Ollama, LocalAI, FastChat
  • API 액세스: One API는 다양한 온라인 API를 지원합니다.

이 프로젝트는 로컬 지식 기반 질의응답 시스템을 구축해야 하는 사용자에게 완벽한 솔루션을 제공하며, 특히 데이터 개인 정보 보호에 대한 엄격한 요구 사항이 있는 기업 및 개인 사용자에게 적합합니다.