python调用图灵机器人接口步骤:
1、登陆图灵官网图灵机器人官网注册账号创建图灵机器人;
2、登录后点击 创建机器人 ,填写一些简单的基本信息之后即可创建;
3、在机器人设置界面找到你的 apikey ,记录下来;
4、在[帮助中心]找到[API V2.0接入文档];
5、基本原理就是使用urllib.request模块,向接口地址发送HTTP POST请求,请求中加入了聊天内容,图灵机器人会根据我们发的字段值做出相应的回答,我们将响应接收取出其中的字段值打印输出。
6、在同一个目录下新建一个json文件:req.json,内容如下:
{
"perception":
{
"inputText":
{
"text": ""
},
"selfInfo":
{
"location":
{
"city": "北京",
"province": "北京",
"street": "天安门"
}
}
},
"userInfo":
{
"apiKey": "输入你自己的apikey",
"userId": "zhou"
}
}
7、建立python文件,Turing_dome.py,代码如下:
#coding=utf-8
import json
import urllib.request
api_url = "http://openapi.tuling123.com/openapi/api/v2"
json_path = 'req.json'
class TuringDome(object):
def __init__(self,json_path="",api_url=""):
self.json_path = json_path
self.api_url = api_url
self.text_input = input('请输入我的问话\n我:')
def readJson(self):
'''获取json文件'''
with open(self.json_path,'r',encoding='utf-8') as f_json:
json_data = json.load(f_json)
return json_data
def textInput(self):
'''用变量text_input替换text的value值'''
req = self.readJson()
req['perception']['inputText']['text'] = self.text_input
return req
def dumpsJson(self):
'''将json字符串转化成dict格式'''
req = self.textInput()
req = json.dumps(req,sort_keys=True,indent=4,).encode('utf8')
return req
def urllibRequestResponse(self):
req = self.dumpsJson()
http_post = urllib.request.Request(self.api_url, data=req, headers={'content-type': 'application/json'})
response = urllib.request.urlopen(http_post)# 在urlopen()方法中传入字符串格式的url地址,则此方法会访问目标网址,然后返回访问的结果。
response_str = response.read().decode('utf8')
response_dict = json.loads(response_str) # 将字符串response_str转成字典
return response_dict
def getTuringResponse(self):
'''取得机器人返回的语句并输出'''
response_dict = self.urllibRequestResponse()
intent_code = response_dict.get('intent')['code']
results_text = response_dict.get('results')[0]['values']['text']
print('Turing的回答:')
print('code:' + str(intent_code))
print('text:' + results_text)
def talkToTheTuring(self):
#self.text_input = input('请输入我的问话\n我:')
while True:
if self.text_input != "exit:":
self.getTuringResponse()
self.text_input = input('请输入我的问话\n我:')
else:
print("*****结束对话!*****")
break
if __name__ == '__main__':
#pass
td = TuringDome(json_path=json_path,api_url=api_url)
td.talkToTheTuring()
8、运行结果如下:
备注:黄小是谁?哼哼,在我眼里,貌若天仙,心如琉璃~的女孩子
——周三岁