LangChain-Chatchat 基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现,开源、可离线部署的 RAG 与 Agent 应用项目,目标期望建立一套对中文场景与开源模型支持友好、可离线运行的知识库问答解决方案。
本文我们通过先简单介绍 LangChain-Chatchat 的原理,让大家有个大概认知,然后通过手把手一步一步教大家搭建自己的本地大模型知识库,如下所示就是我们的最终成果,相信通过这篇文章,你也能快速搭建自己的本地大模型知识库!
一、Langchain-Chatchat 介绍
本项目支持市面上主流的开源 LLM、 Embedding 模型与向量数据库,可实现全部使用开源模型离线私有部署。与此同时,本项目也支持 OpenAI GPT API 的调用,并将在后续持续扩充对各类模型及模型 API 的接入。
1、实现原理
本项目实现原理如下图所示,过程包括加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的 top k个 -> 匹配出的文本作为上下文和问题一起添加到 prompt中 -> 提交给 LLM生成回答。如下图所示
从文档处理角度来看,实现流程如下:
2、功能介绍
最新的 0.3.x 版本功能如下列表所示
0.3.x 版本的核心功能由 Agent 实现,但用户也可以手动实现工具调用:
3、模型框架支持
本项目中已经支持市面上主流的如 GLM-4-Chat 与 Qwen2-Instruct 等新近开源大语言模型和 Embedding 模型,这些模型需要用户自行启动模型部署框架后,通过修改配置信息接入项目,本项目已支持的本地模型部署框架如下:
除上述本地模型加载框架外,项目中也为可接入在线 API 的 One API 框架接入提供了支持,支持包括 OpenAI ChatGPT、Azure OpenAI API、Anthropic Claude、智谱清言、百川 等常用在线 API 的接入使用。
二、从零开始上手
1、软硬件要求
💡 软件方面,本项目已支持在 Python 3.8-3.11 环境中进行使用,并已在 Windows、macOS、Linux 操作系统中进行测试。
💻 硬件方面,因 0.3.0 版本已修改为支持不同模型部署框架接入,因此可在 CPU、GPU、NPU、MPS 等不同硬件条件下使用。
2、安装对应库
我们使用 pip 进行 langchain-chatchat 安装,并且采用清华源,具体安装命令如下所示
pip install langchain-chatchat -U -i https://pypi.tuna.tsinghua.edu.cn/simple/
因模型部署框架 Xinference 接入 Langchain-Chatchat 时需要额外安装对应的 Python 依赖库,因此如需搭配 Xinference 框架使用时,需要进行对应的安装:
安装 Chatchat 库,实现模型后处理
pip install "langchain-chatchat[xinference]" -U -i https://pypi.tuna.tsinghua.edu.cn/simple/
安装 xinference 库,实现模型推理
pip install "xinference[all]" -U -i https://pypi.tuna.tsinghua.edu.cn/simple/
3、xinference
安装完相应的库之后,启动 xinference 以进行模型部署,通过命令行执行
xinference-local --host 0.0.0.0 --port 9997
启动后访问:IP:9997 即可进入 xinference 主界面,如下所示
选择我们需要部署的模型,比如我这里选择 qwen2-instruct 进行部署。填写相应的参数,进行一键部署。第一次部署会下载模型,可以选择国内阿里达摩院通道 modelscope 下载,速度较快
下载完成会自动部署,部署完成后,会展示在 Running 中,可以通过打开模型 UI进行访问
我们还需要安装一个一个向量模型,我们选择 bge-m3 这个向量模型,安装部署如下所示
4、初始化项目配置
从 0.3.1 版本起,Langchain-Chatchat 使用本地 yaml 文件的方式进行配置,用户可以直接查看并修改其中的内容,服务器会自动更新无需重启。
(1)设置 Chatchat 存储配置文件和数据文件的根目录(可选)
若不设置该环境变量,则自动使用当前目录。
# on linux or macos
export CHATCHAT_ROOT=/path/to/chatchat_data
# on windows
set CHATCHAT_ROOT=/path/to/chatchat_data
(2)执行初始化
执行初始化命令,生成配置文件
chatchat init
该命令会执行以下操作:
- 创建所有需要的数据目录
- 复制 samples 知识库内容
- 生成默认 yaml 配置文件
(3)修改配置文件
修改配置模型 model_settings.yaml
# 默认选用的 LLM 名称
DEFAULT_LLM_MODEL: qwen2-chat
# 默认选用的 Embedding 名称
DEFAULT_EMBEDDING_MODEL: bge-m3
# 将 `LLM_MODEL_CONFIG` 中 `llm_model, action_model` 的键改成对应的 LLM 模型
# 在 `MODEL_PLATFORMS` 中修改对应模型平台信息
修改基础配置文件 basic_settings.yaml
# API 服务器地址。其中 public_host 用于生成云服务公网访问链接(如知识库文档链接)
API_SERVER:
host: X.x.x.x # 自己服务器IP
port: 7861 # 自己配置对应端口
# WEBUI 服务器地址
WEBUI_SERVER:
host: x.x.x.x # 自己服务器IP
port: 8501 # 自己配置对应端口
5、初始化知识库在进行知识库初始化前,请确保已经启动模型推理框架及对应 embedding 模型,执行以下命令进行知识库初始化
chatchat kb -r
出现以下日志即为成功:
----------------------------------------------------------------------------------------------------
知识库名称 :samples
知识库类型 :faiss
向量模型::bge-large-zh-v1.5
知识库路径 :/root/anaconda3/envs/chatchat/lib/python3.11/site-packages/chatchat/data/knowledge_base/samples
文件总数量 :47
入库文件数 :42
知识条目数 :740
用时 :0:02:29.701002
----------------------------------------------------------------------------------------------------
总计用时 :0:02:33.414425
6、启动项目执行以下命令启动项目
chatchat start -a
默认地址为:IP:8501,进入 chatchat 前端页面,如下所示,我们就可以与它进行对话问答了!
如何零基础入门 / 学习AI大模型?
大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?
”“谁的饭碗又将不保了?
”等问题热议不断。
不如成为「掌握AI工具的技术人」
,毕竟AI时代,谁先尝试,谁就能占得先机!
想正式转到一些新兴的 AI 行业,不仅需要系统的学习AI大模型。同时也要跟已有的技能结合,辅助编程提效,或上手实操应用,增加自己的职场竞争力。
但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高
那么我作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,希望可以帮助到更多学习大模型的人!至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费
】
👉 福利来袭
优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈
全套AGI大模型学习大纲+路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉 福利来袭
优快云大礼包:《2025最全AI大模型学习资源包》免费分享,安全可点 👈
这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费
】
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。