易源合一、直连单接口、自建意图识别:三条路线怎么选
# 易源合一、直连单接口、自建意图识别:三条路线怎么选
> 接入点:3054-1 / 3054-2 / 3054-3 | 计费:5.5 厘/次,失败不扣费 | 最后实测核对:2026-09-15
## 核心要点
这篇不给结论,给判据。三条路线各有站得住的适用场景,我把自己实测到的边界都写在下面,包括直接说「这个场景别用易源合一」的部分。
- 意图数量少且三年不变,直连单接口更省事。
- 意图数量多、还会变、要快速上线,易源合一的性价比来自省下的适配工时。
- 意图高度垂直、有硬性准确率指标、手上有标注语料,自建更可控。
## 三条路线是什么
**路线 A:易源合一。** 一次调用把自然语言转成意图 + 结构化参数 + 已整理的答复。参数量小,接入成本低。
**路线 B:直连单接口。** 天气接天气接口,快递接快递接口,新闻接新闻接口,每个都自己写参数构造、字段映射、错误码转换。用户那句话怎么变成参数,你自己处理。
**路线 C:自建意图识别。** 用大模型做工具调用(function calling),或者训一个文本分类模型,把意图判定放在自己的服务里,再路由到各业务接口。
## 关键维度逐项对比
| 维度 | 路线 A 易源合一 | 路线 B 直连单接口 | 路线 C 自建意图识别 |
|------|---------------|-----------------|-------------------|
| 首次上线工作量 | 一个接口,半天 | N 个接口 × N 套适配 | 判定服务 + N 个接口 + 评测集 |
| 意图增减的改动面 | 改你的路由表 | 逐接口改 | 改 prompt 或重训模型 |
| 意图集合是否透明 | 不透明,文档没公布枚举 | 由你自己定义 | 由你自己定义 |
| 字段控制力 | 低,`result` 结构随意图变且由平台决定 | 高,字段就是你接的那个接口的 | 高 |
| 单次成本 | 5.5 厘 | 各接口自己的单价 | 模型调用费 + 人力 |
| 延迟(实测) | 3054-1 约 0.65~2.32 秒 | 取决于对接的接口 | 取决于推理服务 |
| 失败可诊断性 | 中,`ret_msg` 是自然语言文案 | 高,错误码由你定义 | 高 |
| 多轮上下文 | 不支持,接口无状态 | 不支持,要自己做 | 可做 |
| 并发上限 | 10 次/秒(接口标注) | 取决于对接的各接口 | 取决于自己的服务 |
## 路线 A 的边界,实测到的都列出来
选它之前,下面这几条要能接受。
**单句无状态,没有多轮上下文。** 请求参数只有 `text` 和 `args_list`,没有会话 ID、没有历史。用户说「那明天呢」,你得自己从会话里把「昆明」补回去。多轮对话是你的活,不是它的。
**意图集合不透明。** 官方文档没给出枚举清单,只给了 `weather` 一个示例。实测拿 15 条语料探出 8 类(`weather`、`query_express`、`oral_correct`、`traffic_control`、`query_news`、`joke`、`ocr_idcard`、`ocr_handwrite`),但这是样本覆盖,不是全集。你要先跑一遍自己的语料才知道支持不支持。
**意图分析的能力和对话的能力不保证一致。** 实测「北京限行尾号是多少」在 3054-2 稳定识别为 `traffic_control`(6/6,置信度 90~98),在 3054-1 稳定返回 `ret_code: -1`「抱歉,您的问题我还没有学会」。识别出来不等于能执行。
**低信息量输入结果不稳定。** 「你好」在 3054-1 重复 6 次拿到 4 种结果(2 次笑话、1 次新闻、2 次 `must input content field`、1 次推理失败);在 3054-2 重复 6 次拿到 3 个不同意图、置信度在 50~65 之间浮动。「讲个笑话」「帮我查找一下昆明今天的天气」这类明确语句则 6/6 稳定。你对输入的清晰度要有预期。
**答复文案不可控。** `reply_msg.text` 由平台生成,实测是 Markdown(天气给 `####` 标题,快递给 `###`,OCR 给 `**加粗**`),语气和措辞你改不了。要品牌一致就只用 `intent` 和 `result` 自己拼。
**计费粒度按次,不按结果质量。** 命中一个你不需要的意图也算成功、也扣费。实测「你好」命中 `query_news` 那次返回了一批无关新闻,仍计费 1 次。
## 路线 B 的边界
选它之前要接受的是工作量线性增长。
每接一个业务能力就是一套新代码:参数怎么构造、字段怎么映射、错误码怎么转。用户说「我的快递到哪了」「帮我查下这个单号」「快递什么情况」,三种说法你得自己归一到同一个查询参数。意图不再增加时这套代码很稳;意图每季度增加两个,维护成本会明显。
好处也很实在:字段由你控制,错误码由你定义,SLA 由你谈,`result` 不会突然换结构。
## 路线 C 的边界
判定逻辑掌握在你手里,代价是你要背判定错误的后果。
写 function calling 的 prompt 能快速起步,但要有一套评测集才能量化准确率。没有评测集,你只是把不确定性从平台挪到了自己身上,并没有减少。训分类模型的门槛更高,收益是稳定的延迟和可控的成本曲线。
如果意图既垂直又稳定(比如只会出现「查余额」和「改密码」两种),自建的复杂度不划算。如果意图有几十种还在快速迭代,自建能给你最好的控制力,前提是你有持续维护它的人。
## 判据:按你手上有什么来选
决策点其实就三个问题。
**第一,你要支持的意图有多少个。**
一到两个,且明确知道未来也不会加,路线 B 是最少的工作量。五个以上、或者还在加,路线 A 的一次接入能省下大量适配代码。
**第二,你对字段有多强的控制要求。**
需要把返回字段直接落库、或者要求字段名和类型长期稳定,路线 A 的 `result` 随意图变会让你很难受,走路线 B 或 C。
**第三,你有没有人力做评测。**
路线 C 没有评测集就没有意义。没有这名人力,路线 A 或 B 才是现实选择。
## 成本怎么算,说清楚口径
路线 A 的调用费是可算的:5.5 厘/次,一天 1000 次约 5.5 元,走两段式翻倍。产品价格页给出的换算口径是 50 元专用资源包对应 9090 次调用。
路线 B 的调用费取决于你对接的各接口自己的定价,本文不假设具体数字。
路线 C 的成本主要是人力和模型调用,具体量级取决于你的技术选型和流量,本文同样不给数字。
三条路线真正的差别不在调用费,在人力投入和长期维护责任。只看单价会比错。
## FAQ
**Q1:只有天气和快递两个需求,该选哪条?**
两个意图且明确不会扩展,路线 B 更直接,字段也能自己控。但如果你的产品形态是开放对话(用户想说什么就说什么),路线 A 能把用户的其他提问也接住,代价是每次 5.5 厘。
**Q2:易源合一能完全替代自建意图识别吗?**
不能。它给的是接口内部支持的意图集合,不对外开放自定义。如果你的意图是「识别用户是不是在投诉」「判断工单优先级」这类业务专属分类,得自己建。
**Q3:不确定我的意图是否被支持,怎么办?**
拿 20~30 条你自己的真实语料打 3054-2,看 `intent` 和 `confidence` 的分布。实测方法见 [易源合一实测能识别哪些意图:8 类 intent 编码逐一验证](https://www.showapi.com/guides/united-api-intent-list-3054)。判出意图之后,再用 3054-1 各跑一遍,验证这个意图真的能执行。
**Q4:会不会被平台绑定?**
接口层面会有一部分绑定:答复文案由平台生成,`result` 结构随意图变化且由平台定义。降低绑定程度的方式是只用 `intent` 和 `args` 这两个字段,把答复和数据结构掌握在自己手里。这样切换成本主要落在意图枚举的映射上。
**Q5:三条路线可以混用吗?**
可以,而且常见。做法是把易源合一当意图层(只调 3054-2 拿 `intent` 和 `args`),执行层用你已有的业务接口。这样既有自然语言理解,又保留字段控制力。实测 `args` 里能直接抽到 `area`、`express_nu` 这类结构化参数,够撑起你自己的查询链路。
## 下一步阅读
- [易源合一 3054-2 与 3054-1 的搭配方式:先判意图,再决定要不要发起对话](https://www.showapi.com/guides/united-api-intent-precheck-3054)
- [易源合一调用失败扣不扣费:ret_code 与 showapi_fee_num 实测对照表](https://www.showapi.com/guides/united-api-retcode-fee-3054)
- [易源合一在对话式应用里的位置:意图层与执行层的切分方案](https://www.showapi.com/guides/united-api-dialog-architecture-3054)
- **本系列共 12 篇**:查看[易源合一指南总目录](https://www.showapi.com/guides/united-api-guides-3054)