引言:智能问数解决什么问题

智能问数是沈管家AI数字员工的核心功能模块之一。它解决的是企业数据查询的“最后一公里”问题:业务人员不懂SQL,IT排期太慢,数据藏在多个系统的数据库里取不出来。智能问数让业务人员用日常口语直接查询数据——说一句“上月华东区销售额最高的五个客户”,系统自动转化为SQL,跨库拉取数据,生成可视化图表。

本教程将完整演示智能问数的配置流程:从业务场景定义、数据库连接、业务术语库配置,到测试查询和异常排查。完成配置后,业务人员即可用自然语言查询企业数据,无需等待IT排期。

下面是智能问数从配置到使用的整体流程:

业务场景定义

数据库连接配置

业务术语库配置

测试查询

异常处理与优化

前置条件

开始配置前,请确认以下条件:

  1. 已完成沈管家账号注册和企业认证,或已完成私有化部署。
  2. 已登录管理控制台,具备“数据源管理”和“术语库管理”的配置权限。
  3. 已准备至少一个可连接的测试数据库(MySQL、Oracle 或 InfluxDB),并已获取连接信息(主机地址、端口、数据库名、账号、密码)。
  4. 已了解目标数据库的基本表结构和字段含义——这步需要DBA或熟悉业务的IT人员配合。

一、业务场景定义:先想清楚要查什么

配置智能问数的第一步不是技术操作,而是明确业务场景。智能问数的效果高度依赖场景定义的清晰程度。

1.1 明确查询需求

先回答三个问题:谁在查(车间主任、销售主管、财务专员)、查什么数据(产量、销售额、库存、设备状态)、查询频率多高(每天、每周、临时)。

以制造业典型场景为例:

  • 查询人:车间主任
  • 查询内容:3号产线的OEE、产量、设备故障率
  • 数据来源:MES(产量)、SCADA(设备状态)、ERP(计划生产时间)
  • 查询频率:每天早会前查询

1.2 确定涉及的数据表和字段

与DBA配合,梳理出每个查询场景涉及的数据表和字段。以OEE查询为例:

数据来源 表名 关键字段 用途
MES production_records line_id, output_qty, record_date 产量数据
SCADA equipment_status device_id, run_time, downtime, status_date 设备运行时长与停机时长
ERP work_centers center_id, line_name, planned_time 计划生产时间

梳理完成后,OEE计算公式为:可用性 × 性能 × 质量,其中可用性 = 运行时长 / 计划生产时间,性能 = 实际产量 / 理论产量,质量 = 合格品数 / 总产量。

1.3 记录典型查询语句

整理3-5条典型的自然语言查询语句,作为后续测试的基准。例如:

  • “3号产线昨天的OEE是多少?”
  • “上月华东区销售额最高的五个客户?”
  • “当前库存低于安全线的原材料有哪些?”
  • “最近一周哪条产线的故障停机时间最长?”

这些语句将用于验证术语库映射和查询准确率。

二、数据库连接配置:接入MySQL/Oracle/InfluxDB

2.1 进入数据源管理

在管理控制台左侧导航栏选择“数据源管理”,点击“添加数据源”。

2.2 MySQL接入

选择数据库类型“MySQL”,填写连接信息:

配置项 说明 示例
数据源名称 自定义,建议用系统名称 “MES生产数据库”
主机地址 数据库服务器内网IP或域名 192.168.1.100
端口 MySQL默认3306 3306
数据库名 目标数据库名称 mes_production
用户名 数据库账号 butler_readonly
密码 数据库密码 (输入后加密存储)

权限建议:为智能问数单独创建一个只读账号,避免AI的查询操作误写数据。如果业务场景需要写操作(如更新工单状态),需单独授权对应表的写权限。

2.3 Oracle接入

选择数据库类型“Oracle”,填写连接信息。相比MySQL,Oracle接入需要额外填写:

配置项 说明 示例
连接方式 选择SID或Service Name Service Name
SID/Service Name Oracle实例标识 ORCLPDB1
Schema 目标Schema名称 ERP_USER
字符集 通常保持默认,特殊场景需调整 UTF-8

