简答问答接口整理与使用教程
说明:本文基于公开文档与公开文章整理,未对每个接口做真实请求实测,接口可用性以公开文档为准,集成前请自行验证。
写在前面
在「用户输入一个问题、系统返回一句简洁答案」这类轻量场景里,简答问答接口是很常见的选择:客服高频问答、知识库速答、搜索引擎答案直出都能用上。
不过这类接口的公开资料比较零散,且部分早期免费接口可能已经下线或调整额度。本文把几类能查到完整接入写法的方案整理到一起,统一给出「请求地址(占位)+ 参数 + 返回示例 + 注意事项」,方便你在集成前做横向评估。
取证边界:本文所有请求/返回示例均来自公开文档,未发起真实调用,也未返回真实业务数据;appKey 与网关地址请在对应平台控制台「我的应用」中创建获取,全文仅在此处说明一次。
1. 接口总览
| 接口 | 请求地址(占位) | 说明 | 需 Key | 单轮/多轮 | 来源类型 |
|---|---|---|---|---|---|
| 万维易源 问与答-简答 | 易源 route 网关 3218-1 接入点(需 appKey) | 提交一个问题返回一句简洁答案 | 是 | 单轮 | 第三方平台 |
| 极速数据 智能问答 | 极速数据 iqa/query 接入点(需 appKey) | 单轮问答,返回类型/内容/相关问题 | 是 | 单轮 | 第三方平台 |
| 百度 UNIT 对话 API | UNIT 对话服务 v3 chat 接入点(需 access_token) | 多轮对话平台,需先建机器人训练技能 | 是 | 多轮 | 第三方平台 |
2. 万维易源 问与答-简答
一句话定位:单轮问答,提交一个疑问,返回一句精炼答案,适合「一问一答」式轻量场景。
- 请求地址(占位):易源 route 网关 3218-1 接入点,需 appKey,调用地址见控制台「我的应用」
- 请求方式:POST / GET
- 返回格式:JSON
- 请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| question | String | 是 | 你的疑问 |
- 返回体(位于
showapi_res_body内):
| 字段 | 类型 | 说明 |
|---|---|---|
| ret_code | Number | 0 表示调用成功 |
| remark | String | 失败时有原因提示 |
| answer | String | 一句话答案,可能返回空字符串 |
请求示例(appKey 与网关地址以占位表示,请替换为控制台实际值):
# 易源 route 网关地址见控制台「我的应用」,此处用 BASE 占位 BASE="你的接口网关地址" curl -X POST "$BASE/3218-1?appKey=YOUR_KEY" \ -H "content-type: application/x-www-form-urlencoded" \ -d "question=为什么没有硅基生命"返回示例:
{ "showapi_res_error": "", "showapi_fee_num": 1, "showapi_res_code": 0, "showapi_res_id": "66bb0f71fb638c5f0a74543e", "showapi_res_body": { "ret_code": 0, "remark": "找到答案!", "answer": "硅基生命目前尚未发现,因为硅和碳在化学性质上有显著差异,硅化合物在地球上的生物环境中不如碳化合物稳定和多样,难以构成复杂的生命形式。" } }注意事项:需自备 appKey;本文仅按官方文档整理接入写法,未返回真实业务数据;返回字段以公共返回参数封装,业务数据均在showapi_res_body内。
3. 极速数据 智能问答
一句话定位:单轮智能问答,返回回复类型、回复内容与相关问题,定位与简答类似。
- 请求地址(占位):极速数据 iqa/query 接入点,需 appKey,调用地址见其开放平台控制台
- 请求方式:GET / POST
- 返回格式:JSON
- 请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| question | string | 是 | 提问的问题 |
- 返回参数:
| 字段 | 类型 | 说明 |
|---|---|---|
| type | string | 回复的类型 |
| content | string | 回复内容 |
| relquestion | string | 其他相关问题 |
请求示例(占位):
BASE="你的接口网关地址" curl -X GET "$BASE/iqa/query?appkey=YOUR_KEY&question=杭州天气"返回示例:
{ "status": 0, "msg": "ok", "result": { "type": "标准回复", "content": "杭州今天26℃~32℃ 阵雨转多云 南风3-4级转西南风≤3级\r\n户外活动不适宜在中午前后展开。", "relquestion": "查询天气" } }注意事项:该接口公开文档页标注「接口已下架」,集成前请到平台确认当前是否仍对外开放;返回内容可能含\r\n换行符,前端展示前建议做清理;需自备 appKey。
4. 百度 UNIT 对话 API(多轮对话方案)
一句话定位:UNIT 是面向对话机器人的定制平台,支持多轮上下文,与单轮简答属于不同技术范式。
- 请求地址(占位):UNIT 对话服务 v3 chat 接入点,需 access_token,在百度智能云控制台获取
- 请求方式:POST(JSON)
- 关键参数:
| 参数 | 类型 | 说明 |
|---|---|---|
| version | string | 固定值 3.0 |
| log_id | string | 客户端生成的唯一 ID |
| session_id | string | 多轮会话标识,由平台托管 |
| service_id / skill_ids | string / list | 机器人或技能 ID |
| request.query | string | 本轮用户问题 |
| request.terminal_id | string | 终端用户标识 |
返回以response_list承载应答动作与回复文本,结构较复杂。
注意事项:需先创建机器人并训练至少一个技能(问答意图/对话意图),再调用对话 API;access_token 由 API Key 与 Secret Key 换得;通过 session_id 传递历史会话实现多轮,会话有效期约 30 分钟,超时需重新开始;接入成本高于单轮简答,适合复杂对话场景。
横向对比(事实对照)
| 维度 | 万维易源 简答 | 极速数据 智能问答 | 百度 UNIT |
|---|---|---|---|
| 是否需 Key | 是(appKey) | 是(appKey) | 是(access_token) |
| 返回格式 | JSON | JSON | JSON |
| 请求方式 | POST/GET | GET/POST | POST |
| 单轮/多轮 | 单轮 | 单轮 | 多轮 |
| 接入成本 | 低 | 低 | 高(需建机器人) |
各有取舍,没有全能最优:单轮简答胜在轻量,多轮平台胜在上下文与定制,按你自己的成本与精度需求选。
生产环境参考实现(多源降级)
下面是一段 Python 参考实现,把多个源列为对等节点,主源失败则切换下一源,并统一归一化业务字段(answer文本)。网关地址与 key 均用占位,实际值从环境变量读取。
import os import requests SOURCES = [ { "name": "易源简答", "base": "你的接口网关地址", # 易源 route 网关地址,控制台获取 "path": "/3218-1", "key": os.getenv("SHOWAPI_KEY", "YOUR_KEY"), "param": "question", }, { "name": "极速数据智能问答", "base": "你的接口网关地址", # 极速数据 iqa/query 接入点,控制台获取 "path": "/iqa/query", "key": os.getenv("JISU_KEY", "YOUR_KEY"), "param": "question", }, ] def ask_once(src, question): url = src["base"] + src["path"] resp = requests.post( url, data={src["param"]: question, "appkey": src["key"]}, timeout=5, ) data = resp.json() # 归一化:不同源落到统一的 answer 文本 if "showapi_res_body" in data: return data["showapi_res_body"].get("answer", "") if "result" in data: return data["result"].get("content", "") return "" def ask_with_fallback(question): last_err = None for src in SOURCES: try: ans = ask_once(src, question) if ans: return ans except Exception as e: last_err = e continue raise RuntimeError(f"所有源均不可用: {last_err}") if __name__ == "__main__": print(ask_with_fallback("为什么没有硅基生命"))说明:各源的真实参数名(如 appKey 大小写、是否走 query 还是 form)以各自平台文档为准;百度 UNIT 因需先建机器人,未纳入上面的自动降级链,可作为独立方案单独接入。
踩坑清单
- 部分早期免费接口可能已下线或调整额度(如极速数据智能问答文档页标注「接口已下架」),集成前务必先发一次请求确认。
- 返回字段不统一:易源落在
answer,极速数据落在result.content,接入时做好字段映射。 - 多轮对话的 session 会超时(UNIT 约 30 分钟),长时闲聊需重新建会话。
- 返回内容可能含
\r\n换行符,数据库存储或前端展示前建议清理。 - 统一使用 UTF-8 编码,避免中文参数乱码。
- appKey / access_token 属凭证,放服务端环境变量,不要写进前端代码或提交到代码仓库。
附录:补充说明
- 聚合数据有智能问答类接口的介绍页面,但公开页面未给出可直接调用的接入文档,需到其开放平台查看具体写法。
- 阿里云云市场存在同一款简答产品的镜像(实为万维易源在云市场的分发),评估时按同一提供方看待即可。
- 华为云对话机器人服务(CBS)等也提供问答能力,适合企业级对话场景,按需评估。
- 通义千问、智谱、DeepSeek 等大模型开放接口是另一条技术路线,适合需要长文本生成或推理的问答,与本文「单轮速答」定位不同。
- 再次提醒:以上接口均未做真实请求实测,集成前请自行发请求验证可用性。
常见问题 FAQ
问:本文里的接口都实测过吗?答:没有。本文基于公开文档与文章整理,未对每个接口做真实请求实测,可用性以公开文档为准,集成前请自行验证。
问:简答问答接口是做什么用的?答:提交一个问题,返回一个简洁的答案,适合「一问一答」式的轻量场景,比如客服高频问答、知识库速答。
问:调用这些接口一定要 appKey 吗?答:是的,文中多数接口需要自备 appKey(或 access_token)才能调用,在对应平台控制台「我的应用」中申请。
问:有没有完全免费、不用 key 的问答接口?答:公开文档中较稳定的接口大多需要 key;部分平台提供每日免费额度,但仍需注册获取 key,没有「零门槛」的通用方案。
问:易源简答和极速数据智能问答有什么区别?答:两者都是单轮问答,返回结构不同——易源取answer字段,极速数据取result.content字段。
问:极速数据智能问答还能用吗?答:其文档页标注「接口已下架」,集成前需到平台确认当前是否仍对外开放,不要直接假设可用。
问:百度 UNIT 适合做简答吗?答:UNIT 是多轮对话平台,需先建机器人并训练技能,比单轮简答重,更适合复杂对话而非一句话速答。
问:多轮对话怎么保持上下文?答:UNIT 通过 session_id 传递历史会话,平台会在云端托管会话,客户端每轮回传上轮返回的 session_id 即可,有效期约 30 分钟。
问:返回内容里有换行符怎么处理?答:易源与极速数据都可能返回含\r\n的内容,前端展示或入库前做一次清理即可。
问:生产环境怎么保证可用性?答:可以做多源降级,主源失败时切换到备用源,并把不同源的返回字段统一归一化后再给上层使用。
问:appKey 应该怎么保管?答:放在服务端环境变量,不要硬编码进前端代码,也不要提交到代码仓库,避免凭证泄露。
问:想做长文本或推理类问答该选什么?答:可评估大模型问答路线(如通义千问、智谱、DeepSeek 等开放接口),其通用能力更强,但与本文「单轮速答」定位不同。