意图分析
知识库的意图分析一般放在 RAG 检索之前,主要作用是判断用户问题属于哪一类,然后决定后续走普通问答、知识库检索、工具调用等等 避免所有问题都无脑查向量库,可以减少无效检索,降低 token 成本,也能避免错误上下文干扰模型回答
- 意图分析作用:判断用户输入属于哪一类,然后决定是否检索知识库、如何检索、用什么工具、是否需要追问、是否需要权限校验
- 意图分析,通常情况下,使用轻量大模型即可
- 不需要使用主模型,只是用来分析用户的意图,使用小模型的轻量化模型即可
- 大模型回复,才需要使用主模型来保证回复的准确性
知识库为什么需要意图分析?
- RAG 知识库问答中,用户输入并不一定都适合直接检索
- 针对用户进行意图分析之后,重写用户的输入消息
- 提高知识库的召回率
实现方式
- 规则+大模型混合
- 规则判断简单场景
- LLM 判断复杂场景
预定义规则问题
- 规则层,放一些高频的,明确的,几乎不会变的意图,不要定义太多太死,否则维护成本会很高也容易出问题
- 如果完全靠规则,规则会越写越多,最后很难维护
- 只需要少量规则 + LLM大模型即可
- 规则只处理确定性强、风险高、成本敏感的场景
- 比如闲聊规则,如你好、hello
- 比如多轮追问规则,如继续、接着说 ,这些需要依赖上下文,不能直接拿原句去检索,是否需要检索,要看判断当前上下文