第三届琶洲算法大赛-GLM法律行业大模型挑战赛道
参赛队伍名称: 古生物楼里的小白鼠
队长:飞翔的小白鼠号
项目方案: 基于本地部署的开源大模型GLM4[ glm-4-9b-chat-1m ]开发法律智能助手:
- 预处理:
- 对问题进行处理重字处理,提问时候会附带去除重字处理后的问题
- 整体方案:基于ReAct思路进行设计,利用思维链提高大模型串行调用接口的能力
答题分为三个环节: 方案设计 - 接口调用(行动环节) - 最终回答问题
在“方案设计”环节中:
- 要求大模型对问题进行实体识别,根据表格信息进行提取
- one-shot: 举例子说明一些容易误判的实体
- 提供接口参数,要求大模型思考如何从已有信息出发,串行调用接口得到问题所需要的信息
- 对于难题(需要串行多次/容易误入歧途):使用one-shot引入解决方案
- 该环节会输出大模型思考的方案设计,不进行接口调用;
在“接口调用”环节中:
- 上下文设计: 接口参数列表,原始问题(包含预处理后的问题),第一环节中输出的方案设计,关于上一轮接口调用的思考
- 每轮对话只调用一次接口,接口识别方案:
API CALL ###接口@@@您要调用的接口### ###参数>>>调用接口的参数(json格式)###
思考环节【debug_answer函数】:
- 接口调用成功时:为每个接口设计提示(提示可能的串行接口,方便大模型进行选择)
- 接口调用失败时:返回错误的信息,同样也会有可能出错的原因,引导大模型进行反思,修改调用的接口或者调用的参数
- 在反思时不会调用接口,用以引导模型在下一次行动中准确地调用接口;
在“回答问题”环节中:
- 明确输出的风格(指令要求)
- 要求大模型基于对话历史进行回答;
- 引导大模型根据语义进行数据分析工作;
- 在接口调用时也会提供求和,排序,筛选等工具接口。有时大模型会遗漏分析步骤,这里要求大模型通过语义的方式进行解决,避免无法回答问题;
- 代码库组成:
apis_official.py
: 实现接口调用函数,支持访问官方提供的数据接口error_prompts.py
: 实现各个接口的反馈(prompt),用以在思考环节中引导模型进行思考。law_agent.py
: 主函数,支持用户提问并生成回答prompts2.txt
: 各个接口的描述文件prompts.py
: 生成各个接口描述文件的代码utils.py
: 一些辅助处理的函数实现
评论