最近在使用 FastGPT 时遇到了一个升级问题,从 4.8.16 升级到 4.8.20 后,模型配置出现了问题。作为一个低频使用这个工具的小白,我花了不少时间才解决了这个问题,现在把整个过程记录下来,希望能帮助遇到同样问题的你。
题外话:感谢DeepSeek-R1,因为有了它,才让16G显存部署的本地模型可用性大大提升,效果也比以前的模型好很多,所以才有了折腾捣鼓的动力。
升级后的困惑
按照之前习惯,在 oneapi 中配置了模型渠道,然后在 config.json 中添加了新的模型,重启了 docker-compose,但升级后发现无论如何也找不到新增的模型。这让我有点摸不着头脑,明明之前的方法一直很有效啊!
尝试与挣扎
尝试了以下几种方法:
- 重装 docker 镜像:我以为可能是旧版本镜像缓存的问题,重新安装后发现还是不行。
- 检查日志文件:通过查看
docker logs fastgpt_docker_id
,猜想模型是从 mongodb 中加载的。这让我意识到新版本可能不再依赖 config.json 了。 - 处理 mongodb 数据:我尝试删除 mongodb 中的 system_models 集合,结果fastgpt中所有模型都不见了。重新添加后问题依旧存在。
最终可以确认:升级后的 FastGPT 不再使用 config.json 配置模型,而是将配置写入到了 mongodb 中。
解决方案
为了修复这个问题,我按照官网的说明一步步来:
- 备份旧配置:为了避免数据丢失,我先把旧的 config.json 文件备份并改名为
config.json_bak
。 - 新建配置文件:创建一个新的 config.json 文件,并粘贴以下内容:
{
"feConfigs": {
"lafEnv": "https://laf.dev" // 这里填入你的 laf 环境地址,可以是阿里云的https://laf.run 或者私有化的环境。
},
"systemEnv": {
"vectorMaxProcess": 15, // 向量处理线程数量
"qaMaxProcess": 15, // 问答拆分线程数量
"tokenWorkers": 50, // Token 计算线程数,设置不宜过大
"pgHNSWEfSearch": 100 // 向量搜索参数,越大越精确但速度越慢
}
}
这个配置文件比之前简单很多,不用再添加 llm 模块了。
- 重启服务:执行命令
docker-compose down -v && docker-compose up -d
,确保新的配置生效。 - 在 OneAPI 中配置模型:以本地部署的 lm-studio 为例,在 oneapi 中选择 OpenAI 类型,填写自定义模型名称和代理地址(即 lm-studio 机器的 IP搭配默认1234端口)。
- FastGPT 中添加模型:进入 FastGPT 界面,按照路径“账号-模型提供商-模型配置-新增模型”,填入在 OneAPI 中设置好的模型 ID 和模型别称即可。
总结
这次升级让我学到了一个重要的教训:及时查看官方文档非常重要。新版本的改动可能会导致旧方法失效,提前了解变化可以避免很多麻烦。