1. 为什么需要 OneAPI 做中间层如果你手里已经跑着 ChatGLM3-6B 的 OpenAI 兼容接口又想让 FastGPT 直接把它当成知识库问答的底座中间大概率会卡在“模型名对不上、鉴权方式不统一、嵌入模型和对话模型混在一起”这几件事上。FastGPT 默认按 OpenAI 的协议去请求对话模型和向量模型而本地部署的 ChatGLM3-6B 虽然也暴露了/v1/chat/completions但它的模型名、端口、密钥跟 OpenAI 完全不是一套。OneAPI 的价值就在这里它把不同来源的模型统一成一套 OpenAI 风格的接口FastGPT 只需要认 OneAPI 的地址和令牌后面接的是本地 ChatGLM3 还是别的模型对 FastGPT 来说都一样。这套链路适合谁适合已经用 GPU 机器把 ChatGLM3-6B 跑起来、想快速验证“本地模型 本地知识库”问答效果的开发者。你不需要改 FastGPT 的源码也不需要让 ChatGLM3 去适配 FastGPT 的私有协议只要在 OneAPI 里建好渠道在 FastGPT 的config.json里把模型名对齐整条链路就能通。下面按我实际搭过一遍的顺序从 OneAPI 渠道配置讲到 FastGPT 知识库上传和一次完整的问答验证。2. 前置准备ChatGLM3-6B 与嵌入模型先跑通在动 OneAPI 之前先确认两个模型服务是活的。对话模型用 ChatGLM3-6B 的openai_api_demo/api_server.py嵌入模型用 m3e-large 的容器版。这两个服务分别占一个端口后面 OneAPI 要分别建渠道指向它们。2.1 启动 ChatGLM3-6B 的 OpenAI 兼容服务进入 ChatGLM3 项目目录激活 conda 环境后确认api_server.py里的模型路径指向你实际下载的权重目录# 确认模型路径配置 MODEL_PATH os.environ.get(MODEL_PATH, /root/work/models/chatglm3-6b) TOKENIZER_PATH os.environ.get(TOKENIZER_PATH, MODEL_PATH) EMBEDDING_PATH os.environ.get(EMBEDDING_PATH, /root/work/models/bge-large-zh)启动服务(ChatGLM3) rootmaster:~/work/ChatGLM3/openai_api_demo# python api_server.py看到Uvicorn running on http://0.0.0.0:8000就说明对话模型服务起来了。这个 8000 端口就是 OneAPI 要指向的对话渠道地址。2.2 启动 m3e-large 嵌入模型嵌入模型单独用容器跑注意要带 GPUdocker pull registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api:latest docker run -d -p 6008:6008 --name m3e --gpus all registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api:latest这个服务的鉴权密钥是固定的sk-aaabbbcccdddeeefffggghhhiiijjjkkkOneAPI 建渠道时要用到这个值。启动后看日志确认模型加载到 GPUdocker logs -f m3e日志里出现本次加载模型的设备为GPU和Uvicorn running on http://0.0.0.0:6008即可。这里有个容易误判的点如果你在 OneAPI 里对这个嵌入渠道点“测试”会返回 404因为 m3e 只提供/v1/embeddings不提供/v1/chat/completions。这不是配置错了是模型类型决定的忽略这个 404 就行。3. OneAPI 渠道配置把两个本地模型接进来OneAPI 本身用 Docker 起默认账号 root / 123456首次登录必须改密码。它的作用是给 FastGPT 提供一个统一的/v1入口。3.1 启动 OneAPI 容器docker pull justsong/one-api mkdir -p /usr/local/docker/oneapi docker run --name one-api -d --restart always -p 3001:3000 \ -e TZAsia/Shanghai \ -v /usr/local/docker/oneapi:/data \ justsong/one-api访问IP:3001用 root / 123456 登录后立刻改密码。然后在“令牌”页面创建一个 API Key建议选“永不过期”“设为无限额度”这个 Key 后面要填到 FastGPT 的CHAT_API_KEY里。3.2 建对话渠道指向 ChatGLM3-6B在 OneAPI 的“渠道”页面新建渠道类型选 OpenAI 兼容类关键参数如下参数值说明渠道名称chatglm3-local自定义方便识别Base URLhttp://192.168.5.210:8000/v1指向 ChatGLM3 服务务必带 /v1密钥任意非空字符串ChatGLM3 的 api_server 不校验密钥模型名称ChatGLM3-6B必须与 FastGPT config.json 中一致这里的模型名称ChatGLM3-6B是整条链路对齐的关键。OneAPI 里写什么FastGPT 的config.json里就要写什么大小写和连字符都要一致否则 FastGPT 会报“模型不存在”。3.3 建嵌入渠道指向 m3e-large再建一个渠道给嵌入模型参数值说明渠道名称m3e-local自定义Base URLhttp://192.168.5.210:6008/v1指向 m3e 服务密钥sk-aaabbbcccdddeeefffggghhhiiijjjkkkm3e 固定密钥模型名称m3e-large与 FastGPT vectorModels 对齐这个渠道在 OneAPI 里测试会 404前面说过原因不用管。只要 FastGPT 调用/v1/embeddings时能通就行。4. FastGPT 接入参数config.json 与 docker-compose 对齐FastGPT 的配置分两块docker-compose.yml里指定 OneAPI 的地址和令牌config.json里声明可用的对话模型和向量模型。两块都改完再重启容器。4.1 修改 docker-compose.yml 指向 OneAPI在 FastGPT 的docker-compose.yml里找到 fastgpt 服务的 environment 段改成environment: - DEFAULT_ROOT_PSW1234 # 指向 OneAPI 地址务必加 /v1 - OPENAI_BASE_URLhttp://192.168.5.210:3001/v1 - CHAT_API_KEYsk-CwH3lQk0CCiUdalf3d41A405C9Ca4359991e213d0bC5B13bCHAT_API_KEY就是你在 OneAPI 里创建的那个令牌。改完执行docker-compose up -d4.2 在 config.json 中注册 ChatGLM3-6B 对话模型打开fastgpt/config.json复制一份gpt-3.5-turbo的配置块改名为 ChatGLM3-6BllmModels: [ { model: ChatGLM3-6B, name: ChatGLM3-6B, maxContext: 8000, maxResponse: 2000, quoteMaxToken: 7000, maxTemperature: 1.2, vision: false, functionCall: false, defaultSystemChatPrompt: } ]model字段的值必须和 OneAPI 渠道里的模型名称完全一致。改完重启 FastGPTdocker restart fastgpt4.3 在 config.json 中注册 m3e-large 向量模型同样在config.json的vectorModels数组里加入 m3evectorModels: [ { model: m3e-large, name: m3e-large, defaultToken: 500, maxToken: 3000, price: 0 } ]model值对应 OneAPI 嵌入渠道里的模型名称。再次重启 FastGPT 让配置生效。5. 验证请求从对话测试到知识库问答配置改完后分两步验证先确认对话模型通再确认知识库问答通。5.1 新建对话应用验证 ChatGLM3-6B访问IP:3000用 root / 1234 登录。在“应用”里新建一个应用模板选“简单的对话”创建后进入配置页在 AI 模型下拉里选ChatGLM3-6B保存并预览。输入一句“你好介绍一下你自己”如果返回的是 ChatGLM3 风格的回复说明 OneAPI → ChatGLM3 这条链路通了。5.2 新建知识库并上传数据在“知识库”菜单新建知识库索引模型选m3e-large。上传一个测试文件比如一份产品说明的 txt 或 pdf按默认参数处理等训练状态变成“就绪”。5.3 新建知识库应用并关联再新建一个应用模板选“知识库对话引导”AI 模型选ChatGLM3-6B关联刚才建的知识库保存并预览。提问一个只有上传文件里才有的细节比如文件里写的某个参数值如果回答能引用到文件内容说明整条链路打通了。5.4 用 curl 直接验证 OneAPI 出口如果想绕过 FastGPT 单独确认 OneAPI 的对话出口可以直接请求curl http://192.168.5.210:3001/v1/chat/completions \ -H Authorization: Bearer sk-CwH3lQk0CCiUdalf3d41A405C9Ca4359991e213d0bC5B13b \ -H Content-Type: application/json \ -d { model: ChatGLM3-6B, messages: [{role: user, content: 用一句话说明什么是知识库问答}], stream: false }返回里有choices[0].message.content就说明 OneAPI 出口正常。这个请求能通FastGPT 那边基本不会因为模型接入出问题。6. 本篇常见错排查6.1 知识库问答报“文件处理模型不存在”这是最容易踩的坑。FastGPT 的知识库在文件处理阶段默认固定用gpt-3.5-turbo-1106做内容提取即使你对话模型选了 ChatGLM3-6B这个文件处理模型也不会自动替换。报错信息通常类似“模型 gpt-3.5-turbo-1106 未找到”。解决方式有两种。第一种是在 OneAPI 里给 ChatGLM3 渠道的模型名称列表里追加gpt-3.5-turbo-1106这样 FastGPT 请求这个模型名时OneAPI 会把它路由到 ChatGLM3。第二种是单独建一个渠道模型名称写gpt-3.5-turbo-1106Base URL 仍指向 ChatGLM3 服务。两种方式效果一样选一种即可改完重启 FastGPT。6.2 OneAPI 测试嵌入渠道返回 404前面提过m3e 只提供 embeddings 接口OneAPI 的渠道测试默认打的是 chat completions所以 404 是正常的。判断嵌入渠道是否可用不要看 OneAPI 的测试按钮直接看 FastGPT 知识库训练时是否报错或者用 curl 打/v1/embeddings验证。6.3 FastGPT 报“模型不存在”或“无可用渠道”先检查三处名称是否完全一致OneAPI 渠道里的模型名称、FastGPTconfig.json里的model字段、FastGPT 应用下拉里选的模型。三处任意一处大小写或连字符不同都会失败。另外确认OPENAI_BASE_URL带了/v1CHAT_API_KEY用的是 OneAPI 令牌而不是 m3e 的固定密钥。6.4 对话有回复但知识库内容没被引用如果对话能通但回答不涉及上传文件的内容先确认知识库训练状态是“就绪”再确认应用里关联了正确的知识库。还有一个常见原因是提问的相似度阈值太高可以在知识库搜索配置里把相似度阈值调低一点或者把“引用上限”调大让更多片段进入上下文。7. 接入与验证入口整条链路里OneAPI 负责统一出口FastGPT 负责知识库编排ChatGLM3-6B 和 m3e-large 分别提供对话与向量能力。如果你在配置 OneAPI 渠道或 FastGPT 模型参数时卡住可以直接对照接入文档逐项核对需要创建和管理 OneAPI 令牌走 API Keys 页面https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi_keysutm_campaignrewrite接入参数和协议细节查接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite想先在网页里验证模型对话效果用模型对话入口https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite如果后续要把这套链路用于长期编码或 Agent 场景可以看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding_planutm_campaignrewrite把 OneAPI 的渠道名称、FastGPT 的config.json模型名、应用里选的模型这三处对齐再处理掉gpt-3.5-turbo-1106这个文件处理模型的坑本地知识库问答就能稳定跑起来。
企业数字化 ERP 产品动态
相关推荐
建设网站的定位:不懂代码做官网,到底要花多少钱? 建设网站的定位:不懂代码做官网,到底要花多少钱? 想给公司做个官网,但自己一行代码都不会写,心里最慌的往往不是设计丑不丑,而是这事儿到底要 多少钱… · 2026/9/27 19:56:51
Vue 开发提效:TaoToken 统一 Key 接入 VS Code 插件链的配置骨架 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 19:56:51
手机屏幕缺陷检测YOLO数据集训练指南:300张标注图踩坑与调优 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 21:03:29
WPF MediaElement视频播放深度解析与生产级调优 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 21:03:29
2026硬件面试核心:电源/时序/SI/EMC四大工程纵深解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 21:03:29
痤疮图像识别YOLOv8训练全流程:数据集规范、标注校验与调优 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 21:03:29
1DPC/2DPC是什么?DDR5内存插满频率上不去的真相 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 21:03:22
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01