跳至主要內容

Python聊天机器人

yczha大约 2 分钟python应用python找茬游戏

本文介绍使用Python调用图灵机器人api来实现一个能聊天的机器人

1.获取接入秘钥

为了接入图灵机器人,需要先到官网申请一个接入秘钥,图灵官网地址open in new window

接下来,申请账号并创建一个机器人,然后在设置中找到api

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

2.编写代码接入

接下来编写Python代码,如下:

# 获得图灵机器人回复
# 需要传入两个参数,Msg内容是文本或者表情,返回值就是回复内容
# Key是接入图灵机器人需要的秘钥,需要自己到官网获取
def get_response(Msg, Key, Userid='ItChat'):
    url = 'http://www.tuling123.com/openapi/api'
    payloads = {
        'key': Key,
        'info': Msg,
        'userid': Userid,
    }
    try:
        r = requests.post(url, data=json.dumps(payloads)).json()
    except ConnectionError:
        return None
    if not r['code'] in (100000, 200000, 302000, 308000, 313000, 314000):
        return
    if r['code'] == 100000:  # 文本类
        return '\n'.join([r['text'].replace('<br>', '\n')])
    elif r['code'] == 200000:  # 链接类
        return '\n'.join([r['text'].replace('<br>', '\n'), r['url']])
    elif r['code'] == 302000:  # 新闻类
        l = [r['text'].replace('<br>', '\n')]
        for n in r['list']:
            l.append('%s - %s' % (n['article'], n['detailurl']))
        return '\n'.join(l)
    elif r['code'] == 308000:  # 菜谱类
        l = [r['text'].replace('<br>', '\n')]
        for n in r['list']:
            l.append('%s - %s' % (n['name'], n['detailurl']))
        return '\n'.join(l)
    elif r['code'] == 313000:  # 儿歌类
        return '\n'.join([r['text'].replace('<br>', '\n')])
    elif r['code'] == 314000:  # 诗词类
        return '\n'.join([r['text'].replace('<br>', '\n')])

3.运行测试

传入参数执行上述代码,我们来看看结果:

我:    你好!
机器人:        好呀,你也好啊
我:    你是谁?
机器人:        在下yooongchun,请多多指教。
我:    你在干什么?
机器人:        专心致志,一心一意的陪你聊天。
我:    hello
机器人:        你好
我:    找死啊你
机器人:        你连生气的样子都这么可爱哇

4. Have fun!