【FastGPT】Linux系统使用podman-compose方式部署指南
摘要
FastGPT
是一个基于LLM
大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过Flow
可视化进行工作流编排,从而实现复杂的问答场景。
官方提供了docker-compose
方式部署,本文使用podman
、podman-compose
方式部署,毕竟podman
几乎可以无缝兼容docker
部署之后,还从0
到1
对FastGPT
进行各种配置,直到可以使用为止,方便大家入门。
准备容器环境
# 安装podman
sudo dnf install podman
# 安装python
sudo dnf install python39
# pip方式安装podman-compose
sudo pip3 install podman-compose
# 验证安装
podman -v
podman-compose -v
部署FastGPT
- 下载 docker-compose.yml
mkdir fastgpt cd fastgpt curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json # pgvector 版本(测试推荐,简单快捷) curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-pgvector.yml # milvus 版本 # curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-milvus.yml # zilliz 版本 # curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-zilliz.yml
- 修改环境变量
找到yml
文件中,fastgpt
容器的环境变量进行下面操作FE_DOMAIN=http://10.18.72.150:8300
启动容器
使用podman-compose一次性启动所有容器
# 创建目录
sudo mkdir -pv /data/PostgreSQL/data
sudo mkdir -pv /data/mongo/data
sudo mkdir -pv /data/mysql
sudo mkdir -pv /data/oneapi/data
# 启动容器
podman-compose -f ./docker-compose-pgvector.yml up -d
# 等待10s,OneAPI第一次总是要重启几次才能连上Mysql
sleep 10
# 重启一次oneapi(由于OneAPI的默认Key有点问题,不重启的话会提示找不到渠道,临时手动重启一次解决,等待作者修复)
sudo podman restart oneapi
使用podman-compose逐个启动容器
sudo podman pull 05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com/pgvector/pgvector:0.7.0-pg15
sudo /usr/local/bin/podman-compose -f ./docker-compose-pgvector.yml up -d pg
sudo podman logs -f pg
sudo podman pull registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18
sudo /usr/local/bin/podman-compose -f ./docker-compose-pgvector.yml up -d mongo
sudo podman logs -f mongo
sudo podman pull ghcr.io/labring/fastgpt-sandbox:v4.8.21-fix
sudo /usr/local/bin/podman-compose -f ./docker-compose-pgvector.yml up -d sandbox
sudo podman logs -f --tail 200 sandbox
sudo podman pull ghcr.io/labring/fastgpt:v4.8.21-fix
sudo /usr/local/bin/podman-compose -f ./docker-compose-pgvector.yml up -d fastgpt
sudo podman logs -f --tail 200 fastgpt
sudo podman pull 05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com/library/mysql:8.0.36
sudo /usr/local/bin/podman-compose -f ./docker-compose-pgvector.yml up -d mysql
sudo podman logs -f --tail 200 mysql
sudo podman pull ghcr.io/songquanpeng/one-api:v0.6.7
sudo /usr/local/bin/podman-compose -f ./docker-compose-pgvector.yml up -d oneapi
sudo podman logs -f --tail 200 oneapi
访问OneAPI
- 浏览器访问:
http://10.18.72.150:3001
- 登录账号/密码:
root
/123456
- 新增渠道
访问FastGPT
- 浏览器输入:
http://10.18.72.150:3000
- 登录账号/密码:
root
/1234
在OneAPI中配置渠道
- 新增大语言模型流式接口的渠道
- 新增大语言模型非流式接口的渠道
FastGPT在请求OneAPI的大语言模型的时候,会在已配置的接口地址上追加
/v1/chat/completions
,配置的时候注意这个细节
- 配置文本向量模型
FastGPT在请求OneAPI的文本向量模型时,会在已配置的接口地址上追加
/v1/embeddings
,配置的时候注意。
在FastGPT中配置自定义模型
操作路径: 【账号】->
【模型提供商】->
【模型配置】->
【新增模型】
- 新增自定义大语言模型(流式接口)
- 新增自定义大语言模型(非流式接口)
- 新增自定义索引模型
创建知识库
- 操作路径: 【知识库】
->
右上角【新建】->
【通用知识库】
- 自定义输入【知识库名称】
- 索引模型和文本理解模型目前只有1个,与截图保持一致即可
- 索引模型和文本理解模型目前只有1个,与截图保持一致即可
- 上传【文档】
- 点击进入刚才创建好的【知识库】->右上角【新建/导入】->【文本数据集】->【本地文件】
- 点击进入刚才创建好的【知识库】->右上角【新建/导入】->【文本数据集】->【本地文件】
- 如果选择的word带有图片,则会如图提示上传失败
- 可以把word转成PDF再上传
- 点击【下一步】
- 点击【开始上传】
创建【应用】
- 操作路径: 【工作台】 -> 右上角【创建】-> 【简易应用】
- 输入【应用名称】后,点击【创建空白应用】
- 配置【AI模型】
- 选择opsauto-deepseek-r1-671b,这是流式响应接口
- 选择opsauto-deepseek-r1-671b,这是流式响应接口
- 【关联知识库】
- 选择之前创建的知识库,点【完成】
- 选择之前创建的知识库,点【完成】
- 配置知识库【参数】
- 【问题优化】
- 这个开关,可以不打开
- 如果要打开,AI模型要选择【opsauto-nostream-deepseek-r1-671b】,这是非流式接口
- 启用问题优化的作用,是把用户输入的问题先请求大语言模型进行优化拆分,拆分的目的是为了更精确的把问题进行向量化,然后去知识库匹配,多一次与大语言模型的交互,等待的时间也明显更长一些。
- 保存应用
- 点击右上角【保存】->【仅保存】
- 然后就可以在底部的输入框进行对话了
注意事项
OneAPI
渠道中的模型重定向,是把请求OneAPI
的模型ID
,与json
中的key
进行匹配,然后替换成value
后,再去请求模型地址。OneAPI
修改渠道中的模型,需要等几分钟,FastGPT
才能匹配到。
官方资料
- 源码:
https://github.com/labring/FastGPT
- 开发与部署指南:
https://doc.tryfastgpt.ai/docs/development/intro/
Docker Compose
快速部署:https://doc.tryfastgpt.ai/docs/development/docker/