语文教育 / 内容创作类 AI 助手如何调用成语词典?
# 语文教育 / 内容创作类 AI 助手如何调用成语词典?
> 接口:成语词典(apiCode=2964) · 接入点:全接入点 · 是否免费:是 · 请求方式:POST/GET · 返回格式:JSON · 适用人群:AI 应用开发者、内容创作者 · 阅读时间:约 6 分钟
## 核心要点
- 让 AI 助手「用真实数据替代模型幻觉」:需要成语释义/出处时,调用接口而非靠模型现编。
- 两条路:① 在 Agent 工具集里封装成语查询工具;② 通过 MCP 让支持 MCP 的客户端直接调用。
- 返回结构化的拼音/解释/出处/示例,可直接塞进提示词或回复卡片。
## Why:为什么 AI 要接真实成语数据
大模型讲成语经常「张冠李戴」——把出处安错书、把释义编走样。成语词典提供官方结构化释义,让 AI 在引用成语时「有据可依」,显著提升内容可信度,尤其适合语文教育、写作辅助类助手。
## What:两种集成方式
| 方式 | 适用 | 说明 |
|------|------|------|
| Agent 工具封装 | 自建 Agent / 函数调用 | 把「搜索/详情/随机」包成 tool,模型按需调用 |
| MCP | Cherry Studio / ChatBox 等 | 配置 MCP JSON,客户端内直接调用(见[MCP 篇](https://www.showapi.com/guides/idiom-mcp-integration-2964)) |
## How:在 Agent 里封装查询工具
```python
import requests, json
APPKEY = "YOUR_APPKEY"
def idiom_tool(action, value):
"""AI 可调用的成语工具:action=search|detail|random"""
if action == "search":
url = "https://route.showapi.com/2964-1"
body = requests.get(url, params={"appKey": APPKEY, "keyword": value, "page": "1"}, timeout=10).json()["showapi_res_body"]
return [it["word"] for it in body["list"]]
if action == "detail":
url = "https://route.showapi.com/2964-2"
body = requests.post(url, data={"appKey": APPKEY, "id": value}, timeout=10).json()["showapi_res_body"]
return {k: body.get(k) for k in ("word","pinyin","explain","derivation","sample")}
# random
body = requests.post("https://route.showapi.com/2964-3", data={"appKey": APPKEY}, timeout=10).json()["showapi_res_body"]
return {k: body.get(k) for k in ("word","pinyin","explain","derivation","sample")}
# 把结果拼进提示词,让模型基于真实数据作答
tool_schema = {
"name": "idiom_lookup",
"description": "查询成语的拼音、解释、出处、示例。需要准确成语资料时调用,不要凭记忆编造。",
"parameters": {"type":"object","properties":{
"action":{"type":"string","enum":["search","detail","random"]},
"value":{"type":"string","description":"成语名或 id"}}}
}
```
### 提示词要点
> 当用户问到某个成语的意思/出处时,**必须**先调用 `idiom_lookup` 拿到真实数据再回答,禁止仅凭记忆生成释义或出处。
## 进阶 / 边界
- **防幻觉纪律**:在 system prompt 明确「释义/出处以接口返回为准」,并对缺失字段如实说明,不补全。
- **MCP 更省事**:若你的客户端支持 MCP,直接配官方 MCP JSON 即可让 Agent 自助调用,免去自行封装(见[MCP 篇](https://www.showapi.com/guides/idiom-mcp-integration-2964))。
- **缓存**:热门成语可缓存([缓存策略](https://www.showapi.com/guides/idiom-pagination-cache-2964)),降延迟与调用。
## FAQ
**Q:模型自己不会讲成语吗,为什么还要接接口?**
会,但容易编造出处/释义。接真实数据可消除幻觉,提升可信度。
**Q:MCP 和工具封装选哪个?**
客户端支持 MCP 就直接用 MCP(最省事);自建 Agent 函数调用就封装 tool。
**Q:接口返回字段不全怎么办?**
缺失字段如实告知用户,不要替接口补全。
**Q:免费接口能扛 AI 的高频调用吗?**
建议加缓存与限流(见[免费与配额](https://www.showapi.com/guides/idiom-free-api-cost-2964))。
## 相关能力 / 下一步阅读
- [通过 MCP 在 Cherry Studio / ChatBox 中直接用成语词典](https://www.showapi.com/guides/idiom-mcp-integration-2964)
- [成语详情字段详解:拼音 / 解释 / 出处 / 示例如何呈现给用户](https://www.showapi.com/guides/idiom-detail-fields-2964)
- [导入 Postman / Swagger:用 OpenAPI 文档管理成语词典接口](https://www.showapi.com/guides/idiom-openapi-import-2964)
- **本系列共 15 篇**:查看[成语词典(apiCode=2964)官方指南总目录](https://www.showapi.com/guides/idiom-dictionary-guides-2964)