[TOC]
## **一、合作商說明**
圖靈機器人合作商接口主要針對開發者及企業用戶開放,方便開發者及企業用戶通過接口的方式對機器人進行批量生成、管理及日常查詢等操作。
## **二、功能說明**
**合作商賬號功能包含“合作商管理頁”及“合作商接口文檔”**
**合作商管理后臺** 可對接口生成的機器人進行查看、升級、管理。
**合作商接口文檔** 開放了“機器人創建管理模塊”,“語料庫增刪改查模塊”、“娛樂技能控制模塊”三大模塊接口。
---
### ****1.合作商管理后臺****
#### **基礎信息頁**
**可開通機器人個數:** 當前合作商賬號最多可創建100個機器人,若需要更高創建機器人權限可與圖靈機器人聯系付費購買;
**服務到期時間:** 服務使用時間默認為1年,若服務即將到期可與圖靈機器人聯系延長使用期限;
**剩余調用次數:** 即為當前所有子機器人剩余可調用的次數;
**今日合計調用次數:** 所有子機器人當日總調用次數;
#### **機器人管理頁**
**日最大調用次數:** 該機器人每日最大調用次數,可通過權限升級接口增加調用量。
**累計調用量:**該機器人自創建以來累積調用次數;
**今日調用量:** 該機器人當日調用次數;
**操作:** “禁用”則該機器人無法使用,“啟用”則該機器人恢復使用;
---
### ****2.合作商接口文檔****
#### ****機器人創建管理模塊****
**(1)批量生成:** 可通過合作商接口批量生成多個機器人。
**(2)多級賬戶:** 多級賬戶由父賬號和子機器人組成,父賬號有機器人管理權,子機器人可用聊天對話、語料庫、生活技能等服務。
**(3)權限分配:** 合作商可根據用戶業務需求,分配或升級子機器人的調用量、語料內容、技能數量等使用權限。
**(4)屬性自定義:** 開放機器人屬性自定義接口,可讓用戶自己修改姓名、性別、年齡、爸爸媽媽等個性化屬性。
#### ****語料庫增刪改查模塊****
**(1)語料導入:** 可通過接口在語料庫中批量上傳問題、答案及相似問題等內容。
**(2)語料刪改:** 可對語料庫已有內容進行查詢、刪除、修改。
**(3)匹配度設置:** 可對語料庫相似度匹配閾值進行調控,讓用戶自主選擇“完全匹配”或“模糊匹配”模式。
#### ****娛樂技能控制模塊****
開放24個生活技能,合作商可通過接口控制各個機器人的技能開關。
## **三、接口說明**
### ****1.接口約定****
#### ****傳輸格式****
JSON
#### ****編碼方式****
UTF-8(調用圖靈API的各個環節的編碼方式均為UTF-8)
#### ****指定header****
Content-Type 為 application/json
#### ****請求方式****
HTTP POST
#### ****統一返回錯誤碼****
| 異常碼 | 說明 |
| --- | --- |
|3\*\* |操作錯誤 |
|301 |缺少必要參數,參數格式錯誤 |
|4\*\* |權限錯誤 |
|401 |APIkey不存在或不具有權限 |
|5\*\* |接口傳輸錯誤|
### ****2.機器人管理接口****
#### ****2.1機器人創建****
(1)請求接口
http://openapi.turingapi.com/v1/robot/create
(2)請求數據
```
{
"user": "user",
"data": {
"name":"小靈兒",
"level": 1,
"faq": 1000,
"match": 70
}
}
```
(3)請求數據
| 參數 | 類型 | 是否必須 |說明
| --- | --- | --- | --- | --- |
|user|string|Y|用戶名|
|name|string|Y| 機器人名稱 |
|level|int|Y| 機器人每日調用上限(整數*1000次)|
|faq|int|N| 知識庫存儲總量|
|match|int|N| 知識庫匹配度|
(4)返回數據
```
{
"code": 0,
"data": {
"apikey": "apikey",
"level": 1,
"faq": 1000,
"name": "小靈兒",
"match": 70
}
}
```
#### ****2.2機器人權限升級****
(1)請求接口
http://openapi.turingapi.com/v1/robot/upgrate
(2)請求數據
```
{
"apikey":"apikey",
"data":{
"level":1,
"faq":2000
}
}
```
(3)參數說明
| 參數 | 類型 | 是否必須 | 說明 |
| --- | --- | --- | --- | --- |
|apikey|string|Y| 機器人Apikey |
|level|string|Y| 機器人每日調用上限(整數*1000次) |
|faq|int|N| 知識庫匹配度|
(4)返回數據
```
{
code: 0,
data:{
"level":level,
"faq":faq
}
}
```
#### ****2.3機器人屬性設置****
(1)請求接口
http://openapi.turingapi.com/v1/robot/profile
(2)請求數據
```
{
"apikey": " apikey ",
"data": {
"nickname": "hellorobot",
"gender": "F/M",
"age": 22,
"image": "http://圖像地址",
"father": "father",
"mother": "mother"
}
}
```
(3)參數說明
| 參數 | 類型 | 是否必須 | 說明 |
| --- | --- | --- | --- | --- |
|apikey|string|Y|機器人apikey|
|nickname|string|N|機器人昵稱|
|gender|string|N|性別(男M,女F)|
|age|int|N|年齡|
|image|string|N|頭像(url)|
|father|string|N|爸爸名字|
|mother|string|N|媽媽名字|
(4)返回數據
```
{
"code": 0,
"data": {
"nickname": "",
"gender": "F/M",
"age": 22,
"image": "http://圖像地址",
"father": "father",
"mother": "mother"
}
}
```
#### ****2.4機器人信息查詢****
(1)請求接口
http://openapi.turingapi.com/v1/robot/info
(2)請求數據
```
{
"apikey":" apikey "
}
```
(3)參數說明
| 參數 | 類型 | 是否必須 | 說明 |
| --- | --- | --- | --- | --- |
|apikey|string|Y|機器人apikey|
(4)返回數據
```
{
code:0,
data:{
"faq":{},
"robotSetting":{},
"ability":{}
}
}
```
#### ****2.5機器人禁用開啟****
(1)請求接口
http://openapi.turingapi.com/v1/robot/locked
(2)請求數據
```
{
"apikey": "",
"data":{
"locked":true
}
}
```
(3)參數說明
| 參數 | 類型 | 是否必須 | 說明 |
| --- | --- | --- | --- | --- |
|apikey|string|Y|機器人apikey|
|locked|boolean|Y|禁用:true 啟用:false|
(4)返回數據
```
{
"code": 0,
"data": {
"locked": true
}
}
```
#### ****2.6機器人刪除****
(1)請求接口
http://openapi.turingapi.com/v1/robot/delete
(2)請求數據
```
{
"apikey": ""
}
```
(3)參數說明
| 參數 | 類型 | 是否必須 | 說明 |
| --- | --- | --- | --- | --- |
|apikey|string|Y|機器人apikey|
(4)返回數據
```
{
"code": 0,
"data": {
"delete": "success"
}
}
```
### ****3.語料庫管理接口****
#### ****3.1語料庫匹配度****
(1)請求接口
http://openapi.turingapi.com/v1/kb/match
(2)請求數據
```
{
"apikey":" apikey ",
"data":{
"match":60
}
}
```
(3)參數說明
| 參數 | 類型 | 是否必須 | 說明 |
| --- | --- | --- | --- | --- |
|apikey|string|Y|機器人apikey|
|match|int|Y|語料庫匹配度|
(4)返回數據
```
{
code: 0,
data:{
"match":60
}
}
```
#### ****3.2語料庫新增****
(1)請求接口
http://openapi.turingapi.com/v1/kb/import
(2)請求數據
```
{
"apikey":" apikey ",
"data":{
"list":[
{"question":"question",
"answer":"answer",
"simiQuestion":["simiQuestion1","simiQuestion2","simiQuestion3"]
}]
}
}
```
(3)參數說明
| 參數 | 類型 | 是否必須 | 說明 |
| --- | --- | --- | --- | --- |
|apikey|string|Y|機器人apikey|
|question|string|Y|問題|
|answer|string|Y|答案|
|simiQuestion|array|N|相似問題|
(4)返回數據
```
{
"code": 0,
"data": {
"successNum": 1,
"knowledgeList": [
{
"answer": "answer",
"question": "question",
"id": "2146008",
"time": "2016-10-17 11:14:38",
"label_id": 0,
}
]
}
}
```
#### ****3.3語料庫修改****
(1)請求接口
http://openapi.turingapi.com/v1/kb/update
(2)請求數據
```
{
"apikey":" apikey ",
"data":{
"list":[
{
"id":"1",
"question":"question",
"answer":"answer",
"simiQuestion":["新相似問題","新相似問題"]}
]
}
}
```
(3)參數說明
| 參數 | 類型 | 是否必須 | 說明 |
| --- | --- | --- | --- | --- |
|apikey|string|Y|機器人apikey|
|id|int|Y|數據id|
|question|string|N|新的問題|
|answer|string|N|新的答案|
|simiQuestion|array|N|新的相似問題|
(4)返回數據
```
{
"code":0,
"data": {
"successNum": 2
}
}
```
#### ****3.4語料庫刪除****
(1)請求接口
http://openapi.turingapi.com/v1/kb/delete
(2)請求數據
```
{
"apikey": "apikey",
"data": {
"clear": false,
"ids": [1,2,3]
}
}
```
(3)參數說明
目前支持兩種形式的刪除接口。
1)如果有"clear"的字段而且 clear 的布爾值為 true,則執行清空操作;
2)第二種會根據用戶傳過來的 ids 中 json 數組里面的 id,刪除對應的記錄;
| 參數 | 類型 | 是否必須 | 說明 |
| --- | --- | --- | --- | --- |
|apikey|string|Y|機器人apikey|
|clear|bool|Y|是否執行清空|
|ids|array|N|待刪除的問題id|
(4)返回數據
```
{
"code":0,
"data":"3"
}
```
#### ****3.5語料庫查詢****
(1)請求接口
http://openapi.turingapi.com/v1/kb/select
(2)請求數據
```
{
"apikey":" apikey ",
"data": {
"pages":{
"pageNumber":1,
"pageSize":10,
"searchBy": "question"
}
}
}
```
(3)參數說明
| 參數 | 類型 | 是否必須 | 說明 |
| --- | --- | --- | --- | --- |
|apikey|string|Y|機器人apikey|
|pageNumber|int|Y|頁數|
|pageSize|int|Y|每頁顯示行數|
|searchBy|string|Y|查詢的關鍵詞|
(4)返回數據
```
{
"code": 0,
"data": {
"totalCount": 2,
"knowledgeCount": 2,
"knowledgeList": [{
"id": "2",
"simiQuestion": ["相似問題 1","相似問題 2","相似問題 3" ],
"time": "2017-02-15 10:14:25",
"answer": "answer2",
"state": 1,
"label_id": 0,
"question": "question2"
}]
}
}
```
### ****4.機器人技能接口****
(1)請求接口
http://openapi.turingapi.com/v1/robot/ability
(2)請求數據
```
{
"apikey": " apikey ",
"data": {
"list": [{
"news": false
}
]
}
}
```
(3)參數說明
| 參數 | 類型 | 是否必須 | 說明 |
| --- | --- | --- | --- | --- |
|apikey|string|Y|機器人apikey|
|list|array|Y|功能及其開關操作列表|
(4)功能名稱對應表
| 功能名稱| 英文名稱|
| --- | --- | --- | --- | --- | --- |
|數字計算|number_count|
|問答百科|question_answer|
|語料庫|knowledgebase|
|中英互譯 |translation|
|聊天對話|chat|
|笑話大全 |joke|
|故事大全|story|
|星座運勢|constellation|
|腦筋急轉彎|brain_twists|
|歇后語| xiehouyu|
|繞口令|tongue_twister|
|順口溜|jingle|
|天氣查詢|weather|
|快遞查詢|express|
|城市郵編|postcode|
(5)返回數據
```
{
code:0,
data:{
list:[
{"appname":true/false},
{"appname":true/false}
]
}
}
```