公司的产品文档站攒了三百多篇,新人来了找东西全靠 Ctrl+F,搜"退款"搜不到"撤单",搜"鉴权"搜不到"token 怎么拿"。我寻思能不能弄个会答话的小助手,把整个文档站喂进去,问一句它给一句。

以前我以为这事得自己写向量检索、起个 embedding 服务、再接个模型,光环境就得折腾两天。后来用了个能拖拽配智能体的平台,零代码,纯靠点点选选就把这套搭起来了,前后大概一个下午。

第一步:知识库怎么切块

文档丢进去之前,得先想清楚切块(chunk)。一篇五千字的接口文档,你要是整篇当一块塞进去,召回的时候要么命中要么全不命中,颗粒太粗;切太碎了又会把"请求参数"和它下面的"示例"拆散,答出来缺胳膊少腿。

我一开始偷懒用了默认的按字数切,512 字一刀。结果测的时候问"创建订单要传哪些字段",召回回来的块正好把字段表从中间截断了,答出来少了三个字段。后来改成按 Markdown 的标题层级切,一个二级标题底下的内容尽量不拆,再设了个 80 字的重叠(overlap),让相邻两块有点搭接,这个问题才好。

经验是:文档结构清晰的,优先按标题切,别死磕字数。

第二步:召回这一步最容易翻车

切完块、灌进去之后,平台会自动把每块做成向量。提问的时候,它把你的问题也变成向量,找最近的几块扔给模型去组织答案。

这里有个我踩了半天的坑:召回数量(top-k)。我默认设了 3,问稍微复杂点的问题答案就不全,因为相关内容散在四五个块里。提到 8,乱七八糟不相关的块也被捞进来,模型反而被带偏,开始一本正经地瞎答。最后我卡在 top-k = 5,再配了个相似度阈值(低于 0.7 的块直接丢掉),既不漏也不噪。

第三步:测一测再上

我手攒了 30 个新人最常问的问题当测试集,一条条过。这步挺枯燥的,测评用例得自己积累,平台不会替你想用户会怎么问。但过完这一轮,我心里才有底——准确率从一开始的六成多调到了九成出头。

现在这小助手挂在文档站侧边栏,新人问"忘记密码怎么搞",它能准确指到那篇《账号找回》。我自己都省了不少答疑。

要说缺点,文档一更新就得记得重新同步知识库,不然它答的是旧版,这个我后来加了个定时任务才省心。

(embedding 和问答用的大模型我直接走的讯飞 MaaS,调现成 API,没自己搭 embedding 服务,省了一台机器。)

Logo

一站式 AI 云服务平台

更多推荐