私有化部署 FastGPT+OneAPI 构建大模型知识库
如何利用 Docker Compose 私有化部署 FastGPT 与 OneAPI 服务,构建基于 RAG 技术的大模型知识库。内容涵盖环境准备、FastGPT 与 OneAPI 的安装配置、M3E 向量模型的私有化集成、以及常见问题的排查与安全加固方案。通过整合开源组件,实现了低成本、高可控性的企业级 AI 应用落地。

如何利用 Docker Compose 私有化部署 FastGPT 与 OneAPI 服务,构建基于 RAG 技术的大模型知识库。内容涵盖环境准备、FastGPT 与 OneAPI 的安装配置、M3E 向量模型的私有化集成、以及常见问题的排查与安全加固方案。通过整合开源组件,实现了低成本、高可控性的企业级 AI 应用落地。

本文旨在通过实操完成 RAG(检索增强生成)方向开源产品的私有化部署,帮助开发者理解 RAG 技术原理,为未来大模型应用开发打下基础。文章将详细介绍如何结合 FastGPT 与 OneAPI 搭建本地知识库系统。
RAG(Retrieval-Augmented Generation)是一种检索增强生成的技术。其核心逻辑是'检索 + 生成':
RAG 架构包含两个阶段:
FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力。支持 Flow 可视化工作流编排。这里采用 Docker Compose 方式进行私有化部署。
在目标目录下创建文件夹并拉取官方配置:
mkdir fastgpt
cd fastgpt
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/files/deploy/fastgpt/docker-compose.yml
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json
编辑 docker-compose.yml 文件,根据实际需求修改端口映射(生产环境建议不要暴露数据库端口)。
关键配置说明:
POSTGRES_USER 和 POSTGRES_PASSWORD。MONGO_INITDB_ROOT_USERNAME 和 MONGO_INITDB_ROOT_PASSWORD。启动命令:
docker-compose pull
docker-compose up -d
服务启动成功后,可通过 http://ip:3000 访问管理后台。默认 root 密码可在 docker-compose.yml 中配置(如 DEFAULT_ROOT_PSW=1234)。
One-API 作为大模型服务代理,支持国内外主流大模型服务,对外提供 OpenAI 规范的 API。它解决了直接调用多个厂商 API 的复杂性问题,统一管理密钥和配额。
使用 Docker Compose 部署 One-API:
mkdir /oneapi
cp docker-compose.yml /oneapi
cd /oneapi
docker-compose up -d
注意修改文件中指定端口以避免与 FastGPT 冲突。
sk-xxxx)。在 FastGPT 的 docker-compose.yml 环境变量中配置 One-API 地址和 Key:
environment:
- OPENAI_BASE_URL=http://ip:端口/v1
- CHAT_API_KEY=sk-xxxx
同时需要修改 config.json 文件,确保模型名称与 One-API 渠道中的模型名称对应,否则请求会失败。
text-embedding-ada-002 或私有化 M3E。示例配置片段:
{
"SystemParams": {
"pluginBaseUrl": "",
"vectorMaxProcess": 15,
"qaMaxProcess": 15,
"pgHNSWEfSearch": 100
},
"ChatModels": [
{
"model": "gpt-3.5-turbo",
"name": "GPT35-turbo",
"price": 0,
"maxContext": 16000,
"maxResponse": 4000
}
]
}
重启 FastGPT 服务使配置生效:
cd /fastgpt
docker-compose restart
考虑到成本、安全和转换性能,建议使用 M3E 向量模型进行私有化部署。向量模型属于小模型,CPU 即可运行。
创建 m3e-docker-compose.yml 并启动:
version: '1'
services:
m3e:
image: registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api:latest
restart: no
ports:
- "6008:6008"
登录 One-API 控制台,添加 M3E 渠道,指向本地部署的 M3E 服务地址。
修改 FastGPT config.json 的 VectorModels 部分,加入 M3E 模型配置:
"VectorModels": [
{
"model": "m3e",
"name": "M3E(测试使用)",
"price": 0.1,
"defaultToken": 500,
"maxToken": 1800
}
]
在 FastGPT 中创建知识库,选择 M3E 模型,导入文档数据,并进行搜索测试,验证向量召回效果。
如果 5432、27017 或 3000 端口被占用,请在 docker-compose.yml 中修改 ports 映射关系,例如 - 5433:5432。
检查 MONGODB_URI 和 PG_URL 中的用户名密码是否与 docker-compose.yml 中定义的 environment 一致。注意 MongoDB 连接字符串中的 authSource=admin 可能需要调整。
确认 One-API 服务与 FastGPT 服务在同一网络下(通常通过 Docker Network 自动互通)。如果是跨主机部署,需确保防火墙开放相应端口,且 OPENAI_BASE_URL 填写正确的内网 IP。
M3E 模型首次启动可能较慢,这是正常现象。若 CPU 资源不足,可考虑增加内存或使用 GPU 加速。
docker-compose.yml 中的 DEFAULT_ROOT_PSW、数据库密码等敏感信息。./pg/data 和 ./mongo/data 卷进行定期快照或备份,防止数据丢失。通过上述步骤,您可以成功搭建一套基于 FastGPT 和 OneAPI 的私有化大模型知识库系统。该系统支持多种模型接入,具备完善的向量检索能力,适用于企业内部知识管理、智能客服等多种场景。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online