- 安装依赖
pip install -r requirements.txt
- 执行代码
cd app.py
ZHIPUAI_API_KEY="your zhipuAI key" python main_glm.py # 执行单个样例
ZHIPUAI_API_KEY="your zhipuAI key" python run.py # 执行完整问题
本方案提出了一种基于GLM多智能体协同的法律行业问答系统。该系统利用多轮对话机制,通过中枢模型(Planner)进行整体规划,并构建协同链路,逐步调用多个执行模型(Tooler),直至问题得到解决。最终,系统会根据相似的答题模板汇总并形成答案。
系统具备动态调整与优化的能力,能利用多种工具和API解决复杂问题,非常适合处理需要多步骤推理和跨领域知识集成的任务。
run_conversation_xietong 代表中枢模型(Planner)。该函数启动多智能体协同的对话过程,通过预设的提示和策略引导对话,并在过程中调用不同的工具和API获取所需信息。 run_v2.get_answer_2 代表执行模型(Tooler),负责执行具体步骤中的查询和数据处理任务,并返回查询结果。 run_conversation_until_complete 函数管理整个多轮对话流程,直到问题得到解决或达到最大对话轮数。 run_conversation_tiqu 函数用于从对话结果中提取结构化数据,并将其格式化为 JSON 格式。 run_conversation_psby 函数整合了上述功能,以提供完整的解决方案。
系统能够根据问题内容筛选出合适的工具和API进行数据查询和分析。中枢模型(Planner)确定每一步所需的工具,执行模型(Tooler)则执行相应工具的操作。为了确保执行过程不出错,模型被赋予了一些提示词,如:“如果返回的结果为空或有误,影响下一步骤的调用,请重新指示这一步骤的任务。” 这些提示词有助于建立容错纠错机制,确保智能体之间的有效协作。
中枢模型(Planner)本身就非常智能,大多数情况下能够根据现有的API规划解决方案,选择正确的工具和方法。对于特定类型的问题,例如排序或求和等,我们已编写了高效的专用函数。为了避免重复调用API,我们直接使用这些专用函数,从而提高准确性和效率。为了使模型更可控且高效地解决问题,我们在提示词中根据问题的不同,动态调整参考思路,帮助智能体快速准确地规划解题步骤。
1.在整体模板(/prompt/promp_gh.txt)中加入API使用的技巧,形成通用指导策略; 2.way_string 函数可以调用历史相似问题的解决思路,生成动态指导策略; 3.way_string_2 函数根据问题的不同方面生成动态指导策略。
为了保证答案的规范性,我们设计了答题模板,中枢模型(Planner)会选择与问题最匹配的模板作为参考。同时,我们增加了提示,如:“请注意,模板仅供参考,如果问题与模板不完全一致,可适当调整模板以更好地回答问题。” 这有助于提高模型对问题总结的泛化能力。
简洁智能:方案思路简单明了,从问题输入到答案生成,采用一套多轮对话机制,使得模型能够全面把控问题及其解决过程。 高效协同:多个智能体协同工作,实现高效问题解决。 灵活适应:动态策略增强确保系统的灵活性和适应性。 高度可扩展:除了回答问题外,通过适当调整即可实现与用户的交互对话。
在盲答过程中,我们引入了模型集成的思想来提升回答的质量。当初始模型无法给出有效答案时,我们会让模型再次尝试回答,并且直接调用另一个执行模型来获取答案。随后,我们将这两次的回答与初始答案进行比较,最终由大模型从中挑选出最佳答案作为最终结果。 对于诉状和整合报告这类特定类型的问题,我们采用了专门的智能体来进行解答。由于比赛时间紧迫,这些特定的智能体暂时未能完全融入到我们的多智能体协同方法中。如果后期能够将它们完善并融入到整个系统中,预计还能进一步提升整体的性能和准确性。