新闻详情

新闻详情

首页 / 资讯中心 / 详情

大模型知识库:基于OneAPI+ChatGLM3-6B+FastGPT搭建大模型知识库问答系统

发布时间:2026/9/27 19:57:17来源:尧图网络
大模型知识库:基于OneAPI+ChatGLM3-6B+FastGPT搭建大模型知识库问答系统
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这个文件处理模型的坑本地知识库问答就能稳定跑起来。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

2026最新大型网站开发实例图解:从被黑挂马到稳健架构的实战复盘 2026/9/28 0:11:43

2026最新大型网站开发实例图解:从被黑挂马到稳健架构的实战复盘

2026最新大型网站开发实例图解:从被黑挂马到稳健架构的实战复盘 凌晨三点,运维监控报警灯疯狂闪烁,你盯着后台日志,发现官网首页源码被替换成了赌博广告代码,甚至跳转链接都指向了境外非法站点。更让你冷汗直流的是,这种“网站被黑挂马不知道怎么办…

阅读更多 →
3个月搞定官网+排名,揭秘网站推广排名公司背后的源码下载陷阱 2026/9/28 0:11:37

3个月搞定官网+排名,揭秘网站推广排名公司背后的源码下载陷阱

3个月搞定官网+排名,揭秘网站推广排名公司背后的源码下载陷阱 改个需求建站公司拖一周,源码下载还要加钱?这种憋屈事,我见得太多了。很多老板花几万块找所谓的 网站推广排名公司…

阅读更多 →
WordPress新版无法保存?5个排查步骤+最佳实践 2026/9/28 0:10:58

WordPress新版无法保存?5个排查步骤+最佳实践

WordPress新版无法保存?5个排查步骤+最佳实践 刚接手一个重庆做建材外贸的站点,后台一进去就发现不对劲。客户急得直跺脚,说刚改完产品描述,点保存没反应,刷新页面全没了。更吓人的是,之前有次更新完插件,首页突然弹出一堆博彩广告,点进去…

阅读更多 →
军博做网站公司从零搭建官网避坑指南 2026/9/28 0:10:51

军博做网站公司从零搭建官网避坑指南

军博做网站公司从零搭建官网避坑指南 网站做好了没人访问,这大概是很多站长最头疼的事。你花大价钱找 军博做网站公司 ,甚至自己 从零搭建 ,结果上线半个月,后台流量还是个位数。别急着怪算法,大概率是底子没打对。…

阅读更多 →
做游戏用什么电脑系统下载网站看3个实战案例 2026/9/28 0:10:32

做游戏用什么电脑系统下载网站看3个实战案例

做游戏用什么电脑系统下载网站看3个实战案例 别再被那些花里胡哨的模板网站忽悠了,看着高大上,实际跑起来卡顿、加载慢,用户留不住。很多刚入行的运营或者小团队老板,总想着找个“做游戏用什么电脑系统下载网站”这种关键词直接套模板,结果上线后发现搜…

阅读更多 →
不会代码做wordpressforum要花多少钱? 2026/9/28 0:10:26

不会代码做wordpressforum要花多少钱?

不会代码做wordpressforum要花多少钱? 手里拿着域名,脑子里全是想法,但打开编辑器就头大,自己不会代码想做网站,这大概是无数创业者最真实的写照。你想知道搞个 wordpressforum…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