【Oneapi+FastGPT部署本地大模型】
- Oneapi:可以通过建立渠道接入访问多个模型,再通过生成的令牌部署到不同平台上。
- FastGPT:就是一个强大的“软件”可以聊天、文本生成、等自然语言处理服务。
- 大模型:本文本地部署的是deepseek-r1:32b模型,模型其实就是Fastgpt中处理逻辑的后端部分。
总结:三者之间的关系就是,OneAPI作为“中间商”接入本地大模型+FastGPT通过OneAPI生成的令牌等参数调用本地大模型。最终FastGPT可以用我们本地部署的大模型进行对话等自然语言处理。本文我们利用docker-compose工具将Oneapi、FastGPT部署到Linux系统中的一个docker容器中。
目录
一、Docker环境布置
1.安装Docker和Docker-compose
# 安装 Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
systemctl enable --now docker
# 安装 docker-compose
curl -L https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 验证安装
docker -v
docker-compose -v
二、部署Oneapi、FastGPT容器
1. 下载配置文件
#在服务器上创建一个名为fastgpt的文件夹(最好不要建到/root路径下,我创建到了/home下)
mkdir fastgpt
#进入fastgpt文件夹下
cd fastgpt
#下载config.json配置文件
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json
#下载docker-compose.yml配置文件
curl -O docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-pgvector.yml
此时,在fastgpt文件夹下就存在了以下两个配置文件:
- config.json(可在里面添加模型)
- docker-compose.yml(定义了多个容器服务,主要包括数据库服务PostgreSQL、MongoDB、MySQL和AI模型服务FastGPT 和 OneAPI。每个独立的容器通过共享的网络相互通信。)
2. 启动容器
此步骤需要在 docker-compose.yml 同级目录下执行,并且请确保docker-compose版本最好在2.17以上,否则可能无法执行自动化命令。
# 启动容器(通过下面这行命令执行yml配置文件中要创建的容器)
docker-compose up -d
# 等待10s,OneAPI第一次总是要重启几次才能连上Mysql
sleep 10
# 重启一次oneapi(由于OneAPI的默认Key有点问题,不重启的话会提示找不到渠道,临时手动重启一次解决,等待作者修复)
docker restart oneapi
2.1 问题一:某些镜像拉取失败
执行docker-compose up -d命令后,出现“error mySQL、qg、mongo”即这三个容器的基础镜像拉取失败,此时需要修改配置文件中拉取这三个镜像的镜像源。比较贴心的是这个配置文件里给了一个被注释掉了的国内镜像源作为备用,因此我们找到相关的位置进行如下操作再执行上面docker-compose up -d命令即可:
# 修改配置文件(我利用vim编辑器进入配置文件进行修改)
vim docker-compose.yml
# 找到原配置文件关于pg的信息,如下:
pg:
image: pgvector/pgvector:0.7.0-pg15 # docker hub
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.7.0 # 阿里云
container_name: pg
-----------------------------------------------------------------------
# 进行镜像源的更换,将第一个docker hub镜像注释掉,用第二个阿里云的镜像
pg:
# image: pgvector/pgvector:0.7.0-pg15 # docker hub
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.7.0 # 阿里云
container_name: pg
2.2 问题二:某些容器端口被占用
由于我这个服务器上还存在其他的docker,因此出现了在启动容器fastgpt时出现本来默认的3000:3000端口被占用的错误,这个时候我将其改成了3010:3000,再执行上面docker-compose up -d命令。【注:左边的这个主机端口可以随意设置只要不与已存在的端口号冲突就行,但是右边的这个端口号必须是3000】
# 修改配置文件(我利用vim编辑器进入配置文件进行修改)
vim docker-compose.yml
# 找到原配置文件关于fastgpt的信息,如下:
fastgpt:
container_name: fastgpt
image: ghcr.io/labring/fastgpt:v4.8.22 # git
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.22 # 阿里云
ports:
- 3000:3000
-----------------------------------------------------------------------
# 修改端口号,左边主机的端口号可任意选择,只要不和其它已存在的端口号冲突;右边的端口号必须是3000
ports:
- 3010:3000
三、打开 OneAPI
在浏览器中输入“ip:3001”进行OneAPI网页的访问,默认账号为root,密码为123456。
1. 登录

