前言

伴随着自然语言技术和机器学习技术的发展,越来越多的有意思的自然语言小项目呈现在大家的眼前,聊天机器人就是其中最典型的应用。

今天就带领大家用不到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",表示这个回答是什么"类型"的。

最后

到这里就实现了自己的智能聊天机器人,下面会对接微信,实现自己的微信化身为机器人智能回复好友信息。