chatchat-space/Langchain-ChatchatView GitHub Homepage for Latest Official Releases

Projet open source d'application RAG et Agent, basé sur de grands modèles de langage tels que ChatGLM, Qwen, Llama et le framework Langchain, déployable hors ligne.

Apache-2.0TypeScriptLangchain-Chatchatchatchat-space 35.9k Last Updated: March 25, 2025

Présentation détaillée du projet Langchain-Chatchat

Aperçu du projet

Langchain-Chatchat (anciennement Langchain-ChatGLM) est un projet open source, déployable hors ligne, d'application RAG (Retrieval-Augmented Generation) et Agent, basé sur des modèles de langage de grande taille et des frameworks d'application tels que Langchain. Ce projet vise à établir une solution de questions-réponses sur une base de connaissances, conviviale pour les scénarios chinois et les modèles open source, et pouvant fonctionner hors ligne.

Caractéristiques principales

1. Prise en charge de plusieurs modèles

Le projet prend en charge les principaux modèles de langage de grande taille open source du marché :

  • Série GLM: GLM-4-Chat, ChatGLM, etc.
  • Série Qwen: Qwen2-Instruct, Qwen-VL-Chat, etc.
  • Série Llama: Llama3, etc.
  • API en ligne: Prise en charge des appels à l'API OpenAI GPT

2. Divers frameworks de déploiement

Prise en charge de divers frameworks de déploiement de modèles, offrant des méthodes d'accès flexibles :

Framework Xinference LocalAI Ollama FastChat
Alignement avec l'interface API OpenAI
Moteur d'inférence accélérée GPTQ, GGML, vLLM, TensorRT, mlx GPTQ, GGML, vLLM, TensorRT GGUF, GGML vLLM
Types de modèles pris en charge LLM, Embedding, Rerank, Text-to-Image, Vision, Audio LLM, Embedding, Rerank, Text-to-Image, Vision, Audio LLM, Text-to-Image, Vision LLM, Vision

3. Fonctions de conversation riches

La version 0.3.x offre plusieurs modes de conversation :

Fonction 0.2.x 0.3.x
Conversation LLM
Conversation avec base de connaissances
Conversation avec moteur de recherche
Conversation avec fichiers ✅ Recherche vectorielle uniquement ✅ Unifiée en fonctionnalité File RAG, prend en charge diverses méthodes de recherche telles que BM25+KNN
Conversation avec base de données
Conversation multimodale avec images ✅ Recommandé d'utiliser qwen-vl-chat
Conversation avec la littérature ARXIV
Conversation Wolfram
Génération d'images à partir de texte
Agent ❌ Instable ✅ Optimisé pour ChatGLM3 et Qwen

Architecture technique

Principe de mise en œuvre de RAG

La technologie de base du projet est basée sur l'architecture RAG (Retrieval-Augmented Generation) :

Chargement du document → Lecture du texte → Segmentation du texte → Vectorisation du texte → Vectorisation de la question →
Correspondance de similarité (Top-K) → Construction du contexte → Génération de la réponse par LLM

Fonctionnalité Agent

La fonctionnalité principale de la version 0.3.x est implémentée par Agent, offrant trois modes de fonctionnement :

Mode de fonctionnement Fonctionnalité implémentée Scénarios applicables
Activer Agent + Multi-outils Appel automatique d'outils par LLM Modèles dotés de capacités Agent tels que ChatGLM3/Qwen
Activer Agent + Outil unique LLM analyse uniquement les paramètres de l'outil Modèles avec des capacités Agent moyennes, sélection manuelle des fonctionnalités
Ne pas activer Agent + Outil unique Saisie manuelle des paramètres Modèles sans capacités Agent

Installation et déploiement

1. Installation de la bibliothèque Python

pip install langchain-chatchat -U

pip install "langchain-chatchat[xinference]" -U

2. Exigences environnementales

  • Version Python: 3.8-3.11
  • Système d'exploitation: Windows, macOS, Linux
  • Prise en charge matérielle: CPU, GPU, NPU, MPS

3. Étapes de configuration

Définir le répertoire racine (facultatif)

# Linux/macOS
export CHATCHAT_ROOT=/path/to/chatchat_data

# Windows
set CHATCHAT_ROOT=/path/to/chatchat_data

Initialiser le projet

chatchat init

Modification du fichier de configuration

Les principaux fichiers de configuration incluent :

  • model_settings.yaml: Configuration du modèle
  • basic_settings.yaml: Configuration du chemin de base
  • kb_settings.yaml: Configuration de la base de connaissances

Initialisation de la base de connaissances

chatchat kb -r

Démarrer le service

chatchat start -a

4. Déploiement 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

Scénarios d'utilisation

1. Questions-réponses sur la base de connaissances de l'entreprise

  • Gestion et recherche de documents
  • Partage interne des connaissances
  • Automatisation du service client

2. Recherche académique

  • Recherche et analyse de la littérature
  • Conversation sur les articles académiques
  • Organisation des documents de recherche

3. Gestion des connaissances personnelles

  • Organisation des documents personnels
  • Recherche de notes d'étude
  • Gestion de l'archivage des documents

Avantages et caractéristiques

  1. Entièrement open source: Suit le protocole Apache-2.0, code entièrement ouvert
  2. Déploiement hors ligne: Prend en charge le fonctionnement entièrement hors ligne, protégeant la confidentialité des données
  3. Convivialité chinoise: Optimisé pour les scénarios chinois, prend en charge les modèles chinois
  4. Framework flexible: Prend en charge divers frameworks de déploiement de modèles
  5. Fonctionnalités riches: Fournit diverses fonctionnalités telles que RAG, Agent, multimodalité, etc.
  6. Facile à déployer: Fournit des méthodes d'installation pip et de déploiement Docker

Pile technologique

  • Framework principal: Langchain
  • Framework Web: FastAPI, Streamlit
  • Base de données vectorielle: FAISS, etc.
  • Inférence de modèle: Xinference, Ollama, LocalAI, FastChat
  • Accès API: One API prend en charge diverses API en ligne

Ce projet fournit une solution complète pour les utilisateurs qui ont besoin de construire un système de questions-réponses sur une base de connaissances locale, particulièrement adapté aux entreprises et aux utilisateurs individuels qui ont des exigences strictes en matière de confidentialité des données.

Star History Chart