前言
FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景!
FastGPT都有什么功能以及怎么使用这里就不细说了,可以参考官方文档地址:doc.fastgpt.in/docs/intro/
也可以通过它的官网进行在线试用,如下: FastGPT 在线使用:fastgpt.in
本文主要讲一讲FastGPT如何搭建部署的。
安装docker
FastGPT需要很多应用支持,包括MongoDB、PostgreSQL、OneAPI、PgVector等等,一个个安装配置很麻烦。所以FastGPT提供了docker快速部署的方案,所以首先要安装docker和docker-compose。
我的环境是Windows+WSL,所以选用了下面的方案来进行安装。
使用wsl在windows上安装docker
1、下载Docker Desktop最新版本地址
2、安装,注意安装的时候要选择WSL 2
3、安装完打开Docker,可以不用登录。打开设置Setting,在General下选中Use the WSL 2 based engine,然后apply$restart
4、打开设置Setting,在Resources -> WSL integration下选择要使用docker的虚拟机,然后apply$restart
5、打开虚拟机,检查一下docker和docker-compose的版本
docker -v
docker-compose -v
如果都正常,就可以在这个虚拟机中使用docker了。
其他环境安装docker
大家直接参考官方文档:doc.fastgpt.in/docs/develo…
部署
安装完docker后就可以开始部署了,这部分需要代理,提前准备好就不细说了。
下载 docker-compose.yml
进入到虚拟机中,执行
mkdir fastgpt
cd fastgpt
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json
curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-pgvector.yml
官方给向量数据库提供了三种不同的方案,这里我选用的是官方推荐的pgvector,如果喜欢其他的,可以参考官方文档下载其他的(doc.fastgpt.in/docs/develo…
修改 docker-compose.yml 环境变量
这部分因为我选用的是pgvector,所以不需要处理
启动容器
接着第一步,目录不变,执行
docker-compose up -d
就开始自动进行部署了,这个过程非常慢,因为需要下载很多应用,有些还需要代理才可以,而且速度很慢。所以在执行这一步之前先代理,然后执行过程中耐心等待。如果速度特别慢,就换了路线试试。
执行完成后,就自动启动了。
但是我们需要重启一次oneapi(官方说由于OneAPI的默认Key有点问题,不重启的话会提示找不到渠道,临时手动重启一次)
在docker-compose up -d
执行完之后等十几秒在执行
docker restart oneapi
这样基本就执行成功了。
这时候在docker desktop中就可以看到一个fastgpt的容器了,状态是running。
这里面可以看到所有运行的应用,点击可以看到详细的运行日志。
这时候虚拟机关了也不影响服务。FastGPT的容器在docker desktop中管理即可,所以如果彻底关闭了docker desktop,服务会停止。不过重新打开后会自动启动,但是进入平台会发现数据都没了,所以需要重新进入虚拟机关闭docker再重新启动即可
docker-compose down
docker-compose up -d
访问FastGPT
FastGPT通过OneApi来添加和管理AI模型渠道,所以除了自身的平台还有一个OneApi平台。
访问OneApi
可以通过ip:3001
访问OneAPI,默认账号为root
密码为123456
至于OneApi如何使用,大家参考官网吧,这里不细说了。
访问FastGPT
目前可以通过ip:3000
直接访问(注意防火墙)。登录用户名为 root
,密码为docker-compose.yml环境变量里设置的DEFAULT_ROOT_PSW
。
如果需要域名访问,请自行安装并配置 Nginx。
首次运行,会自动初始化root
用户,密码为 1234
(与环境变量中的DEFAULT_ROOT_PSW一致)。
添加渠道和模型
这时候实际上还无法正常使用的,因为没有添加模型渠道。虽然在config.json文件中可以看到有几个默认的模型,比如gpt-4o-mini等,但是如果直接使用,比如创建知识库添加文件进行训练的时候,就会提示没有渠道。所以我们还需要在OneApi中添加渠道和模型。
这里用国内百度文心千帆为例。
创建文心千帆应用
在百度文心千帆平台上创建应用,并且为想用的模型开通计费,这里就不细说了。
(注意FastGPT需要大语言模型,同时还需要向量模型用于知识库索引,所以如果只使用文心千帆的话,还要开通一个向量模型,比如bge-large-zh)
创建完应用就可以看到应用的API Key 和 Secret Key,后续要用。
新增渠道
在OneApi平台的渠道tab下,新增一个渠道。
类型是选择的,名称可以随便填。分组不用动,直接用default即可。
当类型选择完后,会自动添加一些模型,这里可以去掉多余的模型,只留自己开通的。另外这部分模型可能不全,或者自己训练了模型,这里可以自己添加模型。(注意模型名称要填对,尤其大小写)
如果需要模型重定向就按提示配置即可,不需要就不用管这里。
密钥也是根据提示,添加在文心千帆平台中获取的应用密钥,是APIKey|SecretKey
的形式,注意中英文符号和空格。
最后提交即可。
测试渠道
添加完渠道后,在渠道列表中可以点测试按钮测试该渠道,检查配置是否正确。
创建令牌
OneApi中已经有一个默认令牌了,如果没有别的需要,直接使用即可。
配置模型
当上面的工作完成后,我们就可以通过这个渠道来访问下面的所有模型。这时候需要在FastGPT中来配置模型。这就需要修改之前下载的config.json文件。
添加大语言模型
在config.json文件中,在llmModels下配置大语言模型,添加一个新模型,如下:
{
"model": "ERNIE-Speed-128K", // 模型名(对应OneAPI中渠道的模型名)
"name": "ERNIE-Speed-128K", // 模型别名
"avatar": "/imgs/model/ernie.svg", // 模型的logo
"maxContext": 125000, // 最大上下文
"maxResponse": 4000, // 最大回复
"quoteMaxToken": 120000, // 最大引用内容
"maxTemperature": 1.0, // 最大温度
"charsPointsPrice": 0, // n积分/1k token(商业版)
"censor": false, // 是否开启敏感校验(商业版)
"vision": false, // 是否支持图片输入
"datasetProcess": true, // 是否设置为知识库处理模型(QA),务必保证至少有一个为true,否则知识库会报错
"usedInClassify": true, // 是否用于问题分类(务必保证至少有一个为true)
"usedInExtractFields": true, // 是否用于内容提取(务必保证至少有一个为true)
"usedInToolCall": true, // 是否用于工具调用(务必保证至少有一个为true)
"usedInQueryExtension": true, // 是否用于问题优化(务必保证至少有一个为true)
"toolChoice": true, // 是否支持工具选择(分类,内容提取,工具调用会用到。目前只有gpt支持)
"functionCall": false, // 是否支持函数调用(分类,内容提取,工具调用会用到。会优先使用 toolChoice,如果为false,则使用 functionCall,如果仍为 false,则使用提示词模式)
"customCQPrompt": "", // 自定义文本分类提示词(不支持工具和函数调用的模型
"customExtractPrompt": "", // 自定义内容提取提示词
"defaultSystemChatPrompt": "", // 对话默认携带的系统提示词
"defaultConfig": {} // 请求API时,挟带一些默认配置(比如 GLM4 的 top_p)
}
这里要特别注意model
,一定要与OneApi中的模型名称完全一致,尤其注意大小写。
另外要注意最大温度,最大回复等设置,一定要与模型api中的要求一致,否则使用的时候就有可能因为参数错误导致无法正确调用模型。
avatar
即模型logo,FastGPT自带了一些logo文件,在projects/app/public/imgs/model
目录下,比如:
- /imgs/model/baichuan.svg - 百川
- /imgs/model/chatglm.svg - 智谱
- /imgs/model/calude.svg - calude
- /imgs/model/ernie.svg - 文心一言
- /imgs/model/moonshot.svg - 月之暗面
- /imgs/model/openai.svg - OpenAI GPT
- /imgs/model/qwen.svg - 通义千问
- /imgs/model/yi.svg - 零一万物
- /imgs/model/gemini.svg - gemini
- /imgs/model/deepseek.svg - deepseek
- /imgs/model/minimax.svg - minimax
这里直接使用即可。
其他的参考注释添加即可。
在llmModels下可以看到自带的几个模型,比如gpt-4o-mini,我们没配置渠道无法使用,就可以删掉了。
添加向量模型
在config.json文件中,在vectorModels下配置向量模型,添加一个新模型,如下:
{
"model": "bge-large-zh", // 模型名(与OneAPI对应)
"name": "bge-large-zh", // 模型展示名
"avatar": "/imgs/model/ernie.svg", // logo
"charsPointsPrice": 0, // n积分/1k token
"maxToken": 512, // 最大 token
"weight": 100, // 优先训练权重
"defaultConfig": {}, // 自定义额外参数。例如,如果希望使用 embedding3-large 的话,可以传入 dimensions:1024,来返回1024维度的向量。(目前必须小于1536维度)
"dbConfig": {}, // 存储时的额外参数(非对称向量模型时候需要用到)
"queryConfig": {} // 参训时的额外参数
}
与上面的注意事项一样,不赘述了。
同样这里可以将不用的自带模型删掉。
重启FastGPT
配置完config文件并保存后,重启FastGPT即可。
docker-compose down
docker-compose up -d
先停止docker再启动,等待启动完成后进去FastGPT,就可以看到新的模型了。这时候我们再重新创建知识库并上传文本就可以正常训练了。
添加自有模型
对于自己部署训练的模型,也可以通过上面的方式来添加,只不过在渠道配置这里有些不同。
比如自己通过Ollama部署的模型,选择Ollama,并且手动添加自己训练的模型名称。
然后密钥这里就不需要了,随便填写即可。
最后在代理这栏填入自己模型对应的API地址。
添加完成测试成功后,剩下的步骤就基本一样了。
总结
这样FastGPT就部署搭建完成了,而且我们也配置了渠道和模型,下面就可以来使用了。