Oracle的SQL方言与MySQL不同——分页用ROWNUMFETCH FIRST而非LIMIT,字段名通常大写。沈管家会自动适配方言,但术语库配置时需注意字段名大小写与Oracle实际存储一致。

2.4 InfluxDB接入

时序数据库InfluxDB的接入与关系型数据库差异较大:

配置项 说明 示例
连接方式 选择InfluxDB版本(1.x或2.x) 2.x
组织 InfluxDB 2.x的Organization factory_ops
Bucket 数据存储桶 scada_metrics
Token API访问令牌 (由InfluxDB管理端生成)

InfluxDB使用类SQL语法(InfluxQL/Flux),沈管家在子查询分发时会自动适配方言。在术语库中配置字段映射时,需注意InfluxDB的field和tag区别——tag用于筛选条件,field用于计算值。

2.5 测试连接与Schema爬取

填写完成后点击“测试连接”。系统会尝试连接数据库,验证网络可达、认证通过。连接成功后自动进入“Schema爬取”阶段——系统读取目标数据库的元数据(表名、字段名、字段类型、主外键关系),构建Schema知识图谱。此过程对大型数据库可能需要数分钟。

爬取完成后,可在“Schema预览”中查看系统识别到的表和字段清单,确认爬取结果是否完整和准确。

三种数据库的接入流程对比如下:

MySQL

Oracle

InfluxDB

连接成功

进入数据源管理

选择数据库类型

填写主机、端口、库名、账号

填写连接方式、SID/Service Name、Schema

选择版本、组织、Bucket、Token

测试连接

Schema爬取

Schema预览确认

三、业务术语库配置:让AI听懂车间口语

业务术语库是智能问数配置中最关键、也是最需要花精力的环节。它决定了AI能否将业务人员的口语准确映射到数据库字段。

3.1 进入术语库管理

在管理控制台中选择“术语库管理”,点击“新建术语映射”。

3.2 配置字段级映射

将业务口语词映射到具体的表和字段。以制造业场景为例:

示例一:将“效率”映射到OEE字段

配置项 内容
业务术语 效率
映射类型 字段映射
目标数据源 MES生产数据库
目标表 production_records
目标字段 oee_percentage
同义词 OEE、设备综合效率、稼动率

示例二:将“开动率”映射到设备运行率字段

配置项 内容
业务术语 开动率
目标数据源 SCADA数据库
目标字段 machine_utilization_rate
同义词 设备开动率、运行率、运转率

示例三:将“产线”映射到表关联字段

配置项 内容
业务术语 产线
目标字段 line_name
同义词 生产线、制造单元、机台、工位

3.3 配置同义词映射

同义词映射让AI理解“3号线”“三号线”“3号产线”“LINE-3”指的是同一对象。在术语库中为每个业务实体配置同义词组。

以“华东区”为例,可能出现在不同表中的值有:“华东”“East China”“EC”“华东大区”。需要在同义词配置中将这些变体映射到统一的语义标签。

3.4 配置聚合规则

部分查询需要聚合计算。例如“销售额”可能指向订单明细表中金额字段的求和,而非单条记录。在术语库中需配置:

配置项 内容
业务术语 销售额
目标字段 order_amount
聚合方式 SUM
分组维度 按客户、按区域、按时间

3.5 术语库维护建议

术语库配置不是一次性工作。建议在企业内部建立术语库维护机制:新业务上线、系统表结构变更、员工新口语习惯出现时,及时更新映射关系。术语库的质量直接决定智能问数的准确率——术语库映射越完善,AI越能准确理解业务人员的口语。

术语库的配置层次如下:

业务口语

字段级映射

同义词映射

聚合规则

数据库表字段

SQL生成

四、测试查询:从自然语言到SQL到图表

4.1 进入智能问数测试

在管理控制台选择“智能问数”,进入测试界面。输入准备好的测试语句。

4.2 测试单表查询

先测试简单的单表查询,验证数据库连接和字段映射是否正确:

输入:“3号产线昨天的产量是多少?”

