Python調用兩個機器人聊天的實戰

眾所周知,現在網上有很多非常智能bushi(智障)的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()

這樣就可以聽這兩個機器人的對話啦!

總結

效果達成,雖然兩個機器人都不是很智能,但至少還是實現瞭基本的聊天對話功能,有人可能會說,這不就是調第三方接口嘛,說的也對,主要就是調用瞭第三方接口,雖然代碼很簡單,邏輯也不難,但是還是挺有意思的。有調用智能機器人的需求的話,也可以看看上面介紹的產品。

到此這篇關於Python調用兩個機器人聊天的實戰的文章就介紹到這瞭,更多相關Python 機器人聊天內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: