在使用langchain接入One API调用相关模型时,遇到一些问题,网上相关资料较少,整个流程梳理一下当个经验参考。
参考链接:
https://github.com/chatchat-space/Langchain-Chatchat?tab=readme-ov-file
https://github.com/songquanpeng/one-api?tab=readme-ov-file
https://www.bookstack.cn/read/FastGPT-4.8-zh/3192cefc4b1ae9a3.md
1. 配置环境
软件:新建环境:Python 3.8-3.11,Windows、macOS、Linux 操作系统均可;
硬件:因 0.3.0 版本已修改为支持不同模型部署框架接入,因此可在 CPU、GPU、NPU、MPS 等不同硬件条件下使用。
2. 安装 Langchain-Chatchat
从 0.3.0 版本起,Langchain-Chatchat 提供以 Python 库形式的安装方式,具体安装请执行:
pip install langchain-chatchat -U
#注意:为确保所使用的 Python 库为最新版,建议使用官方 Pypi 源或清华源
3. 接入One API ——手动部署
(1)从链接 Release v0.6.8 · songquanpeng/one-api 下载可执行文件.exe,或者从源码编译:
git clone https://github.com/songquanpeng/one-api.git
# 构建前端
cd one-api/web/default
npm install
npm run build
# 构建后端
cd ../..
go mod download
go build -ldflags "-s -w" -o one-api
(2)运行:
chmod u+x one-api
./one-api --port 3000 --log-dir ./logs
(3)弹出cmd界面,访问 http://localhost:3000/ 并登录one API。初始账号用户名为 root
,密码为 123456
。
登录界面为
(4)点击 渠道 ,创建新的渠道
渠道 创建成功!返回渠道列表:
(5)申请令牌
One API部署完毕!
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) 修改配置文件
1. 配置模型(model_settings.yaml
) 这里我们选择了One-API的推理框架,选择想用的模型进行配置。具体参考model_settings.yaml
中的注释。主要修改以下内容:
# 默认选用的 LLM 名称
DEFAULT_LLM_MODEL: qwen1.5-chat
# 默认选用的 Embedding 名称
DEFAULT_EMBEDDING_MODEL: bge-large-zh-v1.5
# 将 LLM_MODEL_CONFIG 中 llm_model, action_model 的键改成对应的 LLM 模型
# 在 MODEL_PLATFORMS 中修改对应模型平台信息
以阿里云百炼平台相关模型为例:
MODEL_PLATFORMS
这里记得设置成 oneapi 模式,api_key
是3.(5) 得到的令牌key。
2. 配置知识库路径(basic_settings.yaml
)(可选) 默认知识库位于 CHATCHAT_ROOT/data/knowledge_base
,如果你想把知识库放在不同的位置,或者想连接现有的知识库,可以在这里修改对应目录即可。
# 知识库默认存储路径
KB_ROOT_PATH: D:\chatchat-test\data\knowledge_base
# 数据库默认存储路径。如果使用sqlite,可以直接修改DB_ROOT_PATH;如果使用其它数据库,请直接修改SQLALCHEMY_DATABASE_URI。
DB_ROOT_PATH: D:\chatchat-test\data\knowledge_base\info.db
# 知识库信息数据库连接URI
SQLALCHEMY_DATABASE_URI: sqlite:///D:\chatchat-test\data\knowledge_base\info.db
3. 配置知识库(kb_settings.yaml)(可选)
4. 默认使用 FAISS
知识库,如果想连接其它类型的知识库,可以修改 DEFAULT_VS_TYPE
和 kbs_config
。
5. 初始化知识库
进行知识库初始化前,请确保已经启动模型推理框架及对应 embedding
模型,且已按照上述步骤4完成模型接入配置。
终端执行代码:
chatchat kb -r
更多功能可以查看
chatchat kb --help
出现以下日志即为成功:
----------------------------------------------------------------------------------------------------
知识库名称 :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
出现以下界面即为启动成功: