SuperAPI AI 工具集

langchain-ChatGLM

Langchain-Chatchat(原 langchain-ChatGLM)是一个基于 Langchain 框架与 ChatGLM、Qwen、Llama 等大语言模型构建的开源、可离线部署的 RAG(检索增强生成)与 Agent 应用项目。其核心目标是建立一套对中文场景与开源模型支持友好、能够完全离线运行的知识库问答解决方案。项目通过加载文件、读取文本、文本分割、文本向量化、问句向量化、匹配相似文本、将上下文与问题一起加入 prompt 并提交给 LLM 生成回答的流程,实现基于本地知识库的问答。它支持市面上主流的开源 LLM、Embedding 模型与向量数据库,可实现全部使用开源模型离线私有部署,同时也支持 OpenAI GPT API 等在线 API 的接入。项目自 2023 年 4 月发布 0.1.0 版本以来,经历了多次迭代,2024 年 6 月发布 0.3.0 版本,带来全新架构,核心功能由 Agent 实现,也支持手动工具调用。代码遵循 Apache-2.0 协议。

访问官网

工具介绍

Langchain-Chatchat(原 langchain-ChatGLM)是一个开源、可离线部署的知识库问答应用,基于 Langchain 框架与 ChatGLM、Qwen、Llama 等大语言模型实现。项目旨在建立一套对中文场景与开源模型支持友好、可完全离线运行的 RAG(检索增强生成)与 Agent 应用解决方案。

【用途】 项目主要用于构建基于本地知识库的问答系统。用户可以将文档资料导入知识库,系统通过检索增强生成的方式,利用大语言模型回答与文档内容相关的问题。此外,0.3.x 版本也支持 Agent 功能,可通过 Agent 实现更复杂的任务处理。

【主要能力】

  1. 支持主流开源 LLM、Embedding 模型与向量数据库,可实现全部使用开源模型离线私有部署。
  2. 支持接入 Xinference、Ollama、LocalAI、FastChat、One API 等模型推理框架。
  3. 支持 GLM-4-Chat、Qwen2-Instruct、Llama3 等新近开源大语言模型和 Embedding 模型,模型需用户自行启动模型部署框架后通过修改配置信息接入。
  4. 支持在线 API 接入,包括 OpenAI ChatGPT、Azure OpenAI API、Anthropic Claude、智谱清言、百川等常用在线 API。
  5. 提供基于 FastAPI 的 API 调用服务,以及基于 Streamlit 的 WebUI 操作界面。
  6. 从 0.3.0 版本起提供 Python 库形式的安装方式。
  7. 默认使用 FAISS 知识库,可修改配置连接其他类型知识库。
  8. 支持在 Python 3.8-3.11 环境中使用,并已在 Windows、macOS、Linux 操作系统中测试。
  9. 因 0.3.0 版本支持不同模型部署框架接入,可在 CPU、GPU、NPU、MPS 等不同硬件条件下使用。

【使用方式】

  1. 安装部署:可通过 pip 安装、源码安装部署/开发部署或 Docker 部署。从 0.3.0 版本起提供 Python 库形式安装。
  2. 模型接入:从 0.3.0 版本起,项目不再根据用户输入的本地模型路径直接加载模型,而是改为支持市面常见的各大模型推理框架接入。启动项目前需先运行模型推理框架并加载所需模型。建议将 Langchain-Chatchat 和模型部署框架放在不同的 Python 虚拟环境中以避免依赖冲突。
  3. 配置:从 0.3.1 版本起使用本地 yaml 文件进行配置,用户可直接查看并修改,服务器自动更新无需重启。主要配置文件包括 model_settings.yaml(配置默认 LLM、Embedding 模型及模型平台信息)、basic_settings.yaml(配置知识库路径、数据库路径、监听地址等)、kb_settings.yaml(配置知识库类型)。
  4. 初始化知识库:进行知识库初始化前,需确保已启动模型推理框架及对应 embedding 模型,并完成模型接入配置。可使用 chatchat kb 命令进行知识库操作。
  5. 启动:配置完成后可启动服务,通过 WebUI 或 API 进行操作。默认监听地址为 127.0.0.1,如需通过其他 IP 访问,需将监听地址修改为 0.0.0.0。

【适用场景】 适用于需要基于本地知识库进行问答的场景,尤其是对数据隐私和离线部署有要求的场景,如企业内部知识库、文档问答系统等。项目对中文场景与开源模型支持友好,适合中文用户使用。

【限制与说明】

  1. 项目未涉及微调、训练过程,但可利用微调或训练对项目效果进行优化。
  2. 0.3.x 版本结构改变较大,升级时建议按照文档重新部署,并提前备份重要数据。
  3. 模型需用户自行启动模型部署框架后通过修改配置接入。
  4. 部分功能可能需要额外安装依赖库,如搭配 Xinference 框架使用时需安装对应 Python 依赖。
  5. 如果遇到知识库初始化时卡住的问题,可尝试执行相关命令后重新创建知识库。
  6. 数据库对话配置有专门说明,需另行参考。
  7. 项目代码遵循 Apache-2.0 协议。

项目历史:2023 年 4 月发布 0.1.0 版本,支持基于 ChatGLM-6B 模型的本地知识库问答;2023 年 8 月改名为 Langchain-Chatchat,发布 0.2.0 版本,使用 fastchat 作为模型加载方案;2023 年 10 月发布 0.2.5 版本,推出 Agent 内容;2023 年 12 月获得超过 20K stars;2024 年 6 月发布 0.3.0 版本,带来全新项目架构。