### 3.2.1 成語接龍
#### (1)功能說明
成語接龍游戲,通過喚醒語“成語接龍”進入游戲,然后與機器人共同完成成語的接龍,同音字亦可。游戲過程可以“退出”,“跳過”,“再來一局”等指示命令重置游戲,亦可問某個成語“什么意思”,依次進行,直到主動退出或一方被打敗游戲結束,結束后給出統計分數。
#### (2) 接口說明
**請求方法**
* POST
**請求地址**
* [http://api.ruyi.ai/v1/message](http://api.ruyi.ai/v1/message)
**請求參數說明**
| 參數名 | 參數類型 | 是否必須 | 參數說明 |
| :--- | :--- | :---: | :--- |
| q | String | 是 | 自然語言表達,例如“成語接龍" |
| app\_key | String | 是 | 應用開發者秘鑰,注冊開發者后臺賬號,建立虛擬助理后獲得 |
| user\_id | String | 是 | 用戶唯一標識,便于支持個性化語義解析。建議開發者使用 UUID 字符,且不同用戶必須用不同的 user\_id,防止意圖串。 |
#### (3) 返回說明
**返回參數說明**
| 名稱 | 類型 | 說明 |
| :--- | :--- | :--- |
| code | Integer | 返回代碼 |
| msg | String | 返回代碼描述 |
| parameters | JSON Object | 解析到的實體以及服務說明 |
| action | String | 服務的接口名稱 |
| name | String | 匹配的意圖名稱 |
| result | JSON Object | 接口返回內容 |
| outputs | Array | 服務輸出結果,微信端使用 type 類型為 wechat 開頭的內容;硬件端收到所有內容,依據需求解析使用 |
**返回代碼說明**
| 返回代碼 | 錯誤類型 | 說明 |
| :--- | :--- | :--- |
| 0/200 | 成功 | 請求成功 |
| 400 | 無效請求 | 某些必需參數缺失或參數值錯誤,詳見 msg 字段 |
| 401 | 未授權 | 授權失敗,app\_key 缺失或錯誤 |
| 403 | 請求被禁止 | 有效請求,但服務拒絕響應,請聯系contact@ruyi.ai |
| 408 | 請求超時 | 請求響應超時,一般響應時間設置為2000ms以內 |
| 429 | 短時間內大量訪問 | 短時間內請求數過多 |
| 500 | 內部錯誤 | 服務處理異常 |
| 503 | 服務不可用 | 服務異常或正在維護 |
#### (4)請求示例
**請求范例**
_成語接龍;魑魅魍魎_
_什么意思_
_刀劍光影(錯誤成語)_
_跳過_
_退出_
**請求示例**
(用戶給出正確成語)
* [http://api.ruyi.ai/ruyi-api/v1/message?app\_key=APP\_KEY&user\_id=user0&q=魑魅魍魎](http://api.ruyi.ai/ruyi-api/v1/message?app_key=APP_KEY&user_id=user0&q=魑魅魍魎)
返回結果
```json
{
"code": 0,
"msg": "ok",
"result": {
"_text": "魑魅魍魎",
"msg_id": "643e70d8-3658-4785-8193-002bc2477ae6",
"intents": [{
"parameters": {
"q": "魑魅魍魎",
"msgNotChengyu": "這個是成語嗎?我不知道啊。您再說一個吧,不會可以說【跳過】或者【退出】",
"msgNotMatch": "你說的成語接不上哦,請再說一個,或者說【跳過】",
"msgSysLose": "我認輸...你好厲害啊!你還要再玩一局嗎?",
"msgValidMatch": "這個成語我知道!該我啦:",
"service": "chengyu"
},
"action": "sys.action.chengyujielong/play",
"name": "玩成語接龍",
"result": {
"isChengyu": true,
"isValidMatch": true,
"chengyuToMatch": "兩面三刀",
"explanation": "當面一套,背后一套。比喻陰險狡詐,耍兩面手法,挑撥是非。",
"lastPinyin": "dao",
"score": 1,
"beatPercent": 1,
"totalNumUserSay": 1,
"prevChengyu": "兩面三刀",
"text": "這個成語我知道!該我啦:兩面三刀。",
"type": "dialog"
},
"outputs": [{
"type": "wechat.text",
"property": {
"text": "這個成語我知道!該我啦:兩面三刀。"
}
}, {
"type": "dialog",
"property": {
"text": "這個成語我知道!該我啦:兩面三刀。聽好啦:兩面三刀",
"emotion": "despite"
}
}],
"score": "1.0",
"scoreColor": "c4",
"is_match": 1,
"id": "37663449-6260-4211-b55b-95e993a52b80"
}],
"meta_process_milliseconds": 613
}
}
```
**請求示例**
(用戶詢問機器人給出的成語是什么意思)
* [http://api.ruyi.ai/ruyi-api/v1/message?app\_key=APP\_KEY&user\_id=user0&q=什么意思](http://api.ruyi.ai/ruyi-api/v1/message?app_key=APP_KEY&user_id=user0&q=什么意思)
返回結果
```json
{
"code": 0,
"msg": "ok",
"result": {
"_text": "什么意思",
"msg_id": "564bfb27-53b6-42ad-b573-6f51472b8a1d",
"intents": [{
"parameters": {
"chengyuToMatch": "兩面三刀",
"score": "1",
"prevChengyu": "兩面三刀",
"totalNumUserSay": "2",
"lastPinyin": "dao",
"explanation": "當面一套,背后一套。比喻陰險狡詐,耍兩面手法,挑撥是非。",
"beatPercent": "1",
"chengyujielongExplanation": "……我剛才沒說成語啊!騙我!~",
"service": "chengyu"
},
"action": "no_action",
"name": "解釋成語或者請求重復",
"result": {
"text": "我剛才說的成語是:【兩面三刀】當面一套,背后一套。比喻陰險狡詐,耍兩面手法,挑撥是非。~好啦,你繼續接吧",
"type": "dialog"
},
"outputs": [{
"type": "wechat.text",
"property": {
"text": "我剛才說的成語是:【兩面三刀】當面一套,背后一套。比喻陰險狡詐,耍兩面手法,挑撥是非。~好啦,你繼續接吧"
}
}, {
"type": "dialog",
"property": {
"text": "我剛才說的成語是:【兩面三刀】當面一套,背后一套。比喻陰險狡詐,耍兩面手法,挑撥是非。~好啦,你繼續接吧",
"emotion": "despite"
}
}],
"score": "1.0",
"scoreColor": "c4",
"is_match": 1,
"id": "7e20a9ec-4908-448f-8e72-03a74a1075d5"
}],
"meta_process_milliseconds": 36
}
}
```
**請求示例**
(用戶沒有給出正確成語;接上一條的回答)
* [http://api.ruyi.ai/ruyi-api/v1/message?app\_key=APP\_KEY&user\_id=user0&q=刀劍光影](http://api.ruyi.ai/ruyi-api/v1/message?app_key=APP_KEY&user_id=user0&q=刀劍光影)
返回結果
```json
{
"code": 0,
"msg": "ok",
"result": {
"_text": "刀劍光影",
"msg_id": "4b809b85-6824-434e-9afb-e1ff2347c6a0",
"intents": [{
"parameters": {
"q": "刀劍光影",
"chengyuToMatch": "兩面三刀",
"score": "1",
"msgNotChengyu": "這個是成語嗎?我不知道啊。您再說一個吧,不會可以說【跳過】或者【退出】",
"msgNotMatch": "你說的成語接不上哦,請再說一個,或者說【跳過】",
"msgSysLose": "我認輸...你好厲害啊!你還要再玩一局嗎?",
"msgValidMatch": "這個成語我知道!該我啦:",
"prevChengyu": "兩面三刀",
"totalNumUserSay": "1",
"lastPinyin": "dao",
"explanation": "當面一套,背后一套。比喻陰險狡詐,耍兩面手法,挑撥是非。",
"service": "chengyu"
},
"action": "sys.action.chengyujielong/play",
"name": "玩成語接龍",
"result": {
"chengyuToMatch": "兩面三刀",
"explanation": "當面一套,背后一套。比喻陰險狡詐,耍兩面手法,挑撥是非。",
"lastPinyin": "dao",
"score": 1,
"beatPercent": 1,
"totalNumUserSay": 2,
"prevChengyu": "兩面三刀",
"text": "這個是成語嗎?我不知道啊。您再說一個吧,不會可以說【跳過】或者【退出】,接龍【兩面三刀】",
"type": "dialog"
},
"outputs": [{
"type": "wechat.text",
"property": {
"text": "這個是成語嗎?我不知道啊。您再說一個吧,不會可以說【跳過】或者【退出】,接龍【兩面三刀】"
}
}, {
"type": "dialog",
"property": {
"text": "這個是成語嗎?我不知道啊。您再說一個吧,不會可以說【跳過】或者【退出】,接龍【兩面三刀】,聽好啦,【兩面三刀】",
"emotion": "confused"
}
}],
"score": "1.0",
"scoreColor": "c4",
"is_match": 1,
"id": "37663449-6260-4211-b55b-95e993a52b80"
}],
"meta_process_milliseconds": 623
}
}
```
**請求示例**
(用戶跳過當前成語,機器人重新給出回答)
* [http://api.ruyi.ai/ruyi-api/v1/message?app\_key=APP\_KEY&user\_id=user0&q=跳過](http://api.ruyi.ai/ruyi-api/v1/message?app_key=APP_KEY&user_id=user0&q=跳過)
返回結果
```json
{
"code": 0,
"msg": "ok",
"result": {
"_text": "跳過",
"msg_id": "fcc6692a-643e-4cdc-a662-f9496bbdedb3",
"intents": [{
"parameters": {
"q": "跳過",
"chengyuToMatch": "兩面三刀",
"score": "1",
"prevChengyu": "兩面三刀",
"totalNumUserSay": "3",
"lastPinyin": "dao",
"isRandomChengyu": "true",
"explanation": "當面一套,背后一套。比喻陰險狡詐,耍兩面手法,挑撥是非。",
"service": "chengyu"
},
"action": "sys.action.chengyujielong/play",
"name": "跳過",
"result": {
"isChengyu": true,
"isValidMatch": true,
"chengyuToMatch": "乳臭未干",
"explanation": "身上的奶腥味都還未散去。形容人年幼無知,不懂世事。用于諷刺時,多用來表示對年輕人的輕蔑與不信任。",
"lastPinyin": "gan",
"score": 1,
"beatPercent": 1,
"totalNumUserSay": 4,
"prevChengyu": "兩面三刀;乳臭未干",
"text": "給你換了一個成語:&out.chengyuToMatch",
"type": "dialog"
},
"outputs": [{
"type": "wechat.text",
"property": {
"text": "好的,給你一個成語:乳臭未干"
}
}, {
"type": "dialog",
"property": {
"text": "好的,給你一個成語:乳臭未干。聽好了:乳臭未干",
"emotion": "positive"
}
}],
"score": "1.0",
"scoreColor": "c4",
"is_match": 1,
"id": "23039e03-b923-4e35-9d68-fdb944971519"
}],
"meta_process_milliseconds": 48
}
}
```
**請求示例退出**
(用戶退出當前游戲)
* [http://api.ruyi.ai/ruyi-api/v1/message?app\_key=APP\_KEY&user\_id=user0&q=退出](http://api.ruyi.ai/ruyi-api/v1/message?app_key=APP_KEY&user_id=user0&q=退出)
返回結果
```json
{
"code": 0,
"msg": "ok",
"result": {
"_text": "退出",
"msg_id": "433c3f19-6be2-4d00-8644-9ebec6c08295",
"intents": [{
"parameters": {
"score": "1",
"beatPercent": "1",
"totalNumUserSay": "3",
"msgGoodJob": "非常好,再接再厲哦!",
"msgBadJob": "繼續努力哦!",
"msgQuit": "謝謝你參與成語接龍",
"msgDirectQuit": "好,下次再來玩吧!",
"service": "chengyu"
},
"action": "no_action",
"name": "退出成語接龍",
"result": {
"text": "謝謝你參與成語接龍,你一共進行了3輪接龍,答對1個,擊敗了全國1%的用戶,繼續努力哦!",
"type": "dialog"
},
"outputs": [{
"type": "wechat.text",
"property": {
"text": "謝謝你參與成語接龍,你一共進行了3輪接龍,答對1個,擊敗了全國1%的用戶,繼續努力哦!"
}
}, {
"type": "dialog",
"property": {
"text": " 謝謝你參與成語接龍,你一共玩了3輪接龍,答對1個,擊敗了全國1%的用戶, 繼續努力哦! ",
"emotion": "happy"
}
}],
"score": "1.0",
"scoreColor": "c4",
"is_match": 1,
"id": "032002f5-a4e9-4f2d-b1a7-6b31ba9bff66"
}],
"meta_process_milliseconds": 39
}
}
```
**詳細參數說明**
| 名稱 | 類型 | 說明 |
| :--- | :--- | :--- |
| service | String | 服務名稱 |
| q | String | 識別的內容 |
| msgNotChengyu | String | 不是成語的缺省描述 |
| msgNotMatch | String | 成語沒有匹配上一條成語的缺省描述 |
| msgSysLose | String | 機器人被打敗的缺省描述 |
| msgValidMatch | String | 匹配正確的缺省描述 |
| isChengyu | Boolean | 判斷是為成語,是則為true |
| isValidMatch | Boolean | 判斷成語是否和上一個匹配,是則為 true |
| chengyuToMatch | String | 要接龍的成語 |
| explanation | String | 成語的解釋 |
| lastPinyin | String | 成語的最后一個字的拼音 |
| score | Integer | 當前得分 |
| beatPercent | Integer | 當前打敗了多少用戶,單位百分數 |
| totalNumUserSay | String | 用戶目前為止說了幾輪 |
| prevChengyu | String | 上一個成語 |
| chengyujielongExplanation | String | 當游戲還沒開始用戶請求解釋時,機器人做出的回答 |
| isRandomChengyu | String | 當用戶跳過時機器人隨機返回一個成語,為“true”時即表示這是機器人隨機給的成語而不是接上一個成語 |
| msgGoodJob | String | 退出游戲時當用戶分數較高的鼓勵 |
| msgBadJob | String | 退出游戲時當用戶分數較低的鼓勵 |
| msgQuit | String | 退出游戲時的提示語 |
| msgDirectQuit | String | 直接退出游戲的提示語 |
**指令清單**
| 指令名稱 | 范例 |
| :--- | :--- |
| 喚醒| 成語接龍|
| 進行接龍游戲| 一馬當先|
| 解釋成語意思| 這個成語是什么意思|
| 跳過| 跳過|
| 再來一局| 再來一局|
| 退出| 退出|
- 1. 海知智能第三方技能插件開放平臺概述
- 2. 快速接入API
- 2.1 硬件接口調用
- 2.2 快速接入微信
- 2.3 API接入常見問題
- 3. 技能插件
- 3.1 基礎能力類
- 頂級過濾器
- 用戶知識圖譜
- 機器人檔案
- 通用閑聊
- 兒童閑聊
- Smart Reply
- 輕量閑聊
- 3.2 語音游戲類
- 成語接龍
- 詞匯樂園
- 詞語接龍
- 鸚鵡學舌
- 動腦猜猜
- 挑戰單詞
- 冒險世界
- 猜猜我是誰
- 阿拉丁學詩詞
- 貓貓托管所
- 漂流瓶
- 詩詞大會
- 國學大會
- 我愛猜歌名
- 我在看著你
- 燈謎猜猜
- 3.3 休閑娛樂類
- 星座運勢
- 悅耳聲音
- 幸運簽
- 調教機器人
- 娛樂推送
- 3.4 生活服務類
- 黃歷
- 計算器
- 古詩詞
- 時間詢問
- 翻譯類技能
- 天氣資訊
- 日程創建
- 日程創建指令
- 鬧鐘
- 食材知識
- 冥想音樂
- 格言
- 每日英語
- 漢語詞典
- 豆果菜譜
- 古文翻譯
- 3.5 音頻點播類
- 喜馬拉雅FM
- 新聞廣播
- 音樂點播
- Smart Music
- 兒童聽聽
- Smart Audio
- 兒童笑話
- 點播控制指令
- 3.6 視頻點播類
- 影視點播
- 3.7 百科知識類
- 人物百科
- 百科問答
- 實時百科
- 3.8 體育健康類
- 五分鐘健身
- 4. 開發者初級教程
- 4.1 開通服務
- 4.2 創建機器人
- 4.3 設置機器人
- 4.4 獲取技能插件
- 4.5 讓機器人學會聊天
- 4.6 導入知識庫
- 4.7 多種問答形式
- 4.8 數據統計
- 4.9 粉絲管理
- 5. 開發者中級教程
- 5.1 詞典運用
- 5.2 意圖處理
- 5.3 暗號使用
- 5.4 事件觸發
- 5.5 優先級
- 5.6 觸發器
- 5.7 快捷鍵
- 5.8 意圖報錯
- 6. 開發者高級教程
- 6.1 handlebars模版語言
- 6.2 JavaScript簡單介紹
- 6.3 JavaScript使用說明
- 6.4 JavaScript使用案例
- 6.5 JavaScript常見問題
- 7. 快速發布技能
- 8. 幫助中心
- 8.1 常見概念
- 8.2 幫助視頻
- 8.3 聯系我們