知识库建立好了,检索测试没有问题,但是对话页面总是无法先知识库检索内容再生成回答 #825
Replies: 2 comments 1 reply
|
我又做了些实验,好像是接入的本地部署模型强的才可以调用。GPT-OSS120B就可以调动知识库检索。Qwen2.5:7b和Qwen3.6:35b都不行。 |
|
你遇到的问题不是 bug,是小模型 tool calling 能力不足。你的实验结果已经说明了一切。 为什么小模型不调用知识库知识库检索本质上是一次 function calling / tool use——系统需要在生成回答之前,先调用检索工具获取上下文。这个能力在不同模型之间差异巨大:
小模型(7B-35B)的指令遵循能力有限。当系统提示词同时包含"检索知识库"和"回答问题"两个任务时,小模型倾向于跳过检索步骤,直接用自己的参数知识回答——即使参数知识里没有相关信息。 这不是 Yuxi 的问题,是 LLM tool calling 能力的硬性门槛。所有依赖 agent 自主决策调用工具的系统都有这个限制。 解决方案方案 1:换用有原生 function calling 支持的模型(推荐)Qwen 系列的 Instruct 版本(如 ollama list优先使用带有 ollama pull qwen2.5:14b-instruct # 14B 以上 tool calling 明显改善
ollama pull qwen3:30b # Qwen3 系列 tool calling 比 Qwen2.5 强方案 2:用更大的模型你已验证 GPT-OSS 120B 有效。在 30B-70B 区间找一个平衡点:
方案 3:强化系统提示词给当前的小模型更明确的指令,把 tool calling 变成"强制"而不是"建议": 注意:这样写对小模型效果有限,根本原因还是模型能力不够。 方案 4:在 Yuxi 里强制检索流程如果 Yuxi 支持工作流/流程编排,不要依赖模型的自主决策——改成确定性的流程:用户输入 → 强制检索知识库 → 将检索结果注入 prompt → 生成回答。这样即使小模型不"主动"调用工具,检索也会在它回答之前完成。 结论你的实验是对的——确实存在"门槛"。这个门槛不是参数量的绝对值,而是模型的 tool calling / 指令遵循 能力。简单粗暴的解决方案:换 30B 以上的 instruct 模型。14B 以下不要指望它能稳定调用工具。 |
Uh oh!
There was an error while loading. Please reload this page.
embedding和抽取都用的本地ollama部署,知识图谱点状图能看到,能修改检索参数,检索测试也完美回答。
就是在新建对话中,大模型总是无法先知识库检索内容再生成回答。确认智能体配置勾选了知识库,且能看到内置使用知识库的skill。
系统提示词也用了 请根据以下参考内容回答用户问题:
{context}
望能帮忙解答,谢谢。
All reactions