想给内部资料做个问答入口,又不想把文档传到别人的服务器上,FastGPT 是很多人会想到的方案。但真到自己动手,卡点往往不在「装不装得上」,而在依赖组件怎么摆、模型走本地还是走接口、向量库和存储放哪台机器。这篇按「准备—部署—验收」的顺序把动作列清楚,具体版本与资源数字到站内模型库和部署测算页核对。
想给内部资料做个问答入口,又不想把文档传到别人的服务器上,FastGPT 是很多人会想到的方案。但真到自己动手,卡点往往不在「装不装得上」,而在依赖组件怎么摆、模型走本地还是走接口、向量库和存储放哪台机器。这篇按「准备—部署—验收」的顺序把动作列清楚,具体版本与资源数字到站内模型库和部署测算页核对。
下面按四步走:先盘资源和前置依赖,再决定组件怎么放,然后接模型,最后按清单验收与排障。每步都给了判断标准和可执行动作,照着做能少走不少弯路。
动手前先盘清楚四件事
别急着敲命令,先花半小时把下面四件事写在纸上。这四件事没定,后面装到一半再改,返工成本比现在高得多。特别是算力和模型来源,直接决定你这台机器能不能跑起来。
| 要盘的事 | 判断标准 | 什么时候不适用 |
|---|---|---|
| 算力与显存 | 对话、向量、重排三类模型分别跑在哪,本地跑先按参数量和量化档估算显存 | 如果全部走外部接口,本地显存只影响并发和索引速度,不决定能不能回答 |
| 前置依赖 | 容器运行时、数据库、对象存储、向量库一个都不能少 | 全托管方案可以跳过部分组件,但自建就别想省 |
| 模型来源 | 本地权重、自建推理服务、外部按量接口三条路先定一条 | 团队已有推理服务时混用,但地址和密钥要分开管 |
| 网络与端口 | 内网机器确认端口放行、镜像拉取、模型下载三段流量 | 离线环境提前把镜像和权重搬进去,别到装的时候才发现下不动 |
- 算力与显存:对话模型、向量模型、重排模型分别跑在哪,本地跑要先按参数量和量化档算显存,别等装完才发现加载不动,参考「部署测算」页的算法;
- 前置依赖:容器运行时、数据库、对象存储、向量库这几类组件一个都不能少,缺哪个后面都会报错,建议先列一张组件对照表再开装;
- 模型来源:本地权重、自建推理服务、外部按量接口三条路可以混用,但每条路对应的地址、密钥、超时配置不一样,先定下来再填;
- 网络与端口:内网机器要考虑端口放行、镜像拉取、模型下载这几段流量,离线环境要提前把镜像和权重搬进去。
组件怎么摆:单机起步与拆开部署的分界
组件摆放没有标准答案,但有明确的分界线。验证阶段怎么省事怎么来,一旦要长期用,就得按数据量和并发来决定拆不拆。下面这张表帮你判断自己现在处在哪个阶段。
| 阶段 | 摆放方式 | 典型触发条件 |
|---|---|---|
| 验证阶段 | 所有组件挤一台机器 | 只有几个人试用,文档量不大 |
| 过渡阶段 | 向量库和对象存储先挪出去 | 文档量变大、上传变慢、索引经常卡 |
| 正式使用 | 数据库、向量库、对象存储分别独立 | 并发上来,或者要跟已有数据库和存储复用 |
- 第一步:确定编排方式容器编排用哪个不是重点,重点是配置文件集中管理、数据卷单独挂载,升级时别把数据和镜像混在一起。
- 第二步:检查已有资源如果团队已经有内部的模型推理服务,优先复用而不是再起一套,省显存也省维护。
- 第三步:规划数据卷数据库、对象存储、向量库的数据各自挂独立卷,容器删了数据还在,迁移时只搬卷不搬容器。
模型接入:对话、向量、重排三段分别接
FastGPT 里模型不是接一次就完事,对话、向量、重排是三段独立的配置,地址、密钥、超时都可以不一样。很多人卡在「上传成功但提问没反应」,基本就是这三段里有一段没接对。
- 对话模型
- 负责生成答案,决定回答质量和上下文长度上限
- 向量模型
- 把文档和问题转成可比的向量,直接影响召回质量,中文场景尤其要看对比口径
- 重排模型
- 把召回结果再筛一遍,可选但开了通常更准,代价是多一次推理开销
中文场景下向量模型的选择直接影响召回质量,挑之前先看「嵌入模型」页的对比口径,别只看维度高低。本地推理服务没起来或者地址填错时,典型表现是上传文档成功、提问却一直转圈或直接报错,先单独用接口测一下再回去查配置。
- 三段分开配:对话、向量、重排的地址和参数各填各的,别指望填一处全生效;
- 先单独测:用简单脚本或接口工具分别调通三段,再回 FastGPT 里填地址;
- 切分看窗口:切分长度别超过模型上下文窗口,否则尾部内容直接丢;
- 重排可选:文档量小可以先不开,等召回不准了再加,别一上来就堆组件。
上线前的验收清单与常见报错顺序
装完不等于能用。验收要按从小到大的顺序来,先跑通最小闭环,再压并发和长文档。跳过最小闭环直接导全量数据,出了问题你连是哪一环都定位不了。
- 第一步:跑通最小闭环上传一份小文档、等索引完成、问一个文档里能直接找到答案的问题,这一步不过就别急着导全量数据。
- 第二步:压并发和长文档看响应时间和显存占用是不是稳,接口慢不一定是模型的问题,先用「接口测速」量出基线。
- 第三步:按顺序排查报错容器起没起 → 数据库连没连上 → 向量库索引状态 → 模型接口能否单独调通 → 最后才怀疑参数。
- 第四步:留一份说明给团队留一份「谁的机器、跑哪些组件、配置在哪」的说明,出问题时不用从头翻。
| 现象 | 先查什么 | 再查什么 |
|---|---|---|
| 上传卡住 | 容器和网络 | 对象存储和向量库连通性 |
| 提问报错 | 模型接口能否单独调通 | 三段模型地址是否填错 |
| 回答不准 | 切分长度和召回条数 | 向量模型是否适配中文 |
| 越用越慢 | 显存和 IO 占用 | 是否该把组件拆开部署 |
常见问题
FastGPT 本地部署一定要有显卡吗?
不一定。对话和向量模型都可以调外部按量接口,本地只跑应用和存储组件,普通服务器也能搭起来。但如果要求数据完全不出内网,模型也得本地跑,那就得按参数量和量化档算显存,具体配置到站内「部署测算」页对一遍,再决定买还是租。
能不能只用容器一键起,不折腾数据库和向量库?
验证阶段可以,很多部署包会把这些组件一起带起来。但用于正式业务时不建议:数据卷、备份、升级路径都绑在一起,出问题不好拆。等文档量和并发上来,还是要按「拆开部署」的思路把存储和向量库独立出去,迁移前先确认数据能导出。
部署好了但回答不准,是模型不行吗?
先别怪模型。按顺序查三件事:文档切分是不是把完整语义切断了;向量模型是不是跟中文语料不匹配,可以去「嵌入模型」页看选型口径;召回条数是不是设得太少,导致答案原文根本没进上下文。这三项调完再考虑换对话模型。