【图灵机器人】图灵机器人API V2版使用采坑指南
做一个小东西的时候需要用python和这个接口,使用的时候遇到了一些坑,于是记录一下。本文只记录接入API时候的一些简单坑,更多使用技巧没有说到。
介绍
图灵机器人是以语义技术为核心驱动力的人工智能公司(一大堆内容可百度。),简单来说就是一个优秀的智能机器人接口,可以实现的功能有:中文聊天,情感引擎等。
PS:部分功能是需要收费的,笑。
图灵机器人本身已经有了较为成熟的接入市场的方式,比如微信公众号,甚至个人微信号,QQ都有较为简单的使用方式,同时,他也提供功能强大的API,本文是利用API接入的方式,用Ppython+requests+post搞定。
工具推荐
- postman 用于发送http请求测试回复等,非常高效好用
流程
第一步:注册and新建机器人然后获取APIKEY(官方文档)
TuringRobot 官方给出了详细的Web API-帮助中心 ,使用流程中包含注册账号,获取APIKEY,请求方式等详细信息,最初开发者在使用的时候不妨详细阅读此卡发文档。
文档内有详细说明。
第二步:你需要的工具
python基础包
requests的包
pip install requests
json包
第三步:
代码:
import requests
import jsondef get_response(msg):api = 'http://openapi.tuling123.com/openapi/api/v2'#为什么要以下格式,可以参看api文档dat = {"perception": {"inputText": {"text": msg},"inputImage": {"url": "imageUrl"},"selfInfo": {"location": {"city": "北京","province": "北京","street": "信息路"}}},#userinfo部分的内容可以在图灵机器人自己的机器人网页查看apikey,我在此处做了隐藏#userid官方说明是用户唯一标示,但目前所见是随便填写即可,我填写了我的机器人的名字"userInfo": {"apiKey": KEY,"userId": "fool"}}dat = json.dumps(dat)r = requests.post(api, data=dat).json()#以下为r的内容#{'emotion': {'userEmotion': {'emotionId': 10300, 'd': 0, 'p': 0, 'a': 0},# 'robotEmotion': {'emotionId': 0, 'd': 0, 'p': 0, 'a': 0}},# 'intent': {'code': 10004, 'actionName': '', 'intentName': ''},# 'results': [{'resultType': 'text', 'values': {'text': '别兴奋别兴奋,很高兴认识你!'}, 'groupType': 1}]}mesage = r['results'][0]['values']['text']print(r['results'][0]['values']['text'])return mesage
- KEY为apikey的字符串,在你的机器人那里能找到。
- api链接为http://openapi.tuling123.com/openapi/api/v2,第一版为http://openapi.tuling123.com/openapi/api
V1版的教程比较多,V2版比较少,这导致我第一次写的时候data写的第一版的格式而失败多次。
V2版格式原版参考:
https://www.kancloud.cn/turing/www-tuling123-com/718227
文档原版,下面来自文档复制内容。
编码方式
UTF-8(调用图灵API的各个环节的编码方式均为UTF-8)
接口地址
http://openapi.tuling123.com/openapi/api/v2
请求方式
HTTP POST
请求参数
请求参数格式为 json
此条表示需要转化为json来使用。
使用:
json.dumps()
语句实现将表单转化为json格式。
例如表单:
dat = {"perception": {"inputText": {"text": msg},"inputImage": {"url": "imageUrl"},"selfInfo": {"location": {"city": "北京","province": "北京","street": "信息路"}}},"userInfo": {"apiKey": KEY,"userId": "fool"}}
转化方式:
dat = json.dumps(dat)
请求示例:
{"reqType":0,"perception": {"inputText": {"text": "附近的酒店"},"inputImage": {"url": "imageUrl"},"selfInfo": {"location": {"city": "北京","province": "北京","street": "信息路"}}},"userInfo": {"apiKey": "","userId": ""}
}
参数说明
参数 | 类型 | 是否必须 | 取值范围 | 说明 |
---|---|---|---|---|
reqType | int | N | - | 输入类型:0-文本(默认)、1-图片、2-音频 |
perception | - | Y | - | 输入信息 |
userInfo | - | Y | - | 用户参数 |
perception
参数 | 类型 | 是否必须 | 取值范围 | 说明 |
---|---|---|---|---|
inputText | - | N | - | 文本信息 |
inputImage | - | N | - | 图片信息 |
inputMedia | - | N | - | 音频信息 |
selfInfo | - | N | - | 客户端属性 |
注意:输入参数必须包含inputText或inputImage或inputMedia!
inputText
参数 | 类型 | 是否必须 | 取值范围 | 说明 |
---|---|---|---|---|
text | String | Y | 1-128字符 | 直接输入文本 |
inputImage
参数 | 类型 | 是否必须 | 取值范围 | 说明 |
---|---|---|---|---|
url | String | Y | 图片地址 |
inputMedia
参数 | 类型 | 是否必须 | 取值范围 | 说明 |
---|---|---|---|---|
url | String | Y | 音频地址 |
selfInfo
参数 | 类型 | 是否必须 | 取值范围 | 说明 |
---|---|---|---|---|
location | - | N | - | 地理位置信息 |
location
参数 | 类型 | 是否必须 | 取值范围 | 说明 |
---|---|---|---|---|
city | String | Y | - | 所在城市 |
province | String | N | - | 省份 |
street | String | N | - | 街道 |
userInfo
参数 | 类型 | 是否必须 | 取值范围 | 说明 |
---|---|---|---|---|
apiKey | String | Y | 32位 | 机器人标识 |
userId | String | Y | 长度小于等于32位 | 用户唯一标识 |
groupId | String | N | 长度小于等于64位 | 群聊唯一标识 |
userIdName | String | N | 长度小于等于64位 | 群内用户昵称 |
输出参数
输出示例:
{"intent": {"code": 10005,"intentName": "","actionName": "","parameters": {"nearby_place": "酒店"}},"results": [{"groupType": 1,"resultType": "url","values": {"url": "http://m.elong.com/hotel/0101/nlist/#indate=2016-12-10&outdate=2016-12-11&keywords=%E4%BF%A1%E6%81%AF%E8%B7%AF"}},{"groupType": 1,"resultType": "text","values": {"text": "亲,已帮你找到相关酒店信息"}}]
}
参数说明
参数 | 类型 | 是否必须 | 取值范围 | 说明 |
---|---|---|---|---|
intent | - | Y | - | 请求意图 |
results | - | N | - | 输出结果集 |
intent
参数 | 类型 | 是否包含 | 取值范围 | 说明 |
---|---|---|---|---|
code | int | Y | - | 输出功能code |
intentName | String | N | - | 意图名称 |
actionName | String | N | - | 意图动作名称 |
parameters | Map | N | - | 功能相关参数 |
results
参数 | 类型 | 是否包含 | 取值范围 | 说明 |
---|---|---|---|---|
resultType | String | Y | 文本(text);连接(url);音频(voice);视频(video);图片(image);图文(news) | 输出类型 |
values | - | Y | - | 输出值 |
groupType | int | Y | - | ‘组’编号:0为独立输出,大于0时可能包含同组相关内容 (如:音频与文本为一组时说明内容一致) |
异常返回码
异常返回格式
{'intent':{'code':5000}
}
异常返回说明
异常码 | 说明 |
---|---|
5000 | 无解析结果 |
6000 | 暂不支持该功能 |
4000 | 请求参数格式错误 |
4001 | 加密方式错误 |
4002 | 无功能权限 |
4003 | 该apikey没有可用请求次数 |
4005 | 无功能权限 |
4007 | apikey不合法 |
4100 | userid获取失败 |
4200 | 上传格式错误 |
4300 | 批量操作超过限制 |
4400 | 没有上传合法userid |
4500 | userid申请个数超过限制 |
4600 | 输入内容为空 |
4602 | 输入文本内容超长(上限150) |
7002 | 上传信息失败 |
8008 | 服务器错误 |
0 | 上传成功 |
【图灵机器人】图灵机器人API V2版使用采坑指南相关推荐
- MacBook通过XGP玩女神异闻录5皇家版不踩坑指南
XGP是微软Xbox游戏通行证服务,全称Xbox Game Pass,俗称西瓜皮. 女神异闻录5皇家版(P5R)登录了全平台,XGP会员可以通过云游戏在MacBook中游玩,本篇为MacBook玩P5 ...
- 亚马逊广告api v2版php扩展库
概述 easy-amazon-advertising easy-amazon-advertising 是一个开源的非官方的亚马逊广告业务sdk. 环境需求 easy-amazon-advertisin ...
- Goolg Maps android API V2版详解(一)配置eclipse得到map包
前段时间学习使用googleMap,结果按照各种书上的代码敲进去,申请完KEY,结果发现地图还是用不了,纠结了一个月,然后之前的某一天,我突然发现,google把mapV1版本停用了,不能申请V!版本 ...
- Goolg Maps android API V2版详解(二)新地图get~
直接上代码吧~~~不废话了,你一看就懂的~~ package com.example.googlemapv2; import android.os.Bundle; import android.sup ...
- epub 机器人系列 阿西莫夫_机器人帝国系列1:阿西莫夫宇宙入坑指南
"机器人三定律"想必很多人不陌生,尤其在频繁讨论人工智能的当下,究竟人工智能的发展是文明的进阶还是自灭的陷阱,争论的焦点就是"机器人是否可控".2004年由威尔 ...
- 腾讯广点通广告投放-转化归因API回传接口对接踩坑指南
对于腾讯广点通广告平台的文档,实在是忍不住要吐槽一番.本来接收到回传接口文档,看到给的PDF文档没有备注说明,但是看到回传方式,挺简单的.以为一下就能搞定了,但是对接下来才发现,各个字段根本不知道什么 ...
- 微信公众号图灵机器人开发php,使用图灵机器人api搭建微信聊天机器人php实现,图灵微信聊天机器人...
使用图灵机器人api搭建微信聊天机器人php实现,图灵微信聊天机器人之前通过hook技术实现了微信pc端发送消息功能,如果在结合图灵机器人就能实现微信聊天机器人. 代码下载:http://blog.y ...
- 图灵学院python_Python——利用图灵创建聊天机器人
前几天在开始接触微信公众号,想做一个类似于QQ小冰的聊天机器人,QQ小冰的技术支持是微软小冰,所以最开始想用微软小冰的API,但是由于前面做测颜值功能的时候用到了微软小冰的接口,本着多尝试的心理,最终 ...
- python图灵_python图灵机器人
时间过得好快,不知不觉中又迎来落叶知秋的季节,秋风习习,送走了夏的酷热,迎来了秋的清爽.我感叹这个季节的到来,怕秋天的落叶,怕凄凉的孤雁南飞的景象,怕这恼人的秋风把我吹迷失在这个伤感的季节.伤感??? ...
最新文章
- PHP获取IP地址所在的地理位置
- (十)数据结构之“堆”
- 京东上市了,员工有多少股票? .
- linux 日志 \var\log
- jsp隐式对象_JSP隐式对象
- 2021-07-01数组和对象循环
- 蓝桥杯省赛2016年Java组B组
- 2021年中国物流科技行业投融资现状及未来发展前景分析[图]
- 破解防复制防刻录光盘
- 2023南京航空航天大学计算机考研信息汇总
- java的运行环境是什么_Java运行环境是什么
- 使用属性在 ASP.NET Web API 2 路由创建一个 REST API
- 初识hellow world
- java 快速导出源代码工具 申请软件著作权
- PCB做SET连片,转批量时发现利用率非常低,有遇到过吗?
- 多模态深度学习综述:网络结构设计和模态融合方法汇总
- 计算机主机恢复上电检查,电脑故障维修判断指导总结
- tplink无线网卡的linux,Ubuntu 13.10 使用 TP-LINK TL-WN725N v2.0
- 嵌入式系统与通用计算机系统的区别,嵌入式操作系统和通用计算机系统两者有什么不同之处...
- 19朵玫瑰花的花语-教你简单玫瑰花的折法