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 使用它请帮忙点个小心心

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。