今天大佬教你用 Python调用两个机器人聊天
Posted 编程界的小胖子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了今天大佬教你用 Python调用两个机器人聊天相关的知识,希望对你有一定的参考价值。
现在网上有很多非常智能(智障)的AI机器人接口,利用这些接口,我们可以实现一个机器人,可以和它对话聊天,为了增加机器人聊天内容的趣味性,今天我决定要搞两个机器人,看它俩聊天,看看会不会发生什么有趣的事情,搞起!!!
机器人api接口
经过一通百度,找到几个推荐比较多的机器人接口,如下:
- 天行机器人: 天行机器人, 验证邮箱之后每天可以有100次的免费调用次数,测试用的话够了,不想用自己的邮箱的话,可以找一些临时邮箱(百度一搜一大堆)。
- 青云客机器人:青云客机器人,这个机器人好像叫菲菲,无所谓,主要可以白嫖,不用登陆,可以直接调用接口。
- 图灵机器人: 图灵机器人,据说这个挺智能的,但是好像不是免费的哎,19块9,开玩笑,我能有那钱,也可能是我操作有问题,不管了,用前两个了。
调用接口封装机器人
发请求用的是requests库,需要pip install requests
进行安装。
- 天行机器人:
class TXRobot:
def __init__(self):
self.api = "http://api.tianapi.com/txapi/robot/index?key={}&question={}"
self.key = "xxxxxx" # 填写在官网申请的key
def chat(self, msg):
res = requests.get(tx_url.format(self.key, msg)).json()
content = res["newslist"][0]["reply"]
return content
复制代码
注意:我这里self.key设置的假的,这里需要把self.key改成在官网申请的真实的key。
试一下,看看它回复个啥:
tx_robot = TXRobot()
print(tx_robot.chat("你好啊"))
# 您好,{robotname}是{robotname},有什么可以帮您的吗?
复制代码
- 青云客机器人:
class QYKRobot:
def __init__(self):
self.api = "http://api.qingyunke.com/api.php?key=free&appid=0&msg={}"
def chat(self, msg):
res = requests.get(self.api.format(msg)).json()
content = res["content"]
return content
复制代码
同样试一下:
qyk_robot = QYKRobot()
print(qyk_robot.chat("你好啊"))
# 我很好,你呢,你怎么样
复制代码
好了,两个机器人封装完毕,至少现在看起来,回复的还行,没有特别的智障。接下来,就让它俩对话吧!准备看戏!!!
实现两个机器人聊天
逻辑就是输入第一句话,然后让其中一个机器人回答,然后把它的回答作为消息,让另外一个机器人回答,就这样循环起来。
if __name__ == '__main__':
msg = input("输入第一句聊天对话:")
while True:
tx_robot = TXRobot()
content = tx_robot.chat(msg)
print("天行机器人:", content)
qyk_robot = QYKRobot()
msg = qyk_robot.chat(content)
print("青云客机器人:", msg)
复制代码
青云客机器人有句话深得我心,那就是祖国尚未统一,你居然有还有心情去学习,哈哈哈,说的对啊,全部都把鱼摸起来!!!
聊天文字转语音
既然已经实现了两个机器人聊天了,那能不能实现聊天文字转语音呢,这样就可以听它俩的对话了。找到一个第三方库:pyttsx3,可以使用pip install pyttsx3
进行安装,这个库可以把文字转为语音并播放,使用起来也很简单,例如:
import pyttsx3
engine = pyttsx3.init()
engine.say('hello 掘金')
engine.runAndWait()
复制代码
那么修改一下代码:
if __name__ == '__main__':
msg = input("输入第一句聊天对话:")
engine = pyttsx3.init()
while True:
tx_robot = TXRobot()
content = tx_robot.chat(msg)
print("天行机器人:", content)
engine.say('天行机器人说:{}'.format(content))
engine.runAndWait()
qyk_robot = QYKRobot()
msg = qyk_robot.chat(content)
print("青云客机器人:", msg)
engine.say('青云客机器人说:{}'.format(msg))
engine.runAndWait()
复制代码
这样就可以听这两个机器人的对话啦!需要相关资料的可以点击这里哦
① 2000多本Python电子书(主流和经典的书籍应该都有了)
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
以上是关于今天大佬教你用 Python调用两个机器人聊天的主要内容,如果未能解决你的问题,请参考以下文章
今天清华大佬教你用Python爬虫,爬取腾讯视频评论,机会难得还不点击进来看看