4个页面、3处关键配置:Langchain-Chatchat 界面怎么用
【免费下载链接】Langchain-ChatchatLangchain-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项目地址: https://gitcode.com/GitHub_Trending/la/Langchain-Chatchat
把一份几十页的 PDF 丢进去,就能基于自己的文档提问,这就是 Langchain-Chatchat 想解决的事。它是一个可离线部署的 RAG 与 Agent 应用,用 ChatGLM、Qwen、Llama 等开源模型驱动,不需要把数据交给任何在线服务。先纠正一个常见误会:它的界面不是 Next.js 写的,而是 Streamlit。所以"前端"就是一组 Python 页面文件,改起来比想象中快。
界面长什么样:Streamlit 搭的 4 个页面
启动 WebUI 后,你看到的左侧导航只有四项:多功能对话、RAG 对话、知识库管理、MCP 管理。
导航定义在 webui.py,页面主体则放在 webui_pages/ 目录下,一个菜单对应一个模块:
- 多功能对话 →
dialogue/dialogue.py - RAG 对话 →
kb_chat.py - 知识库管理 →
knowledge_base/knowledge_base.py - MCP 管理 →
mcp/dialogue.py
没有独立的前端工程要构建,页面直接调 FastAPI 后端,这点在"前后端怎么分工"一节细说。
🕹️ 多功能对话:勾选 Agent,工具从哪来
多功能对话页(dialogue.py)是能力最全的一页。侧边栏有"工具设置"和"会话设置"两个标签页。
在"工具设置"里勾上"启用Agent",选择工具下拉框立刻从后端拉回可用工具列表。只选一个工具时,页面会自动展开参数面板:整型参数给滑块,数字参数给滑块,其余给文本框,参数填完就能直接调用,不用手写 JSON。
同一个标签页还管图片对话:上传图片支持 bmp、jpg、png,旁边有"黏贴图像"按钮,截图直接 Ctrl+V 就能发给视觉模型。
会话切换不丢状态。新建、重命名、删除会话的操作都走chat_box,每换一次会话都会先存旧会话、再恢复新会话的历史,这是save_session和restore_session两个函数在背后做的。
🔍 RAG 对话:3 种模式与阈值怎么调
RAG 对话页(kb_chat.py)的侧边栏分"RAG 配置"和"会话设置"两个标签。"RAG 配置"里第一行是对话模式下拉框,三种可选:
- 知识库问答:从已建好的知识库检索
- 文件对话:上传临时文件,即时建库开问
- 搜索引擎问答:接互联网搜索兜底
下面是三处最常动的参数。匹配知识条数范围 1 到 20,控制塞进 prompt 的文本块数量;历史对话轮数范围 0 到 20,控制模型"记得"多久的上下文;知识匹配分数阈值是 0 到 2 的滑块,专门过滤不相关的块。
阈值怎么权衡?调高,回答更聚焦,但调过头可能一条都筛不掉;调低,召回多,噪音也多。拿不准时,勾选"仅返回检索结果",跳过模型生成,直接看召回了哪些文本块——这是排查"答非所问"最快的办法。
🤖 Agent 与 MCP:让模型自己挑工具
多功能对话页勾选"启用Agent"后,还会出现"使用MCP"复选框。勾上它,模型除了用内置工具,还能调用你在 MCP 管理页配置的外部工具服务。
多工具同时勾选时,参数面板会收起,改为由模型自己决定调哪个工具、填什么参数——前提是模型本身有 Agent 能力,界面旁边的提示也写明了这点。
📚 知识库管理:建库前先定向量库类型
知识库管理页(knowledge_base.py)建库时要先选两样东西:向量库类型和 Embeddings 模型。前者决定存哪种数据库,后端kb_service/目录里对应 FAISS、ChromaDB、Milvus、Elasticsearch、PG 等多种实现;后者决定文本怎么变成向量,两者要配对使用。
页面还有"开启中文标题加强"的开关,适合以 Markdown 文档为主的知识库,能让切片带上更完整的中文标题信息。建完库做检索验证时,右侧的"匹配条数"滑块范围是 1 到 100,比对话页的 20 上限更宽,方便你压测不同top_k下的召回效果。
🌐 前后端怎么分工
WebUI 是个薄客户端:所有api.xxx调用都打向 FastAPI 服务,聊天、知识库、OpenAI 兼容接口分别落在 api_server/ 下的chat_routes.py、kb_routes.py、openai_routes.py。好处是一组 API 同时喂三类消费者:Streamlit 界面、FastAPI 文档页、Python SDK,你甚至可以只用 API 完全不用界面。
上手清单:跑起来之后先动这 3 个地方
- 运行 WebUI,依次点左侧四个菜单,确认路由切换正常。
- 进多功能对话,勾选"启用Agent",看工具列表是否按你的配置加载。
- 进 RAG 对话,把分数阈值从 0.3 一路拉到 1.0,观察召回条数如何变化。
回答质量不稳定时,优先检查 settings.py 里的DEFAULT_KNOWLEDGE_BASE、VECTOR_SEARCH_TOP_K和SCORE_THRESHOLD默认值;想搞清楚某个 Agent 工具的行为,直接进 tools_factory/ 看对应实现。
【免费下载链接】Langchain-ChatchatLangchain-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项目地址: https://gitcode.com/GitHub_Trending/la/Langchain-Chatchat
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考