系统执行链路:

  1. 口语消歧:“昨天”→“2026-08-17”,“产量”→output_qty字段
  2. SQL生成:SELECT output_qty FROM production_records WHERE line_name = '3号线' AND record_date = '2026-08-17'
  3. 执行查询,返回结果
  4. 生成图表

4.3 测试跨库查询

再测试涉及多套数据库的复杂查询:

输入:“3号产线昨天的OEE是多少?”

系统执行链路:

  1. 从MES查询产量数据
  2. 从SCADA查询运行时长和停机时长
  3. 从ERP查询计划生产时间
  4. 按OEE公式关联计算
  5. 返回可视化结果

在结果页面可查看生成的SQL语句。建议与DBA一起检查SQL的正确性——表关联路径是否准确、字段映射是否正确、方言适配是否合适。

4.4 测试归因分析

测试数据异常时的归因分析能力:

输入:“最近一周3号产线的OEE趋势,为什么周二下降了?”

系统返回OEE趋势图,并自动下钻分析——周二OEE下降的主因是设备故障增多(可用性下降),具体是哪台设备、什么类型的故障。检查归因分析是否准确、解释是否合理。

智能问数的执行链路如下:

自然语言输入

口语消歧

SQL生成

跨库查询分发

MES数据库

SCADA数据库

ERP数据库

结果聚合

可视化图表

五、异常处理:查询失败时的排查方法

5.1 查询结果为空

可能原因:术语映射错误、筛选条件过于严格、数据源中确实无匹配数据。

排查步骤

  1. 检查系统生成的SQL,确认WHERE条件是否正确。
  2. 在术语库中检查映射关系,确认“昨天”映射的日期是否正确、“3号线”映射的字段值是否与实际数据一致。
  3. 直接到目标数据库中手动执行SQL,验证数据是否存在。

5.2 SQL生成报错

可能原因:字段不存在、表名拼写错误、跨库关联路径缺失。

排查步骤

  1. 检查Schema爬取是否完整——目标表是否出现在Schema预览中。
  2. 检查术语库映射的目标表名和字段名是否与实际数据库一致。
  3. 检查跨库关联关系是否已配置——如果术语库中没有定义MES和SCADA的关联字段,跨库查询会失败。

5.3 查询超时

可能原因:查询数据量过大、跨库聚合在引擎层执行负载过高、目标数据库性能瓶颈。

排查步骤

  1. 检查生成的SQL是否包含分页限制(LIMIT/ROWNUM)。如果查询语句是全量扫描,需在术语库或查询参数中增加分页保护。
  2. 检查跨库查询的聚合逻辑,将聚合操作尽量下推到各数据源本地执行。
  3. 检查目标数据库自身的响应性能,确认是否存在慢查询或锁表。

5.4 结果不准确

可能原因:同义词映射冲突、聚合规则配置错误、跨库关联字段配置错误。

排查步骤

  1. 对比系统生成的SQL与DBA手工编写的SQL,找出差异点。
  2. 检查同义词映射是否存在冲突——同一术语被映射到多个字段。
  3. 检查聚合规则是否正确——是否遗漏了分组维度、使用了错误的聚合方式。

查询失败时的排查流程如下:

查询失败

结果为空?

检查SQL条件与术语映射

SQL报错?

检查Schema与字段映射

查询超时?

增加分页、下推聚合

结果不准确?

对比手工SQL、检查同义词与聚合规则

定位并修复

总结

智能问数配置的完整流程可以概括为五步:定义场景、连接数据库、配置术语库、测试查询、持续优化。其中术语库配置是最关键也最需要持续投入的环节——它不是一次性配置完成后就一劳永逸的,而是随着业务发展和员工口语习惯变化需要不断完善的工程。

对于首次配置的企业,建议从一个简单场景开始,跑通全流程后再扩展到更多场景。一个术语映射清晰、数据库连接稳定的单场景智能问数,比十个配置粗糙的多场景查询更有实际价值。

(本文为沈管家AI数字员工产品配置教程,操作步骤基于产品通用流程整理,具体界面和配置项以实际版本为准。)

Logo

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

更多推荐