Comment utiliser Python pour se connecter à l'API OpenAi afin d'implémenter un robot QQ intelligent

WBOY
Libérer: 2023-04-28 22:46:05
avant
2389 Les gens l'ont consulté

Comment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligent

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给他套上了一个CloudflareCDN服务,这个服务会去拦截非真机请求,现在已经可以破解了。

Comment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligent

寻找合适的逆向SDK

Comment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligent

原作者用的是这个。

Comment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligent

整个包的文件并不是很多,喜欢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')
Copier après la connexion

Comment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligent

我们导入我们的逆向包。

from revChatGPT.revChatGPT import Chatbot
Copier après la connexion

Comment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligent

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

Comment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligent

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

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

Comment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligent

其中消息体:

{"msg": "你会数学吗"}
Copier après la connexion

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

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

这也是我们自己定义的,当code=0时代表与ChatGPT交互成功,此时dataChatGPT反馈给我们的对话内容。而当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é.

Comment utiliser Python pour connecter l'API OpenAi afin d'implémenter un robot QQ intelligent

À la recherche d'un SDK inverse approprié

Comment utiliser Python pour connecter OpenAi API pour implémenter un robot QQ intelligent

L'auteur original l'a utilisé.

Comment utiliser Python pour connecter l'API OpenAi afin d'implémenter un robot QQ intelligent

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.

Comment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligentPractice 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 &gt ;=3.8, puis pip passez directement à la dernière version. Comment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligent

Le but du code suivant est d'interagir avec l'interface officielle de ChatGPT. Veuillez faire attention à l'installation des dépendances utilisées dans celui-ci

chat-gpt-qbot.pyComment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligent:

rrreee

Comment utiliser Python pour connecter l'API OpenAi afin d'implémenter un robot QQ intelligentComment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligent

Nous importons notre package inverse . 🎜rrreee🎜Comment utiliser Python pour connecter l'API OpenAi afin d'implémenter un robot QQ intelligent🎜🎜 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. 🎜🎜Comment utiliser Python pour connecter l'API OpenAi afin d'implémenter un robot QQ intelligent 🎜🎜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.
Nous utilisons l'outil d'interface pour le tester. Les résultats sont comme indiqué ci-dessous. Vous pouvez voir que l'interface fonctionne normalement et que les résultats de la conversation sont obtenus à partir de ChatGPT. 🎜🎜Comment utiliser Python pour connecter l'API OpenAi afin d'implémenter un robot QQ intelligent 🎜🎜Parmi eux Corps du message : 🎜rrreee🎜Le corps du message est notre contenu personnalisé Vous pouvez ajouter des champs pour étendre les fonctions de l'interface
Le msg dans cet exemple est le contenu de notre discours
L'interface. renvoie : 🎜rrreee 🎜Ceci est également défini par nous-mêmes. Lorsque code=0, cela signifie que l'interaction avec ChatGPT est réussie à ce moment-là, datacode> est le <code>ChatGPTcode>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套了一个CFCDN,会拦截人机交互请求。

Comment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligent

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

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

Comment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligent

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

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

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

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

go-cqhttp Help Center

Donc, vous devez comprendre ce changement avant de pouvoir le comprendre, mais nous devons apprendre avec flexibilité, il nous suffit de comprendre les idées, puis rendez-vous sur les documents officiels pour savoir comment l'utiliser.

Comment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligentÀ 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 commentaires

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 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.

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:52

Ajouter 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 à jour

La 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. Comment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligent 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

Introduction

Nous n'avons pas besoin d'écrire de code pour surveiller les messages QQ, car il y en a. déjà de nombreux frameworks de robots QQ open source sur le marché. Ici, nous utilisons go-cqhttp#🎜🎜#
Documentation officielle : go-cqhttp
Si vous êtes intéressé, vous pouvez lire la documentation officielle. Je ne veux pas le lire, lis simplement mon article. #🎜🎜##🎜🎜# Prérequis : Vous devez préparer un compte QQ. N'utilisez pas votre propre grand compte. Vous devez préparer un compte OpenAi pour obtenir un serveur Token (facultatif, si vous souhaitez que le robot soit en ligne 24h/24. /7 , veuillez en préparer un, 1 cœur et 1G suffisent, un serveur externe est le meilleur) #🎜🎜##🎜🎜# Remarque : il y a beaucoup de vidéos sur la méthode d'enregistrement d'OpenAi (ChatGPT) à la Station B, référez-vous simplement à n'importe qui. #🎜🎜##🎜🎜##🎜🎜# Si vous ne savez pas comment vous inscrire, vous pouvez également lire l'article sur mon blog : Un article vous apprend à enregistrer rapidement OpenAi (ChatGPT) #🎜🎜##🎜 🎜# (Ancienne version) Tutoriel de construction de robots Moi aussi J'ai écrit : Utiliser OpenGPT (ChatGPT) pour construire un robot QQ#🎜🎜##🎜🎜##🎜🎜##🎜🎜#Mais ! Notez que, comme mentionné précédemment, le ChatGPT actuel est équipé d'un CDN de CF, qui interceptera les demandes d'interaction homme-machine. #🎜🎜##🎜🎜##🎜🎜#Comment utiliser Python pour se connecter à l'API OpenAi Réaliser un robot QQ intelligent#🎜🎜##🎜🎜#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. #🎜🎜##🎜🎜#Comment utiliser Python pour connecter l'API OpenAi pour implémenter robot QQ intelligent #🎜🎜##🎜🎜#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 !

Comment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligent

Alors, s'il vous plaît, regardez cette phrase :

Comment utiliser Python pour se connecter à lAPI OpenAi afin dimplémenter un robot QQ intelligent

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal