Heim >Backend-Entwicklung >Python-Tutorial >So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

WBOY
WBOYnach vorne
2023-04-28 22:46:052436Durchsuche

So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

Dieses SDK kann nicht nur zum Entwickeln von Robotern verwendet werden, sondern Sie können auch die gewünschten Effekte frei entwickeln. Wie Sie denken, handelt es sich um ein Toolkit, das Ihnen beim Erstellen eines Chuanchuan hilft ChatGPTDienst und Sitzung. SDK不仅仅可以用于开发机器人,还可以自由的开发你所想要的效果,如你所想,他是一个工具包,帮你chuanchuan构建一个ChatGPT服务和会话。

最近OpenAi给他套上了一个CloudflareCDN服务,这个服务会去拦截非真机请求,现在已经可以破解了。

So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

寻找合适的逆向SDK

So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

原作者用的是这个。

So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

整个包的文件并不是很多,喜欢Python的可以去看看,我这个Java看不太懂。

实践开始-实践篇第一

代码中使用到的revChatGPT依赖源码库:
https://github.com/acheong08/ChatGPT

我们的Python版本,需要>=3.8,然后pip直接升级到最新版本。

下面代码的目的是与ChatGPT官方接口进行交互,注意安装一下里面用到的依赖
chat-gpt-qbot.py:

import flask, json
from flask import request
from revChatGPT.revChatGPT import Chatbot
config = {
    "session_token": "换成你自己的token"
}
# 创建一个服务,把当前这个python文件当做一个服务
server = flask.Flask(__name__)
chatbot = Chatbot(config, conversation_id=None)
def chat(msg):
    message = chatbot.get_chat_response(msg)['message']
    print(message)
    return message
@server.route('/chat', methods=['post'])
def chatapi():
    requestJson = request.get_data()
    if requestJson is None or requestJson == "" or requestJson == {}:
        resu = {'code': 1, 'msg': '请求内容不能为空'}
        return json.dumps(resu, ensure_ascii=False)
    data = json.loads(requestJson)
    print(data)
    try:
        msg = chat(data['msg'])
    except Exception as error:
        print("接口报错")
        resu = {'code': 1, 'msg': '请求异常: ' + str(error)}
        return json.dumps(resu, ensure_ascii=False)
    else:
        resu = {'code': 0, 'data': msg}
        return json.dumps(resu, ensure_ascii=False)
if __name__ == '__main__':
    server.run(port=7777, host='0.0.0.0')

So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

我们导入我们的逆向包。

from revChatGPT.revChatGPT import Chatbot

So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

这是逆向包里面的源码,用于初始化一个服务,我们刚刚的类中调用了这个包。

So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

然后去创建抛出这个服务的接口,方便被调用。

我们只要运行上面的代码就可以在7777端口直接与ChatGPT进行交互了。
我们使用接口工具测试一下,结果如下图,可以看到,接口正常工作并从ChatGPT得到了对话结果。

So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

其中消息体:

{"msg": "你会数学吗"}

消息体是我们自定义的内容,你可以自己增加字段对接口进行功能扩展
本例子中的msg就是我们的发言内容
而接口返回的:

{ "code": 0, "data": "是的,我会数学。我是一个大型语言模型,我可以回答各种问题,包括数学问题。你有什么数学问题需要我帮助你解决吗?"}

这也是我们自己定义的,当code=0时代表与ChatGPT交互成功,此时dataChatGPT反馈给我们的对话内容。而当code=1时说明出现了错误,此时没有data,但在msg

Vor kurzem hat OpenAi einen CDN-Dienst von Cloudflare installiert. Dieser Dienst fängt nicht reale Maschinenanfragen ab. Er ist jetzt verfügbar. Gebrochen.

So verwenden Sie Python, um die OpenAi-API zu verbinden und einen intelligenten QQ-Roboter zu implementieren

Auf der Suche nach einem geeigneten Reverse SDK

So verwenden Sie Python, um OpenAi zu verbinden API zur Implementierung eines intelligenten QQ-Roboters“ /><h3></h3>Der ursprüngliche Autor hat dies verwendet. <blockquote><p><img src= Das Paket enthält nicht viele Dateien. Wenn Sie Python mögen, können Sie es sich ansehen. Ich kann Java nicht verstehen.

So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementierenÜbung beginnt – Übungskapitel 1

Das im Code verwendete revChatGPT basiert auf der Quellcodebibliothek:
https://github.com/acheong08/ChatGPT

Unsere Python-Version erfordert &gt ;=3.8, dann pip direkt auf die neueste Version aktualisieren. So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

Der Zweck des folgenden Codes besteht darin, mit der offiziellen Schnittstelle von ChatGPT zu interagieren. Bitte achten Sie auf die Installation der darin verwendeten Abhängigkeiten

chat-gpt-qbot.pySo verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren:

rrreee

So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen, um einen intelligenten QQ-Roboter zu implementierenSo verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

Wir importieren unsere Umkehrung Paket. 🎜rrreee🎜So verwenden Sie Python, um die OpenAi-API zu verbinden und einen intelligenten QQ-Roboter zu implementieren🎜🎜 Dies ist der Quellcode im Reverse-Paket, der zum Initialisieren eines Dienstes verwendet wird. Wir haben dieses Paket gerade in der Klasse aufgerufen. 🎜🎜So verwenden Sie Python, um die OpenAi-API zu verbinden und einen intelligenten QQ-Roboter zu implementieren 🎜🎜Um eine Schnittstelle zu erstellen, die diesen Dienst auslöst, kann er einfach aufgerufen werden. 🎜🎜Wir müssen nur den obigen Code ausführen, um direkt mit ChatGPT auf Port 7777 zu interagieren.
Wir verwenden das Schnittstellentool, um es zu testen. Sie können sehen, dass die Schnittstelle normal funktioniert und die Konversationsergebnisse von ChatGPT stammen. 🎜🎜So verwenden Sie Python, um die OpenAi-API zu verbinden und einen intelligenten QQ-Roboter zu implementieren 🎜🎜Unter ihnen Nachrichtentext: 🎜rrreee🎜Der Nachrichtentext ist unser benutzerdefinierter Inhalt. Sie können Felder hinzufügen, um die Funktionen der Schnittstelle zu erweitern
Die Nachricht in diesem Beispiel ist der Inhalt unserer Sprache
Die Schnittstelle gibt zurück: 🎜rrree 🎜Dies wird auch von uns selbst definiert. Wenn code=0 ist, bedeutet dies, dass die Interaktion mit ChatGPT erfolgreich ist. code> ist ChatGPTcode> Geben Sie uns Feedback zum Inhalt der Konversation. Bei code=1 tritt ein Fehler auf. Es sind keine Daten vorhanden, aber die Fehlermeldung wird in msg zurückgegeben. 🎜🎜🎜Jetzt haben wir eine Schnittstelle, die mit ChatGPT interagieren kann. 🎜🎜🎜Da wir eine Unterhaltung führen, benötigen wir ein Eingabefeld und eine Schaltfläche, mit der Sie eine Webseite erstellen können Rufen Sie diese Schnittstelle auf, es ist sehr einfach, wir werden hier nicht auf Details eingehen. 🎜🎜Was wir wirklich wollen, ist ein QQ-Roboter. Das Prinzip besteht darin, den QQ-Roboter die Nachricht abhören zu lassen, sie über unsere Schnittstelle an ChatGPT weiterzuleiten und dann den von ChatGPT zurückgegebenen Konversationsinhalt an den QQ-Benutzer zu senden dass ein Gespräch möglich ist. Der Roboter ist bereit. Die konkrete Methode wird weiter unten erläutert. 🎜🎜Übung geht weiter – Übungsteil 2🎜🎜🎜 Oben haben wir eine Schnittstelle implementiert und den ChatGPT-Konversationsinhalt mithilfe von Code erfolgreich erhalten. Als Nächstes werden wir die QQ-Roboter-bezogene Logik weiter verbessern. Achten Sie auf die Kommentare im Code. 🎜🎜🎜🎜🎜🎜🎜Um den optimierten Code (verbunden mit dem QQ-Roboter) bequemer mit dem vorherigen Code vergleichen zu können, habe ich einen lokalen Vergleich gestartet und den unveränderten Code weggelegt. 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜

Möglicherweise verstehen Sie die Interaktionslogik des Roboters nicht, da wir unser Denken nicht einschränken. Wir können versuchen, andere Roboter-Frameworks wie Yunzai Robot zu implementieren selbst.

Wir verwenden go-cqhttp. go-cqhttp

go-cqhttp帮助中心

所以说,这一写更改,你得去了解这个go-cqhttp你才能看懂,不过我们要灵活学习,我们只需要了解思路便可,然后去官方文档找使用方法。

此时,这些代码已经拥有了处理好友请求、拉群请求、回复消息的功能。

可以看到,相对于上个文章,我们增加了很多代码,并且都加了注释

当然,这些代码看不懂没关系,可以照着我的文章改一下对应的地方,直接用。

大家来原创作者Q群玩儿,我也在里面:206867743

实践继续-实践篇第三

前两个文章我们已经解决了和ChatGPT通信的问题和QQ处理消息的问题,现在我们就需要处理如何监听QQ消息了。

在一次次的更新和遇到的问题中,原创作者和逆向包的很多作者都更新了很多内容,我们看看原创作者的更新记录:

2022-12-12 23:52 增加一个Windows专用版本,只能在Windows电脑或服务器上使用,可以自动获取cloudflare Cookie 2022-12-12 12:38 更新内容 增加CloudFlare配置,更新依赖,暂不支持账号密码,暂不知道CloudFlare配置多久需要更换一次,现在好像必须要翻墙了 2022-12-10 17:42 更新内容 增加账号密码支持,可以不使用token,直接使用账号密码 2022-12-10 00:23 更新内容 将每个QQ私聊区分,每个人私聊机器人都是一个独立的会话将每个QQ群区分,每个QQ群是一个独立的会话增加回复字数限制,超过限制转换成图片回复(见配置文件)如果想要重置会话,对机器人发送:重置会话

简介

监听QQ消息并不需要我们写代码,因为市面上已经有很多开源QQ机器人框架,在这里我们使用go-cqhttp
官方文档: go-cqhttp
如果您感兴趣的话,可以阅读一下官方文档,如果不想看,直接看我的文章即可。

前提条件 您需要准备一个QQ号,不要使用自己大号您需要准备一个OpenAi的账号,用来获取Token一台服务器(可选,如果您想让机器人7x24小时在线的话,请准备一台,1核1G足以,外服最好)

注意:OpenAi(ChatGPT)的注册方式B站有一堆视频,随便参考一个就行。

不会注册也可以看看我博客的文章:一文教你快速注册OpenAi(ChatGPT)

(旧版本)机器人搭建教程我也是写过了:使用OpenGPT(ChatGPT)搭建 QQ 机器人

但是!注意,先前说过,现在的ChatGPT套了一个CFCDN,会拦截人机交互请求。

So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

那我们现在,除了需要获取OpenAisession-token,还需要获取cf_clearance

同时,我们还需要获取user-agent

So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

前往控制台的网络标签里面查看,如果是空白,你发一句消息就可以。

复制之后写到配置文件中,也就是py/config.js文件。

目前原创作者打包了两个版本,一个Linux的,麻烦在于cfCDN交互令牌会在2H内失效,我们需要手动获取并更新,麻烦。

另一个是window版本,已经实现自动获取CloudflareCookie

go-cqhttp-Hilfecenter

Sie müssen diese Änderung also verstehen, go-cqhttp, bevor Sie sie verstehen können, aber wir müssen flexibel lernen, wir müssen nur die Ideen verstehen und dann Sehen Sie sich die offizielle Dokumentation an, um herauszufinden, wie Sie es verwenden.

So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementierenZu diesem Zeitpunkt verfügen diese Codes bereits über die Funktion, Freundschaftsanfragen, Gruppenanfragen zu bearbeiten und auf Nachrichten zu antworten.

Sie können sehen, dass wir im Vergleich zum vorherigen Artikel viel Code hinzugefügt und Kommentare hinzugefügt haben.

Natürlich spielt es keine Rolle, ob Sie diese Codes nicht verstehen. Sie können die entsprechenden Stellen entsprechend ändern meinen Artikel und verwende ihn direkt.

Kommen Sie und spielen Sie in der Original-Autoren-Q-Gruppe, ich bin auch dabei: 206867743.

Übung geht weiter – Übung Teil 3

In den ersten beiden Artikeln haben wir das Problem der Kommunikation mit ChatGPT und das Problem der QQ-Nachrichtenverarbeitung gelöst. Jetzt müssen wir uns mit der Überwachung von QQ-Nachrichten befassen .

Bei den aufgetretenen Updates und Problemen haben der ursprüngliche Autor und viele Autoren des Reverse-Pakets viele Inhalte aktualisiert. Werfen wir einen Blick auf den Update-Datensatz des ursprünglichen Autors:

2022-12-12 23:52

Eine Windows-spezifische Version hinzugefügt, die nur auf Windows-Computern oder -Servern verwendet werden kann. Sie kann Cloudflare-Cookies automatisch abrufen.

