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.
O projeto suporta os principais modelos de linguagem de código aberto disponíveis no mercado:
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 |
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 |
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
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 |
pip install langchain-chatchat -U
pip install "langchain-chatchat[xinference]" -U
# Linux/macOS
export CHATCHAT_ROOT=/path/to/chatchat_data
# Windows
set CHATCHAT_ROOT=/path/to/chatchat_data
chatchat init
Os principais arquivos de configuração incluem:
model_settings.yaml
: Configuração do modelobasic_settings.yaml
: Configuração do caminho básicokb_settings.yaml
: Configuração da base de conhecimentochatchat kb -r
chatchat start -a
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
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.