zoukankan      html  css  js  c++  java
  • Python实现聊天机器人

    Python接入聊天机器人


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

    作者:yooongchun

    微信公众号:yooongchun小屋

    这里写图片描述


    1.获取接入秘钥

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

    接下来,申请账号并创建一个机器人,然后在设置中找到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 '
    '.join([r['text'].replace('<br>', '
    ')])
        elif r['code'] == 200000:  # 链接类
            return '
    '.join([r['text'].replace('<br>', '
    '), r['url']])
        elif r['code'] == 302000:  # 新闻类
            l = [r['text'].replace('<br>', '
    ')]
            for n in r['list']:
                l.append('%s - %s' % (n['article'], n['detailurl']))
            return '
    '.join(l)
        elif r['code'] == 308000:  # 菜谱类
            l = [r['text'].replace('<br>', '
    ')]
            for n in r['list']:
                l.append('%s - %s' % (n['name'], n['detailurl']))
            return '
    '.join(l)
        elif r['code'] == 313000:  # 儿歌类
            return '
    '.join([r['text'].replace('<br>', '
    ')])
        elif r['code'] == 314000:  # 诗词类
            return '
    '.join([r['text'].replace('<br>', '
    ')])
    

    3.运行测试

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

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

    4. Have fun!

  • 相关阅读:
    URL参数解析成一个Json对象
    线程(一)实现方式和生命周期
    有1、2、3、4 四个数字,编程实现能组成多少个互不相同且无重复数字的三位数?都是多少?
    Mybatis学习一 CRUD的实现
    Mybatis学习二 实现关联表查询
    .attr()和.prop()和.css()的区别
    利用try-catch判断变量是已声明未赋值还是未声明
    转载的清除浮动
    表单控件之select
    keypress和keydown事件及keyCode和keyChar
  • 原文地址:https://www.cnblogs.com/yczha/p/13160212.html
Copyright © 2011-2022 走看看