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

Proyecto de aplicación RAG y Agent de código abierto e implementable sin conexión, basado en grandes modelos de lenguaje como ChatGLM, Qwen, Llama y el framework Langchain.

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

Descripción Detallada del Proyecto Langchain-Chatchat

Resumen del Proyecto

Langchain-Chatchat (anteriormente Langchain-ChatGLM) es un proyecto de código abierto, implementable sin conexión, basado en modelos de lenguaje grandes y marcos de aplicación como Langchain, que implementa aplicaciones RAG (Generación Aumentada por Recuperación) y Agent. El proyecto está dedicado a establecer un conjunto de soluciones de preguntas y respuestas de bases de conocimiento que sean amigables con el escenario chino y el soporte de modelos de código abierto, y que puedan ejecutarse sin conexión.

Características Principales

1. Soporte Multimodelo

El proyecto soporta los principales modelos de lenguaje grandes de código abierto disponibles en el mercado:

  • Serie GLM: GLM-4-Chat, ChatGLM, etc.
  • Serie Qwen: Qwen2-Instruct, Qwen-VL-Chat, etc.
  • Serie Llama: Llama3, etc.
  • API en línea: Soporte para llamadas a la API OpenAI GPT

2. Múltiples Marcos de Implementación

Soporta múltiples marcos de implementación de modelos, proporcionando formas flexibles de acceso:

Marco Xinference LocalAI Ollama FastChat
Alineación de la interfaz API de OpenAI
Motor de inferencia acelerada GPTQ, GGML, vLLM, TensorRT, mlx GPTQ, GGML, vLLM, TensorRT GGUF, GGML vLLM
Tipos de modelos de acceso LLM, Embedding, Rerank, Text-to-Image, Vision, Audio LLM, Embedding, Rerank, Text-to-Image, Vision, Audio LLM, Text-to-Image, Vision LLM, Vision

3. Funciones de Diálogo Ricas

La versión 0.3.x proporciona múltiples modos de diálogo:

Función 0.2.x 0.3.x
Diálogo LLM
Diálogo de base de conocimiento
Diálogo de motor de búsqueda
Diálogo de archivos ✅ Solo recuperación vectorial ✅ Unificado como función File RAG, soporta múltiples métodos de recuperación como BM25+KNN
Diálogo de base de datos
Diálogo de imágenes multimodales ✅ Recomendado usar qwen-vl-chat
Diálogo de literatura ARXIV
Diálogo de Wolfram
Texto a imagen
Agent ❌ Inestable ✅ Optimizado para ChatGLM3 y Qwen

Arquitectura Técnica

Principio de Implementación de RAG

La tecnología central del proyecto se basa en la arquitectura RAG (Generación Aumentada por Recuperación):

Carga de documentos → Lectura de texto → División de texto → Vectorización de texto → Vectorización de preguntas → 
Coincidencia de similitud (Top-K) → Construcción de contexto → Generación de respuestas por LLM

Funcionalidad Agent

La funcionalidad central de la versión 0.3.x se implementa mediante Agent, proporcionando tres modos de operación:

Modo de Operación Función Implementada Escenario Aplicable
Habilitar Agent + Múltiples Herramientas Llamada automática a herramientas por LLM Modelos con capacidades Agent como ChatGLM3/Qwen
Habilitar Agent + Una Sola Herramienta LLM solo analiza los parámetros de la herramienta Modelos con capacidades Agent limitadas, selección manual de funciones
No Habilitar Agent + Una Sola Herramienta Ingreso manual de parámetros Modelos sin capacidades Agent

Instalación e Implementación

1. Instalación de la Biblioteca Python


pip install langchain-chatchat -U

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

2. Requisitos del Entorno

  • Versión de Python: 3.8-3.11
  • Sistema Operativo: Windows, macOS, Linux
  • Soporte de Hardware: CPU, GPU, NPU, MPS

3. Pasos de Configuración

Establecer el Directorio Raíz (Opcional)

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

# Windows
set CHATCHAT_ROOT=/path/to/chatchat_data

Inicializar el Proyecto

chatchat init

Modificación del Archivo de Configuración

Los principales archivos de configuración incluyen:

  • model_settings.yaml: Configuración del modelo
  • basic_settings.yaml: Configuración de la ruta básica
  • kb_settings.yaml: Configuración de la base de conocimiento

Inicialización de la Base de Conocimiento

chatchat kb -r

Iniciar el Servicio

chatchat start -a

4. Implementación con 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

Escenarios de Uso

1. Preguntas y Respuestas de la Base de Conocimiento Empresarial

  • Gestión y recuperación de documentos
  • Compartir conocimiento interno
  • Automatización del servicio al cliente

2. Investigación Académica

  • Recuperación y análisis de literatura
  • Diálogo de artículos académicos
  • Organización de materiales de investigación

3. Gestión del Conocimiento Personal

  • Organización de documentos personales
  • Recuperación de notas de estudio
  • Gestión de archivos de materiales

Ventajas y Características

  1. Completamente de Código Abierto: Sigue el protocolo Apache-2.0, el código está completamente abierto
  2. Implementación sin Conexión: Soporta la ejecución completamente sin conexión, protegiendo la privacidad de los datos
  3. Amigable con el Chino: Optimizado para escenarios chinos, soporta modelos chinos
  4. Marco Flexible: Soporta múltiples marcos de implementación de modelos
  5. Funciones Ricas: Proporciona múltiples funciones como RAG, Agent, multimodal, etc.
  6. Fácil de Implementar: Proporciona métodos de instalación pip e implementación Docker

Pila Tecnológica

  • Marco Central: Langchain
  • Marco Web: FastAPI, Streamlit
  • Base de Datos Vectorial: FAISS, etc.
  • Inferencia de Modelos: Xinference, Ollama, LocalAI, FastChat
  • Acceso a la API: One API soporta múltiples API en línea

Este proyecto proporciona una solución completa para los usuarios que necesitan construir un sistema local de preguntas y respuestas de bases de conocimiento, especialmente adecuado para empresas y usuarios individuales con estrictos requisitos de privacidad de datos.

Star History Chart