GLM法律大模型挑战赛后会无期解题方案 将API 调用封装为可执行代码,由模型生成调用取数及处理的pytho 代码,获取回答问题所需的必要数据,然后由模型根据问题及相关数据生成答案 具体步骤如下: 第一步 核心要素提取 第二步 涉及数据表范围分析 第三步 生成取数代码 为便于代码中记录数据提供封装好的数据收集器 思路二逻辑上更简单,及通过Fuctio call 能力实现aget ,将所有接口封装为fuctio和问题一起传入模型,由模型选择调用方法迭代执行,并生成回答 工程实现上更侧重于思路一,同时将思路二作为备选,在思路一无法回答时,切换到思路二 其中
思路一第一步 核心要素提取 对应代码 对应整体执行pipelie 声明如下,每个step 依次执行lawafterfiity
解题方案
思路一: 代码生成
通过大模型提取问题中的核心要素, 同时对问题中可能存在的输入错误进行修复,以及提取问题中隐藏的数据
将问题、核心要素、数据表结构 提供给模型由模型确认回答问题需要依赖哪些表的数据,并基于数据表的标准字段改写问句
根据核心要素字段及涉及的数据表 确定回答问题需要调用API范围(精简上下文,大部分情况问题都只需要一部分API),并提供API 调用说明
然后由模型生成pytho取数代码,为简化生成代码,基于取数API cliet 封装取数工程factory
对象(非大宽表形式),统一入参为 方法名+取数条件, 统一返回值为DataFrame对象 def query(self,fuctio: str, coditios: dict) -> DataFrame:
pass
collect
collect.record(ame:str,value)
collect.record_error("错误信息")
思路二: fuctio call aget
工程实现
CoreElemetAalyze
思路一第二步 涉及数据表范围分析 对应代码 TableRageAalyze
思路一第三、四、五步 生成取数代码、执行代码、生成代码整体封装为 对应代码 DyamicCodeAswerStep
思路二 fuctio call 封装为FuctioCallAswerStep pipelie = Pipelie(steps=[CoreElemetAalyze(self.fusio),TableRageAalyze(self.fusio), DyamicCodeAswerStep(self.fusio, FuctioCallAswerStep())])
代码说明:
.
├── README.md
├── README_A榜.md
├── aget
│ ├── chat_router.py
│ └── create_aget.py
├── apis
│ ├── __iit__.py
│ ├── aget_fuctio_defied.py 提供给fuctio call aget 调用的方法定义,依赖law_b_api_cliet
│ ├── law_a_api_cliet.py A 榜的API封装, 包括API调用,字段、方法重命名等逻辑
│ ├── law_a_api_cliet_test.py
│ ├── law_b_api_cliet.py B 榜的API封装, 包括API调用,字段、方法重命名等逻辑
│ └── law_b_api_cliet_test.py
├── commo 业务逻辑无关公共方法、框架
│ ├── log.py
│ ├── piplie.py 执行pipelie 框架定义
│ └── task.py 任务处理器封装
├── data 问题数据目录
├── debug 生成结果及中间调试输出目录
├── few-shot-prompt.yaml prompt配置
├── law_pipelie_a.py
├── law_pipelie_b.py ??? B榜单问题处理执行入口
├── llm
│ ├── aget.py
│ ├── llm.py 对模型原始调用的封装
│ ├── prompt.py 提供few-shot 提示词管理
│ ├── prompt_fusio.py LLM+提示词融合服务
│ ├── prompt_fusio_test.py
│ ├── prompt_test.py
│ ├── router_chai.py
│ └── tools.py
├── mai.py ??? 全问题处理执行入口
├── piplie
│ └── step
│ ├── dyamic_code_aswer_step.py ??? 生成代码组合答案 核心step 流程
│ └── law_steps.py ??? 其他step 定义
├── requiremets.txt
├── result
├── result_aalyze.py 生成结果处理函数
├── table_schema.jso
├── tools
└── utils
└── utils.py
其他补充
点击空白处退出提示
评论