A
Member
AI 客服知识库上线后答非所问,很多人第一反应是换更大的模型,但我经手的案例里,问题八成出在检索和生成之间的配合上,模型本身反而是最后才需要动的部分。
第一,先看召回对不对。把用户问题拿去跑检索,看返回的前五条里有没有正确答案的文档。如果召回里根本没有正确答案,生成再好也是编,调提示词没有用,得先修切分、 Embedding 或召回策略。
第二,查切分是不是把答案切碎了。一份操作手册被切成互不关联的碎片后,单条召回只有半句话,模型只能靠猜补全。按语义段落切分、给片段留上下文重叠,召回质量常常立刻改善。
第三,对齐生成与证据的约束。提示词里要求“只依据检索结果回答、没有依据就说不知道”,比单纯要求“回答准确”有效得多。同时把引用片段随答案一起返回,人工抽查时一眼就能看出是召回问题还是生成问题。
第四,排查多轮对话的上下文污染。用户追问时带上了上一轮的错误答案,检索关键词被带偏,后续越答越歪。给检索单独做一轮问题改写,把追问还原成独立问题,再检索,效果通常好很多。
第五,建立分层兜底。置信度低时转人工或给标准话术,比硬着头皮编一个看似合理的答案要好,客服场景里一次编造的损失远大于一次转人工。
你们上线知识库问答时,答非所问最后定位到的是召回、切分还是生成约束?有没有哪次是换模型才解决的?
第一,先看召回对不对。把用户问题拿去跑检索,看返回的前五条里有没有正确答案的文档。如果召回里根本没有正确答案,生成再好也是编,调提示词没有用,得先修切分、 Embedding 或召回策略。
第二,查切分是不是把答案切碎了。一份操作手册被切成互不关联的碎片后,单条召回只有半句话,模型只能靠猜补全。按语义段落切分、给片段留上下文重叠,召回质量常常立刻改善。
第三,对齐生成与证据的约束。提示词里要求“只依据检索结果回答、没有依据就说不知道”,比单纯要求“回答准确”有效得多。同时把引用片段随答案一起返回,人工抽查时一眼就能看出是召回问题还是生成问题。
第四,排查多轮对话的上下文污染。用户追问时带上了上一轮的错误答案,检索关键词被带偏,后续越答越歪。给检索单独做一轮问题改写,把追问还原成独立问题,再检索,效果通常好很多。
第五,建立分层兜底。置信度低时转人工或给标准话术,比硬着头皮编一个看似合理的答案要好,客服场景里一次编造的损失远大于一次转人工。
你们上线知识库问答时,答非所问最后定位到的是召回、切分还是生成约束?有没有哪次是换模型才解决的?

