如果用python让一群机器人聊聊中国足球会发生什么事~

相关文件

源码分享,问题解答!!
关注小编,私信小编领取哟!
当然别忘了一件三连哟~~

对了大家可以关注小编的公众号哟~~
有很多资源可以领取的哟!!

Python日志
在这里插入图片描述

大家也可以去b站看我的一些教学视频哟!!
更多Python视频教学:Python视频教学(b站)

开始整活

如果把不同平台提供的聊天机器人放在一起,让他们自己聊天会发生什么有趣的事情,比如给定一个中国足球的话题?
废话不多说,让我们愉快地开始吧~

开发工具

Python版本:3.7.8
相关模块:
requests模块;
pyttsx3模块;
argparse模块;
以及一些python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理介绍

首先,我们确定一下想要实现的效果:即用户给定一个聊天话题,让不同平台的聊天机器人根据这个话题进行“思想交流碰撞”。
具体而言,我找到的聊天机器人接口有图灵机器人(这个key都是从网上找到的,每天请求数量有限,都失效了的话需要自己去官网重新申请):

'''图灵机器人API'''
def turing(self, sentence, need_say=True):
    # 在http://www.tuling123.com/可以申请appkeys
    appkeys = [
        'f0a5ab746c7d41c48a733cabff23fb6d',
        'c4fae3a2f8394b73bcffdecbbb4c6ac6',
        '0ca694db371745668c28c6cb0a755587',
        '7855ce1ebd654f31938505bb990616d4',
        '5945954988d24ed393f465aae9be71b9',
        '1a337b641da04c64aa7fd4849a5f713e',
        'eb720a8970964f3f855d863d24406576',
        '1107d5601866433dba9599fac1bc0083',
        '70a315f07d324b3ea02cf21d13796605',
        '45fa933f47bb45fb8e7746759ba9b24a',
        '2f1446eb0321804291b0a1e217c25bb5',
        '7f05e31d381143d9948109e75484d9d0',
        '35ff2856b55e4a7f9eeb86e3437e23fe',
        '820c4a6ca4694063ab6002be1d1c63d3',
    ]
    while True:
        url = 'http://www.tuling123.com/openapi/api?key=%s&info=%s'
        response = requests.get(url % (random.choice(appkeys), sentence))
        reply = response.json()['text']
        if u'亲爱的,当天请求次数已用完。' in reply:
            continue
        if need_say: self.say(reply)
        return reply

然后是青云客智能聊天机器人:

'''青云客智能聊天机器人API'''
def qingyunke(self, sentence, need_say=True):
    while True:
        url = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg=%s'
        response = requests.get(url % sentence)
        if response.json()['result'] != 0:
            time.sleep(random.random() + 0.5)
            continue
        reply = response.json()['content']
        if need_say: self.say(reply)
        return reply

接着是天行机器人(这个key也都是从网上找到的,都失效了的话需要自己去官网重新申请):

'''天行机器人API'''
def tian(self, sentence, need_say=True):
    # 在https://www.tianapi.com/apiview/47可以申请app_keys
    app_keys = [
        ('250', '16e2471e7a72f1e9dca46b2a80486c7d'),
        ('250', '5fb41161aff1256441d57dafeef854fc'),
        ('250', '6c80a34954420f65176ec34f1261967e'),
        ('250', '8461142e844b269785d25242986696c5'),
    ]
    while True:
        url = 'https://api.tianapi.com/txapi/robot/'
        userid, key = random.choice(app_keys)
        params = {
            'key': key,
            'question': sentence,
            'userid': userid,
            'limit': '10',
            'mode': '1',
            'datatype': '0',
        }
        response = requests.get(url, params=params)
        if response.json()['msg'] != 'success':
            time.sleep(random.random() + 0.5)
            continue
        reply = response.json()['newslist'][0]['reply']
        if need_say: self.say(reply)
        return reply

然后是海知智能机器人(这个key也都是从网上找到的,都失效了的话需要自己去官网重新申请):

'''海知智能机器人API'''
def ruyi(self, sentence, need_say=True):
    # 在https://ruyi.ai/可以申请app_keys
    app_keys = [
        'bfdeb392-0e9e-452f-8eec-09a1de2e58d0',
        '0df50fac-4df0-466c-9798-99136f42bb8c',
        '9aa281dd-ec2e-407d-85c8-ad0a0abd0824',
        '631e72e1-6867-49b9-af92-36d4c4c154de',
    ]
    while True:
        url = 'http://api.ruyi.ai/v1/message'
        headers = {'Content-Type': 'application/json'}
        app_key = random.choice(app_keys)
        params = {'q': sentence, 'user_id': random.randrange(1, 9999), 'app_key': app_key}
        response = requests.get(url, headers=headers, params=params)
        if response.json()['msg'] != 'ok':
            time.sleep(random.random() + 0.5)
            continue
        reply = response.json()['result']['intents'][0]['result']['text']
        if need_say: self.say(reply)
        return reply

最后是思知机器人(这个key也都是从网上找到的,都失效了的话需要自己去官网重新申请):

'''思知机器人API'''
def ownthink(self, sentence, need_say=True):
    # 在https://www.ownthink.com/可以申请app_keys
    app_keys = [
        'xiaosi',
        '9ffcb5785ad9617bf4e64178ac64f7b1',
        '3f9ae1c73db460f4bbb2b491c9119eec',
        'c4b2d5f87542b70e2f65f9dec5288913',
    ]
    while True:
        url = 'https://api.ownthink.com/bot'
        app_key = random.choice(app_keys)
        params = {
            'appid': app_key,
            'userid': random.randrange(1, 9999),
            'spoken': sentence
        }
        response = requests.get(url, params=params)
        if response.json()['message'] != 'success':
            time.sleep(random.random() + 0.5)
            continue
        reply = response.json()['data']['info']['text']
        if need_say: self.say(reply)
        return reply

接下来,就可以看看几个机器人之间对话会发生什么有趣的事情啦:

'''运行'''
def run(self):
    supported_bots = {
        '海知智能机器人': self.ruyi,
        '天行机器人': self.tian,
        '图灵机器人': self.turing,
        '思知机器人': self.ownthink,
        '青云客智能聊天机器人': self.qingyunke,
    }
    sentence = self.topic
    pre_bot_name = None
    bot_name = '图灵机器人'
    while True:
        while bot_name == pre_bot_name:
            bot_name = random.choice(list(supported_bots.keys()))
        bot = supported_bots[bot_name]
        sentence = bot(sentence)
        print(f'[{bot_name}]: {sentence}')
        pre_bot_name = bot_name

效果展示

因为csdn不能直接放视频,大家可以看我b站的视频哈

比如让机器人聊聊中国足球吧:

如果用python让一群机器人聊聊中国足球会发生什么事~

果然还是聊了两句就聊不下去了。再试试让他们聊聊中国新年吧:

Python实现机器人之间的对话(谈论中国新年)

好啦,今天就的分享就到这里啦,需要源代码的小伙伴可以查看相关文件哟!
也可以关注小编的公众号获取源码和资源哟!!
公众号:Python日志

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值