banner
Miagz

Miagz

一个很新的网站

"Skype Ai"的誕生

"Skype Ai" 的誕生#

一、前言#

Microsoft 的 new Bing 由於不可描述原因,在大陸地區無法使用,剛開始還有修改 header 中的 X-Forwarder-For 進行繞過區域限制。可是沒過多久也慘遭修復。於是有了此文

二、開始#

Microsoft 將 NewBing 引入到 Skype 中。讓使用者可以在聊天中使用 NewBing 功能。New Bing 所調用的模型是 GPT4.0,所以我們這意味著我們可以在 skype 中可以白嫖 GPT4.0。遺憾的是 Skype 中與 NewBing 私聊仍然需要使用 "魔法" 才能使用

CleanShot 2023-08-04 at 22.15.02@2x

一旦施展魔法

CleanShot 2023-08-05 at 01.09.41@2x

不過在群聊中去 @NewBing 並不需要使用魔法。似乎讓我們找到了突破口

CleanShot 2023-08-05 at 01.24.34@2x

可是在中國大陸,Skype 沒用微信、qq 一樣使用廣泛。如果每次需要使用 Skype 中的 NewBing,豈不是每次都要打開 skype-> 打開群聊 -> 每次會話都要 @一下 NewBing?於是我決定使用 python 腳本去調用 Skype 中的 NewBing。剛開始的時候我是使用 python 爬蟲去調用的。可是經過一番深入了解,發現 python 有個 skpy 庫。整個代碼我放 github 了,下面就只講講一些在我看來比較困難的問題。不想看下文的直接可以去我github

Python 接入 Skype 群聊#

skpy 是使用 chats 接入群組會話,chats 需要群組 Id 作為參數,下面是獲取群組 id 的代碼

loggedInUser = Skype("[email protected]", "password")
getinfo = SkypeChats(loggedInUser)
print(getinfo.recent())

輸出的 json 中 Topic 參數為創建的群聊名,可根據群聊名定位到群組 Id,群組 Id 格式通常為:19:[email protected]

CleanShot 2023-08-05 at 02.20.46@2x

召喚 BingChat#

使用用 skpy 接入 python 後,能成功在 python 中發送消息到群聊之中。可是單單的在 python 中 @NewBing 並不能成功喚醒 NewBing。通過使用 BurpSuite 抓包發現,在每次 @NewBing 的時候都會出現下面一串

<at id=\"28:cf0e6215-34fe-409b-9e4b-135d7f3aa13b\">Bing</at>

嘗試將這串代碼放入到要發送的文本前就能 @NewBing 了。可是發送完消息怎麼時時接受消息呢?因為 BingChat 並不能在我們發送完消息之後就能立馬回覆,官方文檔裡給出的接受消息只能獲取當前會話中的消息。我只能反反復復的翻找官方文檔文檔,終於功夫不負有心人,找到了 SkypeNewMessageEvent 與 SkypeEditMessageEvent 方法 (這俩方法就在文檔最底下部分,我眼瞎沒注意到)。SkypeNewMessageEvent 方法是監聽並獲取最新消息,SkypeEditMessageEvent 則是監聽獲取修改後的消息。對沒錯!Skype 能實時修改消息,當時我並沒有使用 SkypeEditMessageEvent 方法,因為我測試的時候只是問了一些簡單的問題,NewBing 能一句話給出答案,所以我就沒當回事。可是在經過多次測試後發現 NewBing 總是說話說一半就沒了,這讓我疑惑不已。突然意識到 NewBing 回答問題的時候會更正之前的回答,這讓我的進度停滯不前。在我以為這事快黃的時候我突發現了 SkypeEditMessageEvent,它能實時監聽消息是否修改,並返回消息修改後的內容。

最後結果#

簡單加了點功能後最後得到

demo

獲取代碼#

github 使用它請幫忙點個小心心

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。