Ces SDK
peuvent non seulement être utilisés pour développer des robots, mais vous pouvez également développer librement les effets que vous souhaitez. Comme vous le pensez, il s'agit d'une boîte à outils pour vous aider à construire un chuanchuan. Service et session ChatGPT. SDK
不仅仅可以用于开发机器人,还可以自由的开发你所想要的效果,如你所想,他是一个工具包,帮你chuanchuan构建一个ChatGPT
服务和会话。
最近OpenAi
给他套上了一个Cloudflare
的CDN
服务,这个服务会去拦截非真机请求,现在已经可以破解了。
寻找合适的逆向SDK
原作者用的是这个。
整个包的文件并不是很多,喜欢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')
我们导入我们的逆向包。
from revChatGPT.revChatGPT import Chatbot
这是逆向包里面的源码,用于初始化一个服务,我们刚刚的类中调用了这个包。
然后去创建抛出这个服务的接口,方便被调用。
我们只要运行上面的代码就可以在7777端口直接与ChatGPT进行交互了。
我们使用接口工具测试一下,结果如下图,可以看到,接口正常工作并从ChatGPT得到了对话结果。
其中消息体:
{"msg": "你会数学吗"}
消息体是我们自定义的内容,你可以自己增加字段对接口进行功能扩展
本例子中的msg就是我们的发言内容
而接口返回的:
{ "code": 0, "data": "是的,我会数学。我是一个大型语言模型,我可以回答各种问题,包括数学问题。你有什么数学问题需要我帮助你解决吗?"}
这也是我们自己定义的,当code=0
时代表与ChatGPT
交互成功,此时data
为ChatGPT
反馈给我们的对话内容。而当code=1
时说明出现了错误,此时没有data
,但在msg
Récemment, OpenAi
a installé un service CDN
de Cloudflare
. Ce service interceptera les requêtes des machines non réelles. Il est désormais disponible. Fissuré.
Entier Il n'y a pas beaucoup de fichiers dans le package. Si vous aimez
Python
, vous pouvez le vérifier. Je ne comprends pas Java
. Practice Begins - Practice Chapter 1
Le revChatGPT utilisé dans le code s'appuie sur la bibliothèque de code source :
https://github.com/acheong08/ChatGPT
Notre version Python nécessite > ;=3.8
, puis pip
passez directement à la dernière version.
chat-gpt-qbot.py:
rrreeeNous importons notre package inverse . 🎜rrreee🎜🎜🎜 Il s'agit du code source du package inverse, qui est utilisé pour initialiser un service. Nous venons d'appeler ce package dans la classe. 🎜🎜 🎜🎜Ensuite Pour créer une interface qui lance ce service, il peut être facilement appelé. 🎜🎜Il suffit d'exécuter le code ci-dessus pour interagir directement avec ChatGPT sur le port 7777.code=0
, cela signifie que l'interaction avec ChatGPT
est réussie à ce moment-là, datacode> est le <code>ChatGPT
code>Contenu de la conversation qui nous est renvoyé. Lorsque code=1
, une erreur se produit. Il n'y a pas de données
, mais le message d'erreur est renvoyé dans msg
. 🎜🎜🎜Nous avons maintenant une interface qui peut interagir avec ChatGPT. Grâce à cette interface, nous pouvons avoir une conversation avec ChatGPT🎜🎜🎜Puisque nous avons une conversation, nous avons besoin d'une zone de saisie et d'un bouton. Vous pouvez créer une page Web. appelons cette interface, c’est très simple, nous n’entrerons pas dans les détails ici. 🎜🎜Ce que nous voulons vraiment faire, c'est un robot QQ. Le principe est de laisser le robot QQ écouter le message, de transmettre le message à ChatGPT via notre interface, puis d'envoyer le contenu de la conversation renvoyé par ChatGPT à l'utilisateur QQ, donc qu'une conversation peut Le robot est prêt. La méthode spécifique sera expliquée ci-dessous. 🎜🎜La pratique continue - Pratique Partie 2🎜🎜🎜 Ci-dessus, nous avons implémenté une interface et obtenu avec succès le contenu de la conversation ChatGPT à l'aide du code. Ensuite, nous continuerons à améliorer la logique liée au robot QQ, faites attention aux commentaires dans le code. 🎜🎜🎜🎜🎜🎜🎜Afin de comparer plus facilement le code optimisé (connecté au robot QQ) avec le code précédent, j'ai lancé une comparaison locale et rangé le code inchangé. 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜Vous ne comprenez peut-être pas la logique de mise en œuvre de l'interaction robot, car nous utilisons un framework robot. En fait, nous ne devrions pas limiter notre réflexion. Nous pouvons essayer de modifier et d'utiliser nous-mêmes d'autres frameworks robots, tels que Yunzai Robot. la logique peut être mise en œuvre par vous-même.
Nous utilisons 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
套了一个CF
的CDN
,会拦截人机交互请求。
那我们现在,除了需要获取OpenAi
的session-token
,还需要获取cf_clearance
。
同时,我们还需要获取user-agent
。
前往控制台的网络标签里面查看,如果是空白,你发一句消息就可以。
复制之后写到配置文件中,也就是py/config.js
文件。
目前原创作者打包了两个版本,一个Linux的,麻烦在于cf
的CDN
交互令牌会在2H
内失效,我们需要手动获取并更新,麻烦。
另一个是window
版本,已经实现自动获取CloudflareCookie
À ce stade, ces codes ont déjà pour fonctions de traiter les demandes d'amis, les demandes de groupe et de répondre aux messages.
Comme vous pouvez le constater, par rapport à l'article précédent, nous avons ajouté beaucoup de code et ajouté des commentairesDans les deux premiers articles, nous avons résolu le problème de la communication avec ChatGPT et le problème du traitement des messages QQ. Besoin Voyons comment surveiller les messages QQ.Bien sûr, peu importe si vous ne comprenez pas ces codes. Vous pouvez modifier les pièces correspondantes selon mon article et l'utiliser directement.
Tout le monde vient au groupe Q de l'auteur original pour jouer, j'y suis aussi :
206867743
.La pratique continue - Pratique 3
Dans les mises à jour et les problèmes rencontrés, l'auteur original et de nombreux auteurs du package inverse ont mis à jour beaucoup de contenu. Jetons un coup d'œil à l'enregistrement de mise à jour de l'auteur original : #. 🎜🎜 #
2022-12-12 23:52Ajouter une version spécifique à Windows, qui ne peut être utilisée que sur des ordinateurs ou des serveurs Windows, et peut automatiquement obtenir le cookie cloudflare
2022-12 -12 12:38 Contenu de la mise à jourLa configuration CloudFlare ajoutée et les dépendances mises à jour ne sont pas prises en charge pour le moment. Je ne sais pas à quelle fréquence la configuration CloudFlare doit être modifiée. pour contourner le mur. 2022-12-10 17:42 Mise à jour du contenu Ajout de la prise en charge du mot de passe du compte Vous pouvez utiliser le mot de passe du compte directement sans utiliser de jeton. 2022-12-10 00:23 Le contenu mis à jour distingue chaque QQ privé. chat. Chaque robot de chat privé est une session indépendante et distingue chaque groupe QQ. Chaque groupe QQ est une conversation indépendante. Augmentez la limite de mots pour les réponses. Si la limite est dépassée, elle sera convertie en réponse image (voir fichier de configuration). . Si vous souhaitez réinitialiser la conversation, envoyez au robot : Réinitialiser la conversation
ChatGPT
actuel est équipé d'un CDN
de CF
, qui interceptera les demandes d'interaction homme-machine. #🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#Maintenant, en plus d'obtenir le session-token
de OpenAi
, nous devons également obtenir cf_clearance. #🎜🎜##🎜🎜#En même temps, nous devons également obtenir un <code>user-agent
. #🎜🎜##🎜🎜##🎜🎜##🎜🎜#Allez dans l'onglet réseau de la console pour vérifier. S'il est vide, vous pouvez simplement envoyer un message. #🎜🎜##🎜🎜#Copiez-le et écrivez-le dans le fichier de configuration, qui est le fichier py/config.js
. #🎜🎜##🎜🎜#Actuellement, l'auteur original a packagé deux versions, une pour Linux. Le problème est que le jeton d'interaction CDN
de cf
sera publié dans. 2H n'est pas valide, nous devons l'obtenir et le mettre à jour manuellement, ce qui est gênant. #🎜🎜##🎜🎜#L'autre est la version <code>window
, qui a automatiquement obtenu CloudflareCookie
. #🎜🎜##🎜🎜#Guide de configuration#🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#Cette version ne peut être utilisée que sous Windows, n'importe quel ordinateur ou serveur Windows fonctionnera. #🎜🎜##🎜🎜##🎜🎜# ne prend toujours en charge que le jeton. #🎜🎜##🎜🎜##🎜🎜#Le système ouvrira automatiquement Google Chrome pour obtenir les cookies liés à Cloufflare. Une vérification manuelle peut être requise lors de la première exécution, veuillez faire attention à cliquer dessus. #🎜🎜##🎜🎜##🎜🎜##🎜🎜#Notez que le script ne peut ouvrir que Google Chrome et ne configure pas les autres navigateurs. #🎜🎜##🎜🎜#Autre description#🎜🎜##🎜🎜#Dans la dernière version du code de l'auteur, quelques nouvelles fonctions ont également été ajoutées. #🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#Recherchez par vous-même. #🎜🎜#Ensuite, de nombreux auteurs de packages inversés réfléchissent également à une solution parfaite, attendons doucement !
Alors, s'il vous plaît, regardez cette phrase :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!