Python調(diào)用兩個機器人聊天的實戰(zhàn)
眾所周知,現(xiàn)在網(wǎng)上有很多非常智能bushi(智障)的AI機器人接口,利用這些接口,我們可以實現(xiàn)一個機器人,可以和它對話聊天,為了增加機器人聊天內(nèi)容的趣味性,今天我決定要搞兩個機器人,看它倆聊天,看看會不會發(fā)生什么有趣的事情,搞起?。。?br />
機器人api接口
經(jīng)過一通百度,找到幾個推薦比較多的機器人接口,如下:
天行機器人: 天行機器人, 驗證郵箱之后每天可以有100次的免費調(diào)用次數(shù),測試用的話夠了,不想用自己的郵箱的話,可以找一些臨時郵箱(百度一搜一大堆)。
青云客機器人:青云客機器人,這個機器人好像叫菲菲,無所謂,主要可以白嫖,不用登陸,可以直接調(diào)用接口。
圖靈機器人: 圖靈機器人,據(jù)說這個挺智能的,但是好像不是免費的哎,19塊9,開玩笑,我能有那錢,也可能是我操作有問題,不管了,用前兩個了。
調(diào)用接口封裝機器人
發(fā)請求用的是requests庫,需要pip install requests進行安裝。
天行機器人:
class TXRobot: def __init__(self): self.api = "http://api.tianapi.com/txapi/robot/index?key={}&question={}" self.key = "xxxxxx" # 填寫在官網(wǎ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設置的假的,這里需要把self.key改成在官網(wǎng)申請的真實的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("你好啊")) # 我很好,你呢,你怎么樣
好了,兩個機器人封裝完畢,至少現(xiàn)在看起來,回復的還行,沒有特別的智障。接下來,就讓它倆對話吧!準備看戲?。?!
實現(xiàn)兩個機器人聊天
邏輯就是輸入第一句話,然后讓其中一個機器人回答,然后把它的回答作為消息,讓另外一個機器人回答,就這樣循環(huán)起來。
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)
青云客機器人有句話深得我心,那就是祖國尚未統(tǒng)一,你居然有還有心情去學習,哈哈哈,說的對啊,全部都把魚摸起來?。?!
聊天文字轉(zhuǎn)語音
既然已經(jīng)實現(xiàn)了兩個機器人聊天了,那能不能實現(xiàn)聊天文字轉(zhuǎn)語音呢,這樣就可以聽它倆的對話了。找到一個第三方庫:pyttsx3,可以使用pip install pyttsx3
進行安裝,這個庫可以把文字轉(zhuǎn)為語音并播放,使用起來也很簡單,例如:
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()
這樣就可以聽這兩個機器人的對話啦!
總結(jié)
效果達成,雖然兩個機器人都不是很智能,但至少還是實現(xiàn)了基本的聊天對話功能,有人可能會說,這不就是調(diào)第三方接口嘛,說的也對,主要就是調(diào)用了第三方接口,雖然代碼很簡單,邏輯也不難,但是還是挺有意思的。有調(diào)用智能機器人的需求的話,也可以看看上面介紹的產(chǎn)品。
到此這篇關(guān)于Python調(diào)用兩個機器人聊天的實戰(zhàn)的文章就介紹到這了,更多相關(guān)Python 機器人聊天內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python sqlalchemy時間戳及密碼管理實現(xiàn)代碼詳解
這篇文章主要介紹了Python sqlalchemy時間戳及密碼管理實現(xiàn)代碼詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08Python Sqlite3以字典形式返回查詢結(jié)果的實現(xiàn)方法
下面小編就為大家?guī)硪黄狿ython Sqlite3以字典形式返回查詢結(jié)果的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10細數(shù)nn.BCELoss與nn.CrossEntropyLoss的區(qū)別
今天小編就為大家整理了一篇細數(shù)nn.BCELoss與nn.CrossEntropyLoss的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02python GUI庫圖形界面開發(fā)之PyQt5選項卡控件QTabWidget詳細使用方法與實例
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5選項卡控件QTabWidget詳細使用方法與實例,需要的朋友可以參考下2020-03-03Python使用Beets模塊實現(xiàn)自動整理音樂庫
Beets是一個功能強大的Python庫,用于處理音樂文件的元數(shù)據(jù),在本文中,我們將探討beets模塊的常見使用方法,感興趣的可以跟隨小編一起學習一下2024-03-03淺談pandas中Dataframe的查詢方法([], loc, iloc, at, iat, ix)
下面小編就為大家分享一篇淺談pandas中Dataframe的查詢方法([], loc, iloc, at, iat, ix),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04Python連接PostgreSQL數(shù)據(jù)庫的方法
大家應該都有所了解,python可以操作多種數(shù)據(jù)庫,諸如SQLite、MySql、PostgreSQL等,這里不對所有的數(shù)據(jù)庫操作方法進行贅述,只針對目前項目中用到的PostgreSQL做一下簡單介紹,主要是Python連接PostgreSQL數(shù)據(jù)庫的方法。有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-11-11python3通過udp實現(xiàn)組播數(shù)據(jù)的發(fā)送和接收操作
這篇文章主要介紹了python3通過udp實現(xiàn)組播數(shù)據(jù)的發(fā)送和接收操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05