前言
伴随着自然语言技术和机器学习技术的发展,越来越多的有意思的自然语言小项目呈现在大家的眼前,聊天机器人就是其中最典型的应用。
今天就带领大家用不到50行代码,来搭建属于自己的聊天机器人,每个人都可以哟。
正文
图灵机器人是以语义和对话技术为核心的人工智能机器人。
由于图灵机器人的高度专业,所以制作出来的聊天机器人交流也非常的顺畅。那如何将图灵机器人嵌入到我们的交流中呢?
首先我们需要去图灵机器人官网注册得到我们自己的机器人,注册完成后,我们便可以生成图灵机器人,并得到一个api_key。
基本原理
使用urllib.request模块,向接口地址发送HTTP POST请求,请求中加入了聊天内容。
import json
import urllib.request
api_url = "http://openapi.tuling123.com/openapi/api/v2"
def get_response(_info):
req = {
"reqType": 0, # 输入类型,0代表文本
"perception": # 输入信息
{
"inputText": # 文本信息,必须
{
"text": _info # 为函数传入的参数,即好友发送过来的消息
},
"selfInfo": # 客户端属性
{
"location": # 地理位置信息
{
"city": "北京",
"province": "北京",
"street": "海淀区"
}
}
},
"userInfo": # 用户参数
{
"apiKey": "这里填写你的apiKey",
"userId": "你的用户Id"
}
}
# 将字典格式的req编码为utf8
req = json.dumps(req).encode('utf8')
http_post = urllib.request.Request(
api_url, data=req, headers={'content-type': 'application/json'})
response = urllib.request.urlopen(http_post)
response_str = response.read().decode('utf8')
response_dic = json.loads(response_str)
return response_dic['results'][0]['values']['text']
if __name__ == '__main__':
while True:
msg = input('我:')
print('图灵的回答:', get_response(msg))
使用python3执行
结果
说明
1、字典 req 包含了向图灵机器人发出请求所需的各项信息。其中 req['perception']['selfInfo']['location'] 包含了地理位置信息,向图灵机器人发送与位置有关的请求时,如果没有另外指定位置,则会默认使用这个位置。例如询问"明天会下雨吗",图灵机器人会回答我"上海"明天是否下雨。
2、req['userInfo'] 包含了API KEY,请替换成你的API KEY(双引号不要删除)。另外 userId 是用户参数,暂时不明白用途,如果你有什么想法恳请留言。
3、图灵机器人的回答可以转换为python的字典格式。其中有一项 response_dic['intent']['code'] 官方称为"输出功能code",表示这个回答是什么"类型"的。
最后
到这里就实现了自己的智能聊天机器人,下面会对接微信,实现自己的微信化身为机器人智能回复好友信息。