欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python实现聊天机器人

程序员文章站 2022-06-04 09:52:22
...

Python接入聊天机器人


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

作者:yooongchun

微信公众号:yooongchun小屋

Python实现聊天机器人


1.获取接入秘钥

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

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

Python实现聊天机器人

Python实现聊天机器人

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!