跳到主要内容

如何优化 AskTable 的准确率

提高 AskTable 的准确率,可以从数据治理、提供高质量训练数据,以及设定个性化偏好三个方面入手。

1. 优化数据结构,提升数据质量

要让 AskTable 更准确地理解和查询数据,首先要优化数据库的表结构和字段定义。

  • 精简数据表:仅保留必要的表,减少冗余数据。
支持选择表
  • 筛选关键字段:隐藏不必要的字段,确保查询更聚焦。
字段可见性
  • 开启 AI 搜索:对于人名、地名、公司名、产品名等字段,建议默认启用 AI 搜索,以提高查询准确率。
字段 AI 搜索
  • 定义枚举值:如性别、状态等字段,应提供清晰完整的定义。例如,性别字段 sex=1 表示“男”,sex=2 表示“女”。
字段枚举值
  • 标注数据单位:明确字段的单位,如金额字段应注明单位是“分”还是“元”。
字段单位
  • 描述外键关系:清晰说明外键字段与哪张表的主键关联,避免误解。

    示例:这里 order.x_id (对应 products.id) ,则需要对 x_id 字段做特别说明。但如果字段名字清晰,比如 order.product_id (对应 products.id) 则一般可跳过该步骤,AI 会自动匹配。

字段外键
  • 使用场景说明:在表的定义中,描述该表适用于哪些业务场景,帮助 AI 理解数据的应用方式。
  • 控制表的数量
    • 单个机器人访问的表不超过 100 个。
    • 关联查询(JOIN)的表不超过 5 个,以减少查询复杂度。
  • 控制字段的数量
    • 单表字段最好不要超过 100 个,避免上下文过长,AI 推理失败。

2. 提供高质量的训练数据,提升 AI 理解力

AskTable 可以通过训练数据不断优化查询结果,学习如何更准确地回答用户问题。

  • 标记正确答案:对于符合预期的查询结果,可以使用“点赞”功能,让 AskTable 记住最佳答案。
用户反馈
  • 手动添加训练数据:可以提前录入一些典型问题及其对应的 SQL 语句,帮助 AI 识别复杂查询逻辑。
训练数据
  • 固化复杂查询逻辑:对于涉及多表关联或计算的复杂查询,可以通过训练数据固化最佳实践,确保 AI 生成高质量的 SQL。

3. 设定个性化偏好,让 AI 更贴合业务需求

通过设定查询偏好,可以让 AskTable 在回答问题时更符合业务习惯。

  • 调整数据展示方式
    • 例如,手机号可以默认隐藏中间 4 位 (138****5678)。
  • 定制查询返回字段
    • 例如,查询用户信息时,可设定默认返回 ID手机号,而非全部字段。
  • 设定默认查询时间范围
    • 例如,若未指定时间范围,默认查询最近 30 天的数据。
查询偏好

通过这些优化措施,AskTable 可以更准确地理解用户的意图,提高查询结果的精准度,从而更好地支持业务决策。