2022-12-12 12:38 Inhalt aktualisieren Derzeit ist die CloudFlare-Konfiguration noch nicht bekannt. Wie oft müssen Sie die Firewall umgehen? 2022-12-10 00:23 Der aktualisierte Inhalt fügt hinzu, dass jeder private Chat-Roboter eine unabhängige Sitzung ist . Erhöhen Sie die Wortbeschränkung für Antworten (siehe Konfigurationsdatei). Wenn Sie die Sitzung zurücksetzen möchten, senden Sie den Roboter zurück: Einführung >So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

Für das Abhören von QQ-Nachrichten müssen wir keinen Code schreiben, da es bereits viele Open-Source-QQ-Roboter-Frameworks auf dem Markt gibt. Hier verwenden wir go-cqhttp


Offizielle Dokumentation: go-cqhttp
Wenn Sie interessiert sind, können Sie die offizielle Dokumentation lesen. Wenn Sie sie nicht lesen möchten, lesen Sie einfach meinen Artikel.

🎜Voraussetzungen Sie müssen ein QQ-Konto vorbereiten. Sie müssen ein OpenAi-Konto vorbereiten, um Token und einen Server zu erhalten (optional). Wenn Sie möchten, dass der Roboter rund um die Uhr online ist, bereiten Sie bitte eines vor . 1 Kern und 1G reichen aus, externe Server sind am besten) 🎜🎜Hinweis: Es gibt eine Reihe von Videos auf Seite B für die Registrierungsmethode von OpenAi (ChatGPT), beziehen Sie sich einfach auf eines. 🎜🎜🎜Wenn Sie nicht wissen, wie Sie sich registrieren, können Sie auch den Artikel in meinem Blog lesen: In einem Artikel erfahren Sie, wie Sie OpenAi (ChatGPT) schnell registrieren. 🎜🎜 (alte Version) Roboterbau-Tutorial, das ich auch geschrieben habe: Verwenden OpenGPT (ChatGPT) zum Erstellen eines QQ-Roboters🎜🎜🎜 🎜Aber! Beachten Sie, dass das aktuelle ChatGPT, wie bereits erwähnt, mit einem CDN von CF ausgestattet ist, der Mensch-Computer-Interaktionsanfragen abfängt. 🎜🎜🎜So verwenden Sie Python, um die OpenAi-API zu verbinden und einen intelligenten QQ-Roboter zu implementieren🎜🎜 Zusätzlich zum Erhalt des session-token von OpenAi müssen wir nun auch cf_clearance erhalten. 🎜🎜Gleichzeitig müssen wir auch user-agent erhalten. 🎜🎜So verwenden Sie Python, um die OpenAi-API zu verbinden und einen intelligenten QQ-Roboter zu implementieren 🎜🎜Gehe zu. Überprüfen Sie die Registerkarte „Netzwerk“ der Konsole. Wenn sie leer ist, können Sie einfach eine Nachricht senden. 🎜🎜Kopieren Sie es und schreiben Sie es in die Konfigurationsdatei, die Datei py/config.js. 🎜🎜Derzeit hat der ursprüngliche Autor zwei Versionen gepackt, eine für Linux. Das Problem besteht darin, dass das CDN-Interaktionstoken von cf innerhalb von 2Habläuft > Wir müssen es manuell abrufen und aktualisieren, was mühsam ist. 🎜🎜Die andere ist die window-Version, die automatisch CloudflareCookie erhalten hat. 🎜🎜Konfigurationsanleitung🎜🎜🎜🎜🎜Diese Version kann nur unter Windows verwendet werden, jeder Windows-Computer oder Server funktioniert. 🎜🎜🎜 Unterstützt immer noch nur Token. 🎜🎜🎜Das System öffnet automatisch Google Chrome, um Cloufflare-bezogene Cookies zu erhalten. Bei der ersten Ausführung ist möglicherweise eine manuelle Überprüfung erforderlich. Klicken Sie daher bitte sorgfältig. 🎜🎜🎜🎜Beachten Sie, dass das Skript nur Google Chrome öffnen kann und keine anderen Browser konfiguriert. 🎜🎜Andere Beschreibungen🎜🎜In der neuesten Version des Codes des Autors wurden auch einige neue Funktionen hinzugefügt. 🎜🎜🎜🎜🎜Recherchieren Sie selbst. 🎜

Dann denken auch viele Autoren von Reverse-Paketen über eine perfekte Lösung nach, warten wir also langsam!

So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

Dann schauen Sie sich bitte diesen Satz an:

So verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Python, um eine Verbindung zur OpenAi-API herzustellen und einen intelligenten QQ-Roboter zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen