Python調(diào)用兩個(gè)機(jī)器人聊天的實(shí)戰(zhàn)
眾所周知,現(xiàn)在網(wǎng)上有很多非常智能bushi(智障)的AI機(jī)器人接口,利用這些接口,我們可以實(shí)現(xiàn)一個(gè)機(jī)器人,可以和它對(duì)話(huà)聊天,為了增加機(jī)器人聊天內(nèi)容的趣味性,今天我決定要搞兩個(gè)機(jī)器人,看它倆聊天,看看會(huì)不會(huì)發(fā)生什么有趣的事情,搞起?。?!
機(jī)器人api接口
經(jīng)過(guò)一通百度,找到幾個(gè)推薦比較多的機(jī)器人接口,如下:
天行機(jī)器人: 天行機(jī)器人, 驗(yàn)證郵箱之后每天可以有100次的免費(fèi)調(diào)用次數(shù),測(cè)試用的話(huà)夠了,不想用自己的郵箱的話(huà),可以找一些臨時(shí)郵箱(百度一搜一大堆)。

青云客機(jī)器人:青云客機(jī)器人,這個(gè)機(jī)器人好像叫菲菲,無(wú)所謂,主要可以白嫖,不用登陸,可以直接調(diào)用接口。

圖靈機(jī)器人: 圖靈機(jī)器人,據(jù)說(shuō)這個(gè)挺智能的,但是好像不是免費(fèi)的哎,19塊9,開(kāi)玩笑,我能有那錢(qián),也可能是我操作有問(wèn)題,不管了,用前兩個(gè)了。
調(diào)用接口封裝機(jī)器人
發(fā)請(qǐng)求用的是requests庫(kù),需要pip install requests進(jìn)行安裝。
天行機(jī)器人:
class TXRobot:
def __init__(self):
self.api = "http://api.tianapi.com/txapi/robot/index?key={}&question={}"
self.key = "xxxxxx" # 填寫(xiě)在官網(wǎng)申請(qǐng)的key
def chat(self, msg):
res = requests.get(tx_url.format(self.key, msg)).json()
content = res["newslist"][0]["reply"]
return content
注意:我這里self.key設(shè)置的假的,這里需要把self.key改成在官網(wǎng)申請(qǐng)的真實(shí)的key。
試一下,看看它回復(fù)個(gè)啥:
tx_robot = TXRobot()
print(tx_robot.chat("你好啊"))
# 您好,{robotname}是{robotname},有什么可以幫您的嗎?
青云客機(jī)器人:
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("你好啊"))
# 我很好,你呢,你怎么樣
好了,兩個(gè)機(jī)器人封裝完畢,至少現(xiàn)在看起來(lái),回復(fù)的還行,沒(méi)有特別的智障。接下來(lái),就讓它倆對(duì)話(huà)吧!準(zhǔn)備看戲?。?!
實(shí)現(xiàn)兩個(gè)機(jī)器人聊天
邏輯就是輸入第一句話(huà),然后讓其中一個(gè)機(jī)器人回答,然后把它的回答作為消息,讓另外一個(gè)機(jī)器人回答,就這樣循環(huán)起來(lái)。
if __name__ == '__main__':
msg = input("輸入第一句聊天對(duì)話(huà):")
while True:
tx_robot = TXRobot()
content = tx_robot.chat(msg)
print("天行機(jī)器人:", content)
qyk_robot = QYKRobot()
msg = qyk_robot.chat(content)
print("青云客機(jī)器人:", msg)

青云客機(jī)器人有句話(huà)深得我心,那就是祖國(guó)尚未統(tǒng)一,你居然有還有心情去學(xué)習(xí),哈哈哈,說(shuō)的對(duì)啊,全部都把魚(yú)摸起來(lái)!??!
聊天文字轉(zhuǎn)語(yǔ)音
既然已經(jīng)實(shí)現(xiàn)了兩個(gè)機(jī)器人聊天了,那能不能實(shí)現(xiàn)聊天文字轉(zhuǎn)語(yǔ)音呢,這樣就可以聽(tīng)它倆的對(duì)話(huà)了。找到一個(gè)第三方庫(kù):pyttsx3,可以使用pip install pyttsx3進(jìn)行安裝,這個(gè)庫(kù)可以把文字轉(zhuǎn)為語(yǔ)音并播放,使用起來(lái)也很簡(jiǎn)單,例如:
import pyttsx3
engine = pyttsx3.init()
engine.say('hello 腳本')
engine.runAndWait()
那么修改一下代碼:
if __name__ == '__main__':
msg = input("輸入第一句聊天對(duì)話(huà):")
engine = pyttsx3.init()
while True:
tx_robot = TXRobot()
content = tx_robot.chat(msg)
print("天行機(jī)器人:", content)
engine.say('天行機(jī)器人說(shuō):{}'.format(content))
engine.runAndWait()
qyk_robot = QYKRobot()
msg = qyk_robot.chat(content)
print("青云客機(jī)器人:", msg)
engine.say('青云客機(jī)器人說(shuō):{}'.format(msg))
engine.runAndWait()
這樣就可以聽(tīng)這兩個(gè)機(jī)器人的對(duì)話(huà)啦!
總結(jié)
效果達(dá)成,雖然兩個(gè)機(jī)器人都不是很智能,但至少還是實(shí)現(xiàn)了基本的聊天對(duì)話(huà)功能,有人可能會(huì)說(shuō),這不就是調(diào)第三方接口嘛,說(shuō)的也對(duì),主要就是調(diào)用了第三方接口,雖然代碼很簡(jiǎn)單,邏輯也不難,但是還是挺有意思的。有調(diào)用智能機(jī)器人的需求的話(huà),也可以看看上面介紹的產(chǎn)品。
到此這篇關(guān)于Python調(diào)用兩個(gè)機(jī)器人聊天的實(shí)戰(zhàn)的文章就介紹到這了,更多相關(guān)Python 機(jī)器人聊天內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用python實(shí)現(xiàn)的可以拷貝或剪切一個(gè)文件列表中的所有文件
python 實(shí)現(xiàn)剪切或是拷貝一個(gè)文件列表中的所有文件2009-04-04
利用Python進(jìn)行數(shù)據(jù)清洗的操作指南
數(shù)據(jù)清洗是指發(fā)現(xiàn)并糾正數(shù)據(jù)文件中可識(shí)別的錯(cuò)誤的最后一道程序,包括檢查數(shù)據(jù)一致性,處理無(wú)效值和缺失值等。本文為大家介紹了Python進(jìn)行數(shù)據(jù)清洗的操作詳解,需要的可以參考一下2022-03-03
python調(diào)用百度語(yǔ)音REST API
這篇文章主要為大家詳細(xì)介紹了python調(diào)用百度語(yǔ)音REST API,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08
解決Python中導(dǎo)入自己寫(xiě)的類(lèi),被劃紅線(xiàn),但不影響執(zhí)行的問(wèn)題
這篇文章主要介紹了解決Python中導(dǎo)入自己寫(xiě)的類(lèi),被劃紅線(xiàn),但不影響執(zhí)行的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
django框架配置swagger以及自定義參數(shù)使用方式
這篇文章主要介紹了django框架配置swagger以及自定義參數(shù)使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
python直接調(diào)用和使用swig法方調(diào)用c++庫(kù)
這篇文章主要介紹了python直接調(diào)用和使用swig法方調(diào)用c++庫(kù),c++運(yùn)算速度快于python,python簡(jiǎn)單易寫(xiě)。很多時(shí)候?qū)τ谝延械腸++代碼也不想用python重寫(xiě),此時(shí)就自然而然地想到用python調(diào)用c或者c++,兩全其美,需要的朋友可以參考一下2022-03-03
python監(jiān)控windows服務(wù)器的進(jìn)程和服務(wù)
這篇文章主要為大家詳細(xì)介紹了如何使用python監(jiān)控windows服務(wù)器的進(jìn)程和服務(wù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-04-04

