背景
在开发文件分析的ChatAgent时, 在多轮对话的场景中,用户上传一个文件进行分析,LLM根据这个文件分析结果来回答用户的问题. 那么在用户第2,3,4…次提问中,有时问题和文件毫无关系, 那么prompt的上下文始终包含文件的分析结果就变得不可取了, 因为输入的tokens太多,成本也变得太高.管理和过滤prompt上下文就非常有必要了
分析
1, 最终的结果效果,是根据用户每一次的提问,进行动态管理prompt上下文的结构和长度.
2, 要想根据用户每一次的提问,进行动态管理prompt上下文的结构和长度. 就需要对用户每一次的提问进行意图分析,判断是否要再次分析文件.
3, 如果进行意图分析后, 用户的问题和文件毫无关系, 则可以动态组合prompt上下文,使其不包含文件分析结果.
4, 如果进行意图分析后,用户的问题和初次分析文件的问题差不多,那直接用上次文件分析结果进行回答就好, 这里涉及到”问题《=》结果“相关性评分
5, 如果进行意图分析后,用户的问题和初次分析文件的问题不一样,但必须要根据文件内容来回答问题,这时要再次通过LLM分析文件.
流程图
