技术博客
易源合一实测能识别哪些意图:8 类 intent 编码逐一验证

易源合一实测能识别哪些意图:8 类 intent 编码逐一验证

作者: 万维易源
2026-09-15
易源合一意图识别intent清单置信度实测数据
# 易源合一实测能识别哪些意图:8 类 intent 编码逐一验证 > 接入点:3054-2 意图分析 | 请求方式:POST(文档同时标注支持 GET) | 返回格式:JSON | 计费:5.5 厘/次,失败不扣费 | 最后实测核对:2026-09-15 ## 核心要点 - 官方文档只给了一个 `weather` 的示例,没给完整意图清单。这篇用 15 条真实中文语句跑了 3054-2,把识别出来的 `intent` 编码整理成表。 - 实测覆盖到 8 类:`weather`、`query_express`、`oral_correct`、`traffic_control`、`query_news`、`joke`、`ocr_idcard`、`ocr_handwrite`。 - **这是实测样本,不是官方全量清单。** 上生产前请用你自己的语料跑一遍,别把我这张表当契约。 ## 为什么先跑意图分析,而不是直接调智能对话 假设你在做客服机器人。用户发来一句话,你得先知道这句话归不归你能处理的范围。归,就走业务流程;不归,就走「没听懂」兜底。 3054-2 干的就是这一步,它只判意图、不执行,返回 `intent` 编码和 `confidence` 置信度,你拿这两个值就能做分流。它和 3054-1 的搭配方式单独写了篇 → [易源合一 3054-2 与 3054-1 的搭配方式:先判意图,再决定要不要发起对话](https://www.showapi.com/guides/united-api-intent-precheck-3054)。 ## 怎么探:一次请求一条语料 ```bash curl -X POST "https://route.showapi.com/3054-2?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ --data-urlencode "text=帮我查快递 7788990011223" ``` ```python import requests APP_KEY = "YOUR_APPKEY" URL = f"https://route.showapi.com/3054-2?appKey={APP_KEY}" def detect(text, timeout=20): r = requests.post(URL, data={"text": text}, timeout=timeout) r.raise_for_status() body = r.json().get("showapi_res_body", {}) if body.get("ret_code") != 0: return {"ok": False, "reason": body.get("ret_msg")} return {"ok": True, "intent": body.get("intent"), "name": body.get("name"), "args": body.get("args"), "confidence": body.get("confidence")} for q in ["今天有什么新闻", "讲个笑话", "北京限行尾号是多少"]: print(q, "->", detect(q)) ``` ```javascript const APP_KEY = "YOUR_APPKEY"; const detect = async (text) => { const res = await fetch(`https://route.showapi.com/3054-2?appKey=${APP_KEY}`, { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ text }), }); const body = (await res.json()).showapi_res_body || {}; if (body.ret_code !== 0) return { ok: false, reason: body.ret_msg }; return { ok: true, intent: body.intent, args: body.args, confidence: body.confidence }; }; ``` ## 实测结果表(2026-09-15,单次调用) | 输入语句 | `intent` | `name`(中文) | `args` | `confidence` | |---------|----------|--------------|--------|-------------| | 昆明今天天气怎么样 | `weather` | 天气 | `{area: 昆明, date: 2026-09-15}` | 100 | | 上海明天冷不冷 | `weather` | 天气 | `{area: 上海, date: 2026-09-16}` | 95 | | 帮我查快递 7788990011223 | `query_express` | 快递 | `{express_nu: 7788990011223}` | 98 | | 顺丰快递单号 SF1234567890 到哪了 | `query_express` | 快递 | `{express_nu: SF1234567890, phone_4: ""}` | 98 | | 北京限行尾号是多少 | `traffic_control` | 车牌限行 | `{area: 北京}` | 98 | | 今天有什么新闻 | `query_news` | 新闻查询 | `{prime_word: ""}` | 95 | | 讲个笑话 | `joke` | 笑话 | `{}` | 99 | | 12乘以8等于多少 | `oral_correct` | 口算批改 | `{}` | 92 | | 1+1=? | `oral_correct` | 口算批改 | `{}` | 95 | | 计算 3的平方加4的平方 | `oral_correct` | 口算批改 | `{}` | 42 | | 身份证 530102199001011234 的归属地 | `ocr_idcard` | OCR身份证识别 | `{}` | 95 | | 这个图片里是什么 https://test.xxxxx.com/abc.jpg | `ocr_handwrite` | 手写体识别 | `{}` | 95 | | 帮我把这句话翻译成英文 | 无 | 无 | 无 | 无(`ret_code: -1`) | 几个值得注意的地方: - **`args` 是「能抽出来才给」,不是固定三个字段。** 天气给 `area` 和 `date`,快递给 `express_nu`,问新闻时 `prime_word` 是空串,笑话和 OCR 类是空对象。你的代码要按 key 是否存在做判断。 - **`args.date` 实测返回标准化日期。** `今天` 变成 `2026-09-15`,`明天` 变成 `2026-09-16`。官方文档的返回示例里写的是 `"今天,后天"` 这种相对词,和实测不一致,按实测的标准化格式解析。 - **`confidence` 实测是 0~100 整数。** 文档示例为 `0.99572587013245`,实测拿到的都是整数(100/98/95/92/42)。写成 `if confidence > 0.8` 这种判断永远不会命中,用 `> 80`。 - **翻译类请求没有对应的 `intent`。** 实测两次翻译请求都返回 `ret_code: -1`,没有 `intent` 字段。 ## 别把这张表当契约:两条实测的稳定性事实 **高信息量语句稳定。** 同一时段重复调用 6 次:「北京限行尾号是多少」6/6 命中 `traffic_control`,「讲个笑话」6/6 命中 `joke`,「帮我查找一下昆明今天的天气」6/6 命中 `weather`。意图编码没变过。 **低信息量语句不稳定。** 对「你好」重复调用 6 次,实测拿到 6 组不同结果:`joke`(65)、`draw`(55)、`text_summarize`(65)、`joke`(52)、`text_summarize`(52)、`joke`(50)。同一句话,意图和置信度都在变。 **置信度本身也会波动。** 同一句「北京限行尾号是多少」连续 6 次,`confidence` 出现 90、95、98 三种取值,`intent` 始终是 `traffic_control`。如果你打算把置信度写进日志做监控,把阈值设成区间,别设成等值。 这两条合起来给出一个实用结论:**意图分层用,别当硬契约。** 业务关键路径上,对你自己的核心句式做一轮回归测试;对寒暄、模糊表达的输入,直接走兜底分支更省事。 ## FAQ **Q1:`intent` 编码一共支持多少种?** 官方文档没有公布枚举清单,只给了 `weather` 一个示例。本文列出的 8 类来自 2026-09-15 的实测样本,覆盖不到全量。想知道你自己的场景支持不支持,只能拿真实语料去跑 3054-2。 **Q2:3054-2 和 3054-1 的 `intent` 字段格式一样吗?** 不一样。3054-2 的 `intent` 是字符串(如 `"weather"`),`name` 和 `confidence` 是同级字段;3054-1 的 `intent` 是对象,形如 `{"name": "weather", "args": {...}}`,且不返回 `confidence`。 **Q3:3054-2 支持 GET 请求吗?** 支持。官方文档的请求方式标注为 POST/GET,实测 GET 也返回正常结果。3054-1 和 3054-3 的文档只标了 POST,虽然实测 GET 也能返回 200,但按文档用 POST 更稳妥。 **Q4:置信度多少算可用?** 官方没有给阈值。实测的分布是:明确语句 92~100,短句寒暄 42~65 且意图会跳变。如果你的场景要求准确,把「意图正确」定义在 90 以上更接近实测的安全区;低于这个区间建议走二次追问。具体阈值设定见 [易源合一只返回 55 分置信度时:阈值设定、兜底路径与二次追问](https://www.showapi.com/guides/united-api-low-confidence-3054)。 **Q5:识别失败会扣费吗?** 不会。实测 `ret_code: -1` 时 `showapi_fee_num` 为 0。 ## 下一步阅读 - [易源合一 3054-2 与 3054-1 的搭配方式:先判意图,再决定要不要发起对话](https://www.showapi.com/guides/united-api-intent-precheck-3054) - [易源合一只返回 55 分置信度时:阈值设定、兜底路径与二次追问](https://www.showapi.com/guides/united-api-low-confidence-3054) - [易源合一返回三层结构:reply_msg / intent / result 逐层拆解](https://www.showapi.com/guides/united-api-response-structure-3054) - **本系列共 12 篇**:查看[易源合一指南总目录](https://www.showapi.com/guides/united-api-guides-3054)