工业垂类数据库对话agent踩坑指南
。
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.系统架构

核心组件功能:
- 解析层:
- 自然语言解析器:将用户查询转换为结构化表示
- 术语识别器:识别行业术语和关键实体
- 语法分析器:分析查询的语法结构
- 匹配层:
- 查询模式匹配器:识别查询类型(时间查询、设备查询等)
- 规则引擎:应用预定义的匹配规则
- 维度提取器:提取时间、设备、指标等查询维度
- 生成层:
- SQL 模板引擎:根据查询类型选择合适的 SQL 模板
- 参数填充器:将提取的参数填充到 SQL 模板中
- 逻辑验证器:验证生成的 SQL 逻辑正确性
- 执行层:
- 安全校验器:检查 SQL 语句的安全性
- 查询优化器:优化 SQL 执行计划
- 执行监控器:监控查询执行过程和性能
6.当前模式
先对用户问题进行实体抽取,再用抽取的实体到数据库对应的实体库里面做匹配,再用匹配的实体和自然语言生成SQL,查询后返回大模型,生成最终回答。
个人感觉下一步优化的方向应该是放弃大模型直接生成完整 SQL 语句,改为预定义 SQL 模板 + 大模型抽取自然语言中的实体 / 关系来填充模板。
7.实体抽取规则
实体识别规则:
- 时间实体识别规则:
规则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#"、"烧结炉2")→ 提取设备ID
规则2:生产线名称(如"生产线A"、"产线1")→ 提取生产线ID
规则3:设备类型+编号(如"球磨机3#")→ 提取设备类型和ID
- 指标实体识别规则:
规则1:温度 → 映射到Temperature字段
规则2:压力 → 映射到Pressure字段
规则3:合格率 → 映射到QualifiedRate字段
规则4:产量 → 映射到OutputQuantity字段
语义理解算法:
- 查询意图分类:
分类规则:
- "查询"、"查看"、"获取" → 查询意图
- "统计"、"汇总"、"计算" → 聚合意图
- "分析"、"对比"、"趋势" → 分析意图
- "导出"、"生成报表" → 输出意图
- 查询维度解析:
维度解析规则:
- 时间维度:提取查询中的时间条件
- 设备维度:提取查询中的设备条件
- 指标维度:提取查询中的指标要求
- 筛选维度:提取查询中的筛选条件
- 语义消歧处理:
- 一词多义处理(如 "状态" 可能指设备状态或生产状态)
- 上下文语义理解
- 同义词替换(如 "合格率"、"良品率"、"优品率")
更多推荐

所有评论(0)