LangChain-ChatChat 是一个基于大型语言模型(如 ChatGLM、Qwen 等)和应用框架(如 LangChain)构建的开源项目,旨在实现可离线部署的检索增强生成(RAG)与智能代理(Agent)应用。其功能涵盖了智能代理、语言模型对话、知识库对话、搜索引擎对话、文件对话、数据库对话、多模态图片对话、ARXIV 文献对话、Wolfram 对话、文本生成图片、本地知识库管理和 Web 用户界面等。此外,LangChain-ChatChat 支持多种模型部署框架,如 Xinference、LocalAI、Ollama、FastChat 等,能够实现本地模型以及 API 的调用,几乎涵盖现有所有大型语言模型的推理需求。
LangChain-ChatChat 的主要作用是为开发者和企业提供一个灵活、可扩展且功能丰富的平台,用于构建和部署基于大型语言模型的应用。其核心作用包括:
多功能对话系统:支持多种类型的对话模式,如智能代理对话、知识库问答、文件内容检索、数据库查询、多模态图片对话等,满足不同场景下的应用需求。
知识库管理:提供本地知识库的管理功能,支持知识的存储、检索和更新,方便企业构建专属的知识管理系统。
模型兼容性:兼容多种大型语言模型和推理框架,用户可以根据需求选择合适的模型和部署方式,确保系统的灵活性和可扩展性。
离线部署:支持离线部署,确保数据的私密性和安全性,适用于对数据安全要求高的场景。
Web 用户界面:提供友好的 Web 用户界面,方便用户与系统交互,提高用户体验。
在 0.3.1 版本中,LangChain-ChatChat 引入了多项新特性和改进,进一步提升了系统的性能和用户体验:
模型推理框架的灵活接入:从 0.3.0 版本开始,LangChain-ChatChat 不再直接加载本地模型,而是支持通过多种模型推理框架(如 Xinference、Ollama、LocalAI、FastChat、One API 等)进行模型的接入和管理。这种设计提高了系统的灵活性,用户可以根据硬件条件和应用需求选择合适的模型推理框架。
配置文件管理:从 0.3.1 版本起,LangChain-ChatChat 使用本地 YAML 文件进行配置管理。用户可以直接查看和修改配置文件,服务器会自动更新配置,无需重启。这种方式提高了配置管理的便捷性和可维护性。
知识库初始化优化:提供了更简便的知识库初始化命令,用户可以通过简单的命令完成知识库的初始化和更新,提高了系统的易用性。
多平台支持:系统已在 Windows、macOS、Linux 等操作系统中进行测试,确保在不同平台上的兼容性和稳定性。
硬件适配性:支持在 CPU、GPU、NPU、MPS 等不同硬件条件下运行,满足不同硬件环境下的部署需求。
要安装 LangChain-ChatChat 0.3.1 版本,请按照以下步骤进行:
在安装之前,请确保您的系统满足以下要求:
操作系统:支持 Windows、macOS 或 Linux。
Python 版本:3.8 至 3.11(推荐使用 Python 3.11)。
硬件资源:根据项目需求,确保有足够的 CPU、GPU 或 NPU 资源。
为了避免与系统其他 Python 包发生冲突,建议在虚拟环境中安装 LangChain-ChatChat。您可以使用以下命令创建虚拟环境:
conda create --name langchain python=3.11
然后,激活虚拟环境:
conda activate langchain
在激活的虚拟环境中,使用 pip
安装 LangChain-ChatChat 及其依赖项:
pip install langchain-chatchat -U
如果需要搭配 Xinference 框架使用,建议使用以下安装方式:
pip install "langchain-chatchat[xinference]" -U
此命令将自动安装 LangChain-ChatChat 及其所有依赖项。
安装完成后,您可以通过以下命令验证安装是否成功:
python -c "import chatchat; print(chatchat.__version__)"
如果输出显示 0.3.1
,则表示安装成功。
安装完成后,您可以按照以下步骤部署 LangChain-ChatChat:
从 0.3.0 版本起,LangChain-ChatChat 不再直接加载本地模型,而是通过模型推理框架进行模型的接入和管理。以下是安装 Xinference 的步骤:
conda create --name xinfer python=3.11
conda activate xinfer
pip
安装 Xinference:pip install xinference -U
xinference
服务器启动后,默认会在 http://localhost:9997
提供 API 服务,LangChain-ChatChat 需要通过此接口访问模型。
LangChain-ChatChat 采用 YAML 文件进行配置管理,默认配置文件路径为 config.yaml
。
你可以创建或修改 config.yaml
,配置你的推理框架和模型,例如:
server:
host: 0.0.0.0
port: 8000
model:
provider: xinference
endpoint: http://localhost:9997
model_name: chatglm3-6b
temperature: 0.7
top_p: 0.9
database:
uri: sqlite:///chatchat.db
这表示 LangChain-ChatChat 将使用 Xinference 提供的 ChatGLM3-6B 模型进行推理,并存储数据到本地的 SQLite 数据库。
如果你是首次运行 LangChain-ChatChat,建议先初始化数据库:
chatchat init-db
这将创建必要的数据库表,确保系统可以正常运行。
完成配置后,运行以下命令启动 LangChain-ChatChat 服务器:
chatchat run
如果你希望在后台运行,可以使用 nohup
或 screen
命令,例如:
nohup chatchat run > chatchat.log 2>&1 &
或者:
screen -S chatchat
chatchat run
这样,你可以断开 SSH 连接,服务器仍然可以继续运行。
服务器启动后,你可以在浏览器中访问 http://localhost:8000
,查看 LangChain-ChatChat 提供的 Web 界面,与 AI 进行交互。
LangChain-ChatChat 提供了丰富的功能,适用于多个应用场景:
如果你的应用在运行过程中遇到性能瓶颈,可以尝试以下优化措施:
temperature
、top_p
等超参数,平衡生成内容的随机性和稳定性。LangChain-ChatChat 0.3.1 版本在模型管理、配置管理、知识库优化等方面进行了诸多改进,使得系统更加灵活和高效。
它不仅可以作为个人的 AI 助手,还能在企业级应用中提供智能问答、知识管理、自动化分析等功能。
通过合理的配置和优化,你可以将 LangChain-ChatChat 部署到生产环境,打造一个高效的 AI 聊天和知识管理平台。
希望本篇文章能帮助你快速上手 LangChain-ChatChat 0.3.1,如果有问题,欢迎在评论区交流!