LawGLM-个人参赛-1840312016226484

我要开发同款
匿名用户2024年07月31日
11阅读
所属分类ai
开源地址https://modelscope.cn/models/Boluo936/LawGLM-1840312016226484
授权协议Apache License 2.0

作品详情

GLM-LAW比赛代码框架说明

核心思想

将用户输入的问题,拆分为多个最小子问题,将每一个最小子问题转换为一个sql语句并进行查询,最后将所有的查询结果进行合并,得到最终的结果。

主流程: workflow.py

for q_json in tqdm(q_json_list):
    APIRecord.clear_api_record()                            # 清空本地API调用记录缓存
    question = q_json['question']
    qs_fixed = QuestionFixed(question)
    qs_fixed.fix_question()                                        # question预处理:去除重复字等问题

    qs = Question(qs_fixed.fixed_question)
    qs.intent_classification()                                # 意图分类

    if qs.intent != '查询':
        continue

    qs.choose_tables()                                                # 与大模型交互,选取可能涉及到的数据库表
    qs.divide_question()                                            # 与大模型交互,将问题划分为多个子问题
    qs.delete_all_db_records()                                # 清空本地数据库缓存
    qs.generate_sub_sqls()                                        # 不同子问题,分别生成结果
    qs.generate_last_result()                                    # 合并所有子问题及结果,针对初始问题,总结生成答案

核心流程SubQuestion.py:生成当前子问题结果: generatesubsqls

# 初始化子问题对象
sub_question = SubQuestion(curr_sub_question, self.tables, pre_sub_question_list, pre_sub_result_list)    
sub_question.parent = self
sub_question.generate_sub_sql()        # 生成子问题的sql查询语句
sub_question.get_api_data()                # 将对应子问题的sql查询语句做一个无损转换,得到对应的api请求列表,并调用对应的api获取数据存储在本地数据库
sub_question.transform_sub_sql()    # 针对一些特殊情况,转换修正sql
sub_question.execute_sub_sql()        # 执行子问题的sql查询,得到当前子问题的查询结果
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论