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

Ein Open-Source-RAG- und Agent-Anwendungsprojekt, das auf großen Sprachmodellen wie ChatGLM, Qwen, Llama und dem Langchain-Framework basiert und offline bereitgestellt werden kann.

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

Detaillierte Beschreibung des Langchain-Chatchat-Projekts

Projektübersicht

Langchain-Chatchat (ursprünglich Langchain-ChatGLM) ist ein Open-Source-RAG- (Retrieval Augmented Generation) und Agent-Anwendungsprojekt, das auf großen Sprachmodellen und Anwendungsframeworks wie Langchain basiert und offline bereitgestellt werden kann. Das Projekt zielt darauf ab, eine Wissensdatenbank-Fragen-und-Antwort-Lösung zu erstellen, die chinesische Szenarien und Open-Source-Modelle freundlich unterstützt und offline ausgeführt werden kann.

Kernfunktionen

1. Unterstützung mehrerer Modelle

Das Projekt unterstützt die gängigsten Open-Source-Sprachmodelle auf dem Markt:

  • GLM-Serie: GLM-4-Chat, ChatGLM usw.
  • Qwen-Serie: Qwen2-Instruct, Qwen-VL-Chat usw.
  • Llama-Serie: Llama3 usw.
  • Online-API: Unterstützung für OpenAI GPT API-Aufrufe

2. Verschiedene Bereitstellungsframeworks

Unterstützt verschiedene Modellbereitstellungsframeworks und bietet flexible Zugriffsmethoden:

Framework Xinference LocalAI Ollama FastChat
OpenAI API-Schnittstellenangleichung
Beschleunigte Inferenz-Engine GPTQ, GGML, vLLM, TensorRT, mlx GPTQ, GGML, vLLM, TensorRT GGUF, GGML vLLM
Zugriff auf Modelltypen LLM, Embedding, Rerank, Text-to-Image, Vision, Audio LLM, Embedding, Rerank, Text-to-Image, Vision, Audio LLM, Text-to-Image, Vision LLM, Vision

3. Umfangreiche Dialogfunktionen

Version 0.3.x bietet verschiedene Dialogmodi:

Funktion 0.2.x 0.3.x
LLM-Dialog
Wissensdatenbank-Dialog
Suchmaschinen-Dialog
Datei-Dialog ✅ Nur Vektorabruf ✅ Vereinheitlicht als File-RAG-Funktion, unterstützt BM25+KNN und andere Abrufmethoden
Datenbank-Dialog
Multimodaler Bilddialog ✅ Empfohlen wird die Verwendung von qwen-vl-chat
ARXIV-Literaturdialog
Wolfram-Dialog
Text-zu-Bild
Agent ❌ Instabil ✅ Optimiert für ChatGLM3 und Qwen

Technische Architektur

RAG-Implementierungsprinzip

Die Kerntechnologie des Projekts basiert auf der RAG-Architektur (Retrieval Augmented Generation):

Dokumentenladen → Textlesen → Textsegmentierung → Textvektorisierung → Fragenvektorisierung →
Ähnlichkeitsabgleich (Top-K) → Kontextaufbau → LLM-Generierung der Antwort

Agent-Funktion

Die Kernfunktionen der Version 0.3.x werden vom Agent implementiert und bieten drei Betriebsmodi:

Betriebsart Implementierte Funktion Anwendbare Szenarien
Agent + Mehrere Tools aktivieren LLM automatische Tool-Aufrufe ChatGLM3/Qwen und andere Modelle mit Agent-Funktionen
Agent + Einzelnes Tool aktivieren LLM analysiert nur Tool-Parameter Modelle mit durchschnittlichen Agent-Fähigkeiten, manuelle Funktionsauswahl
Agent nicht aktivieren + Einzelnes Tool Manuelle Parametereingabe Modelle ohne Agent-Fähigkeiten

Installation und Bereitstellung

1. Python-Bibliotheksinstallation


pip install langchain-chatchat -U

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

2. Systemanforderungen

  • Python-Version: 3.8-3.11
  • Betriebssystem: Windows, macOS, Linux
  • Hardware-Unterstützung: CPU, GPU, NPU, MPS

3. Konfigurationsschritte

Festlegen des Stammverzeichnisses (optional)

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

# Windows
set CHATCHAT_ROOT=/path/to/chatchat_data

Projekt initialisieren

chatchat init

Konfigurationsdateien ändern

Die wichtigsten Konfigurationsdateien sind:

  • model_settings.yaml: Modellkonfiguration
  • basic_settings.yaml: Basispfadkonfiguration
  • kb_settings.yaml: Wissensdatenbankkonfiguration

Wissensdatenbank initialisieren

chatchat kb -r

Dienst starten

chatchat start -a

4. Docker-Bereitstellung


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

Anwendungsfälle

1. Unternehmenswissensdatenbank-Fragen-und-Antworten

  • Dokumentenverwaltung und -abruf
  • Interner Wissensaustausch
  • Kundendienstautomatisierung

2. Akademische Forschung

  • Literaturrecherche und -analyse
  • Akademische Paper-Dialoge
  • Organisation von Forschungsmaterialien

3. Persönliche Wissensverwaltung

  • Organisation persönlicher Dokumente
  • Abruf von Lernnotizen
  • Verwaltung der Materialarchivierung

Vorteile und Besonderheiten

  1. Vollständig Open Source: Befolgt das Apache-2.0-Protokoll, der Code ist vollständig offen
  2. Offline-Bereitstellung: Unterstützt den vollständigen Offline-Betrieb, um die Datensicherheit zu gewährleisten
  3. Chinesisch-freundlich: Optimiert für chinesische Szenarien, unterstützt chinesische Modelle
  4. Framework-Flexibilität: Unterstützt verschiedene Modellbereitstellungsframeworks
  5. Funktionsreich: Bietet RAG, Agent, Multimodalität und andere Funktionen
  6. Einfache Bereitstellung: Bietet Pip-Installation und Docker-Bereitstellungsmethoden

Technologiestack

  • Kernframework: Langchain
  • Webframework: FastAPI, Streamlit
  • Vektordatenbank: FAISS usw.
  • Modellinferenz: Xinference, Ollama, LocalAI, FastChat
  • API-Zugriff: One API unterstützt verschiedene Online-APIs

Dieses Projekt bietet eine vollständige Lösung für Benutzer, die ein lokales Wissensdatenbank-Fragen-und-Antwort-System erstellen müssen, und ist besonders geeignet für Unternehmen und private Benutzer mit strengen Anforderungen an den Datenschutz.

Star History Chart