1.数据库质量

一个高质量的数据库是一个完善可用的agent的基础。下面是一些数据库建立建议,不完整:
 

  • 列名:使用单数形式和有意义的名称,如 MaterialID、ProductionDate、Temperature​
  • 避免使用保留字,采用统一的命名风格​

主键设计:每个表必须定义主键,优先使用自增整数类型(INT IDENTITY)或 GUID。对于需要与外部系统对接的表,可使用业务键作为候选键​。

实体完整性约束:​

  • 每个表都必须定义主键(PRIMARY KEY)​
  • 使用 UNIQUE 约束确保业务键的唯一性​
  • 所有非主键字段根据业务规则设置 NOT NULL 约束​

参照完整性约束:​

  • 外键必须引用主表的主键或唯一键​
  • 设置适当的级联操作(如 CASCADE DELETE)​
  • 使用 ON DELETE NO ACTION 避免级联删除风险​

用户定义完整性约束:​

  • 使用 CHECK 约束限制字段取值范围​
  • 为状态字段定义枚举值约束​
  • 创建默认约束提供合理的默认值

动态Schema同步 | 工业数据库表结构变更后,10分钟内同步到Schema库,触发增量语料更新

Schema 剪枝    | 仅向模型暴露当前问题相关的表/字段,避免Schema过载(工业表字段常超50个)

2.现有问题
 

主要问题是多表关联、时序查询、异常过滤

现在有多阶段生成策略,但是不知道生成的策略对应的SQL语句是否正确,是否健全,有没有表约束操作,如只读不写、强制过滤避免全表扫瞄、数据库访问权限。

SQL生成错误怎么纠错,会不会保存错误轨迹供以后学习

有没有版本标记,支不支持回滚

有没有具体的量化的指标,优化不能凭感觉优化

3.任务分解

4.优化指标

  • 用户反馈收集:在问答结果页增加「SQL 正确 / 错误」「结果符合预期」的反馈按钮,收集人工评价;
  • 错误日志分析:定期统计 SQL 错误类型(如字段名错误占比最高→补充字段注释语料);

5.系统架构

核心组件功能:​

  1. 解析层:​
  • 自然语言解析器:将用户查询转换为结构化表示​
  • 术语识别器:识别行业术语和关键实体​
  • 语法分析器:分析查询的语法结构​
  1. 匹配层:​
  • 查询模式匹配器:识别查询类型(时间查询、设备查询等)​
  • 规则引擎:应用预定义的匹配规则​
  • 维度提取器:提取时间、设备、指标等查询维度​
  1. 生成层:​
  • SQL 模板引擎:根据查询类型选择合适的 SQL 模板​
  • 参数填充器:将提取的参数填充到 SQL 模板中​
  • 逻辑验证器:验证生成的 SQL 逻辑正确性​
  1. 执行层:​
  • 安全校验器:检查 SQL 语句的安全性​
  • 查询优化器:优化 SQL 执行计划​
  • 执行监控器:监控查询执行过程和性能

6.当前模式

先对用户问题进行实体抽取,再用抽取的实体到数据库对应的实体库里面做匹配,再用匹配的实体和自然语言生成SQL,查询后返回大模型,生成最终回答。
个人感觉下一步优化的方向应该是放弃大模型直接生成完整 SQL 语句,改为预定义 SQL 模板 + 大模型抽取自然语言中的实体 / 关系来填充模板。
 

7.实体抽取规则
 

实体识别规则:​

  1. 时间实体识别规则:​

规则1:YYYY年MM月DD日 → 转换为datetime类型​

规则2:YYYY-MM-DD → 转换为datetime类型​

规则3:最近N天 → 转换为DATEADD(DAY, -N, GETDATE())​

规则4:上周 → 转换为DATEADD(WEEK, -1, DATEADD(DAY, 1-DATEPART(WEEKDAY, GETDATE()), GETDATE()))​

  1. 设备实体识别规则:​

规则1:设备编号(如"设备1#"、"烧结炉2")→ 提取设备ID​

规则2:生产线名称(如"生产线A"、"产线1")→ 提取生产线ID​

规则3:设备类型+编号(如"球磨机3#")→ 提取设备类型和ID​

  1. 指标实体识别规则:​

规则1:温度 → 映射到Temperature字段​

规则2:压力 → 映射到Pressure字段​

规则3:合格率 → 映射到QualifiedRate字段​

规则4:产量 → 映射到OutputQuantity字段​

语义理解算法:​

  1. 查询意图分类:​

分类规则:​

- "查询"、"查看"、"获取" → 查询意图​

- "统计"、"汇总"、"计算" → 聚合意图​

- "分析"、"对比"、"趋势" → 分析意图​

- "导出"、"生成报表" → 输出意图​

  1. 查询维度解析:​

维度解析规则:​

- 时间维度:提取查询中的时间条件​

- 设备维度:提取查询中的设备条件​

- 指标维度:提取查询中的指标要求​

- 筛选维度:提取查询中的筛选条件​

  1. 语义消歧处理:​
  • 一词多义处理(如 "状态" 可能指设备状态或生产状态)​
  • 上下文语义理解​
  • 同义词替换(如 "合格率"、"良品率"、"优品率")
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