1.1 问题一:网页无法访问
在确定服务器IP填写正确、OneAPI端口号正确的前提下,依旧无法访问该网页。然后发现需要在yml配置文件中加入以下参数:
# 修改配置文件(我利用vim编辑器进入配置文件进行修改)
vim docker-compose.yml
# 找到原配置文件关于oneapi中environment下的信息,如下:
oneapi:
environment:
# mysql 连接参数
- SQL_DSN=root:oneapimmysql@tcp(mysql:3306)/oneapi
# 登录凭证加密密钥
- SESSION_SECRET=oneapikey
-----------------------------------------------------------------------
在环境参数中加入下面这个参数
oneapi:
environment:
#为服务器配置端口
- FE_DOMAIN=http://ip:3001
2. 创建渠道
2.1 部署自己本地的模型
(1)类型:选择“自定义渠道”【但由于我们自己本地的大模型是通过ollama这个工具部署了deepseek-r1:32b版本,每次运行这个大模型还是要调用ollama。因此我们这个渠道的类型不能选择"自定义渠道“,还是需要选择ollama的渠道服务。】
(2)名称:可任意取
(3)分组:默认选择default
(4)模型:在”输入自定义模型名称“中输入本地部署的模型名称,然后点击“填入”
(5)密匙:随便填写
(6)代理:“http://ip:访问本地大模型的端口”(我们的是11434默认访问ollama的端口)

2.2 部署其它模型
和部署本地大模型不同的是,密匙和代理要从他们官方文档那边获取。

3. 创建令牌
令牌的功能就是用于身份验证、授权或数据安全的加密字符串,有了它就可以访问相关的渠道。
(1)名称:任意取
(2)模型范围:选择刚刚在渠道中添加的
(3)时间和额度:选择永不过期、无限额度

4. 查看令牌信息
点击“复制”按钮,在搜索框中会出现“令牌"需要记住它

四、打开FastGPT
在浏览器中输入“ip:3000”进行OneAPI网页的访问,默认账号为root,密码为1234
【注】这个3000端口号是默认的,要看你自己当初在配置文件中设置的,比如在我的服务器上3000端口已经被占用了,所以我通过端口3010访问的。
打开fastgpt的网页如下图所示:

1. 添加模型 (通过前端页面)
按照上图找到“账号-模型提供商-模型配置-配置文件”,在里面添加如下内容:

【注意】模型API请求地址的填写!
分享我前期踩的两个坑:
(1)出现“404 not found error”即找不到网页的错误
是因为我的API请求地址填写成了直接访问我们本地大模型的地址“http://ip:11434”(就是添加渠道步骤中要填写的那个代理地址),直接绕过了Oneapi这个工具根本没用到它。因此我这边直接跳过了oneapi这个“中间商”进行访问本地大模型是找不到的。所以我用官网给的教程改成了以下这个,但是出现了下面这个新错误!
"requestUrl": "http://ip:3001/v1"
(2)出现“输出流错误”
这个时候我已经不知道自己错到哪里了,很多帖子和官网给的教程就是上面这个格式API请求格式我也在后面加了/v1。直到发现这个提示!对于不同的模型类型,API请求地址是不同的。由于我们经过OneAPI,因此需要遵循OneAPI的格式填写完整请求地址,根据不同类型的模型加上以下后缀。其中IP为服务器的,端口为OneAPI的:
LLM:“http://ip:端口/v1/chat/completions”
Embedding:“http://ip:端口/v1/embeddings”
STT:“http://ip:端口/v1/audio/transcriptions”
TTS:“http://ip:端口/v1/audio/speech”
Rerank:“http://ip:端口/v1/rerank”
2. 添加模型 (通过配置文件)
在“/fastgpt"文件夹下找到“config.json”,进入编辑该配置文件把上面给的模型参数信息写进去。
# 进入并编辑配置文件
vim config.json
添加以下参数:
{
"model": "本地部署的模型名称(必须和当初创建渠道时添加的模型的名称一样)",
"name": "模型别名(任取)",
"charsPointsPrice": 0,
"isActive": true,
"type": "llm、STT、TTS等(根据自己的模型类型填写)",
"showTopP": false,
"showStopSign": false,
"requestUrl": "上面那个Oneapi请求地址",
"requestAuth": "令牌",
"toolChoice": true,
"functionCall": true,
"vision": false,
"reasoning": true,
"datasetProcess": true,
"usedInClassify": true,
"usedInExtractFields": true,
"usedInToolCall": true,
"defaultSystemChatPrompt": "",
"customCQPrompt": "",
"customExtractPrompt": "",
"maxContext": 8000,
"quoteMaxToken": 8000,
"maxResponse": 4000,
"maxTemperature": 1,
"provider": "Other"
}
然后重新运行以下命令
# 利用docker-compose工具进行容器重启
docker-compose up -d
【但是很奇怪】我通过修改配置文件进行添加模型,但是我改完这个配置文件我的fastgpt网页都没办法打开访问了,就很神奇。但是友友们可以试试,因为大多数帖子还是通过配置文件来添加模型的。因为我的出错了所以我是通过前端的方法来添加的(而且我个人觉得通过前端添加更方便)
3. 使用Fastgapt进行对话聊天
点击“工作台-新建-简易应用”

简易应用的名称可以随便取,选择刚刚部署上去的AI模型后即可开始进行对话。

更多推荐
所有评论(0)