Home
Login

Um projeto de aplicação RAG e Agent de código aberto e implantável offline, baseado em grandes modelos de linguagem como ChatGLM, Qwen, Llama e no framework Langchain.

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

Apresentação Detalhada do Projeto Langchain-Chatchat

Visão Geral do Projeto

Langchain-Chatchat (anteriormente Langchain-ChatGLM) é um projeto de código aberto, implementado com base em grandes modelos de linguagem e frameworks de aplicação como Langchain, que permite a implementação offline de aplicações RAG (Retrieval-Augmented Generation) e Agent. O projeto visa estabelecer uma solução de perguntas e respostas baseada em bases de conhecimento que seja amigável ao cenário chinês e ao suporte de modelos de código aberto, e que possa ser executada offline.

Principais Características

1. Suporte a Múltiplos Modelos

O projeto suporta os principais modelos de linguagem de código aberto disponíveis no mercado:

  • Série GLM: GLM-4-Chat, ChatGLM, etc.
  • Série Qwen: Qwen2-Instruct, Qwen-VL-Chat, etc.
  • Série Llama: Llama3, etc.
  • API Online: Suporta chamadas à API OpenAI GPT

2. Múltiplos Frameworks de Implantação

Suporta vários frameworks de implantação de modelos, oferecendo formas flexíveis de acesso:

Framework Xinference LocalAI Ollama FastChat
Alinhamento com a Interface da API OpenAI
Motor de Inferência Acelerada GPTQ, GGML, vLLM, TensorRT, mlx GPTQ, GGML, vLLM, TensorRT GGUF, GGML vLLM
Tipos de Modelos Acessados LLM, Embedding, Rerank, Text-to-Image, Vision, Audio LLM, Embedding, Rerank, Text-to-Image, Vision, Audio LLM, Text-to-Image, Vision LLM, Vision

3. Funcionalidades de Diálogo Ricas

A versão 0.3.x oferece vários modos de diálogo:

Funcionalidade 0.2.x 0.3.x
Diálogo LLM
Diálogo com Base de Conhecimento
Diálogo com Motor de Busca
Diálogo com Arquivos ✅ Apenas Recuperação Vetorial ✅ Unificado como funcionalidade File RAG, suporta vários métodos de recuperação como BM25+KNN
Diálogo com Banco de Dados
Diálogo Multimodal com Imagens ✅ Recomendado usar qwen-vl-chat
Diálogo com Literatura ARXIV
Diálogo Wolfram
Geração de Imagem a partir de Texto
Agent ❌ Instável ✅ Otimizado para ChatGLM3 e Qwen

Arquitetura Técnica

Princípio de Implementação RAG

A tecnologia central do projeto é baseada na arquitetura RAG (Retrieval-Augmented Generation):

Carregamento de Documentos → Leitura de Texto → Divisão de Texto → Vetorização de Texto → Vetorização de Perguntas → 
Correspondência de Similaridade (Top-K) → Construção de Contexto → Geração de Resposta por LLM

Funcionalidade Agent

A funcionalidade central da versão 0.3.x é implementada pelo Agent, oferecendo três modos de operação:

Modo de Operação Funcionalidade Implementada Cenários Aplicáveis
Ativar Agent + Múltiplas Ferramentas Chamada automática de ferramentas pelo LLM Modelos com capacidade Agent como ChatGLM3/Qwen
Ativar Agent + Ferramenta Única LLM apenas analisa parâmetros da ferramenta Modelos com capacidade Agent geral, seleção manual de funcionalidade
Não Ativar Agent + Ferramenta Única Preenchimento manual de parâmetros Modelos sem capacidade Agent

Instalação e Implantação

1. Instalação da Biblioteca Python


pip install langchain-chatchat -U

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

2. Requisitos do Ambiente

  • Versão do Python: 3.8-3.11
  • Sistema Operacional: Windows, macOS, Linux
  • Suporte de Hardware: CPU, GPU, NPU, MPS

3. Etapas de Configuração

Definir o Diretório Raiz (Opcional)

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

# Windows
set CHATCHAT_ROOT=/path/to/chatchat_data

Inicializar o Projeto

chatchat init

Modificação do Arquivo de Configuração

Os principais arquivos de configuração incluem:

  • model_settings.yaml: Configuração do modelo
  • basic_settings.yaml: Configuração do caminho básico
  • kb_settings.yaml: Configuração da base de conhecimento

Inicialização da Base de Conhecimento

chatchat kb -r

Iniciar o Serviço

chatchat start -a

4. Implantação com 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

Cenários de Uso

1. Perguntas e Respostas da Base de Conhecimento Empresarial

  • Gerenciamento e recuperação de documentos
  • Compartilhamento interno de conhecimento
  • Automação do atendimento ao cliente

2. Pesquisa Acadêmica

  • Recuperação e análise de literatura
  • Diálogo sobre artigos acadêmicos
  • Organização de materiais de pesquisa

3. Gerenciamento de Conhecimento Pessoal

  • Organização de documentos pessoais
  • Recuperação de notas de estudo
  • Gerenciamento de arquivamento de materiais

Vantagens e Características

  1. Totalmente Open Source: Segue o protocolo Apache-2.0, código totalmente aberto
  2. Implantação Offline: Suporta execução totalmente offline, protegendo a privacidade dos dados
  3. Amigável ao Chinês: Otimizado para cenários chineses, suporta modelos chineses
  4. Framework Flexível: Suporta vários frameworks de implantação de modelos
  5. Funcionalidades Ricas: Oferece RAG, Agent, multimodalidade e outras funcionalidades
  6. Fácil de Implantar: Oferece métodos de instalação pip e implantação Docker

Stack Tecnológico

  • Framework Central: Langchain
  • Framework Web: FastAPI, Streamlit
  • Banco de Dados Vetorial: FAISS, etc.
  • Inferência de Modelo: Xinference, Ollama, LocalAI, FastChat
  • Acesso à API: One API suporta várias APIs online

Este projeto fornece uma solução completa para usuários que precisam construir um sistema local de perguntas e respostas baseado em bases de conhecimento, especialmente adequado para empresas e usuários individuais com requisitos rigorosos de privacidade de dados.