dataset_nl.query 是面向普通用户的智能查询工具,支持用自然语言描述数据需求。
dataset_nl.query| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
query |
string | ✅ | 自然语言查询内容 |
session_id |
string | ❌ | 会话 ID,用于上下文关联 |
cursor |
string | ❌ | 分页游标 |
format |
string | ❌ | 输出格式:table/json/summary |
hints |
object | ❌ | 查询优化提示 |
stream |
boolean | ❌ | 启用流式响应(默认 true) |
{
"hints": {
"prefer_model": "FactSalesQueryModel",
"prefer_fields": ["customerName", "totalAmount"],
"time_range": "last_7_days"
}
}
查询客户信息
找出北京地区的企业客户
显示最近10条订单
按团队统计订单数量
计算各地区销售总额
统计每个品类的商品数
近一周的运单趋势
最近30天的销售变化
本月每日订单量
→ 自动生成折线图 (LINE)
对比各网点的业绩
不同客户类型的订单量
各部门销售额对比
→ 自动生成柱状图 (BAR)
各地区销售占比
客户类型分布
支付方式占比
→ 自动生成饼图 (PIE)
{
"query": "查询最近一周的销售数据"
}
{
"query": "再按客户类型细分",
"session_id": "session_123"
}
{
"query": "查询客户列表",
"cursor": "eyJvZmZzZXQiOjEwMH0="
}
{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/call",
"params": {
"name": "dataset_nl.query",
"arguments": {
"query": "按商品分类统计本月销售额",
"format": "table"
}
}
}
{
"type": "result",
"items": [
{"category": "电子产品", "totalSales": 125000},
{"category": "服装", "totalSales": 89000}
],
"total": 5,
"summary": "查询到5个品类的销售数据,电子产品销售额最高",
"exports": {
"charts": [
{
"url": "https://chart.example.com/sales.png",
"type": "BAR",
"title": "本月各品类销售额对比",
"format": "PNG",
"width": 800,
"height": 600,
"expiresAt": "2025-01-08T12:00:00Z"
}
]
},
"hasNext": false,
"nextCursor": null
}
| 字段 | 说明 |
|---|---|
type |
响应类型:result / error / info |
items |
数据记录数组 |
total |
总记录数 |
summary |
结果摘要 |
exports.charts |
生成的图表数组 |
hasNext |
是否有下一页 |
nextCursor |
下一页游标 |
系统根据查询类型自动选择图表:
| 查询类型 | 图表类型 |
|---|---|
| 趋势分析 | 折线图 (LINE) |
| 分类统计 | 柱状图 (BAR) |
| 占比分析 | 饼图 (PIE) |
| 相关性分析 | 散点图 (SCATTER) |
图表标题由 AI 自动生成,具有业务含义:
系统可以自动分解复杂问题:
示例: "找出本月发货量前10的客户,分析他们的全年发货量"
使用 session_id 实现连续对话:
// 第一次查询
{"query": "查询销售数据", "session_id": "abc123"}
// 追问(系统记住了上下文)
{"query": "按地区细分", "session_id": "abc123"}
// 继续追问
{"query": "只看北京的", "session_id": "abc123"}
| 错误码 | 说明 | 解决方案 |
|---|---|---|
| QUERY_PARSE_ERROR | 无法理解查询 | 使用更明确的描述 |
| MODEL_NOT_FOUND | 无法识别语义层模型 | 在 hints 中指定 prefer_model |
| FIELD_NOT_FOUND | 字段不存在 | 检查字段名或用更通用的描述 |
| QUERY_TIMEOUT | 查询超时 | 缩小查询范围 |
✅ 好的查询:
查询北京地区企业客户的订单信息
近一周各网点的开单趋势
按客户类型统计订单数量
❌ 不好的查询:
给我看看数据
查一下
统计一下
session_idsession_idsession_id 减少模型识别开销stream: truecursor 分页hints 提高准确率