// the find
chatchat-space/Langchain-Chatchat
Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM, Qwen 与 Llama 等语言模型的 RAG 与 Agent 应用 | Langchain-Chatchat (formerly langchain-ChatGLM), local knowledge based LLM (like ChatGLM, Qwen and Llama) RAG and Agent app with langchain
Langchain-Chatchat is a local RAG and Agent application built on LangChain, designed to run entirely offline with open-source LLMs like ChatGLM, Qwen, and Llama. It targets Chinese enterprise users who need a private knowledge base Q&A system that never sends data to external APIs. The 0.3.x rewrite decoupled model loading from the app itself, requiring a separate inference framework (Xinference, Ollama, etc.) to serve models.
- Strong Chinese language support with custom text splitters (ChineseRecursiveTextSplitter, zh_title_enhance) specifically tuned for Chinese document structure, which most Western RAG frameworks ignore.
- Wide vector store coverage: FAISS, Milvus, Elasticsearch, ChromaDB, PGVector, Zilliz, and Relyt all have concrete service implementations under kb_service/, not just placeholder stubs.
- The 0.3.x architecture separating model inference from the app layer is the right call — using any OpenAI-compatible endpoint means you're not locked into a single inference stack.
- BM25+KNN ensemble retrieval in file_rag/retrievers/ensemble.py is a real improvement over pure vector search, and the reranker integration shows attention to actual retrieval quality.
- The setup friction is high: you need to independently install, configure, and run a separate model serving framework before Chatchat even starts. For newcomers this is a multi-hour debug session, not a quick start.
- The codebase has clear signs of accumulated tech debt: api_allinone_stale.py, webui_allinone_stale.py, llm_api_stale.py are all still sitting in the repo, and the Docker image note in the README ('will be updated soon') has been there since 0.3.0.
- No auth or multi-tenancy anywhere in the API layer — the FastAPI server is wide open. Deploying this inside any organization means rolling your own auth proxy, which the docs don't mention at all.
- Test coverage is effectively absent. The CI workflows exist but the actual test directory has almost nothing for the server logic, so regressions in retrieval or model routing are caught by users, not CI.