Discussion Discorde État actuel : non maintenu. Ne fonctionne pas.
Désolé les gars ! Vraiment occupé avec des projets privés. C'était très amusant !
Lire la suite - Comment OpenAI filtre les requêtes faites par les robots/scrapers
️ Vous aimez ce dépôt ? veuillez mettre en vedette et envisager de faire un don pour le maintenir maintenu
Si OpenAI modifie son API, je la corrigerai dès que possible, alors surveillez le dépôt si vous souhaitez être averti
Intégré aux espaces Huggingface ? en utilisant Gradio. Essayez la démo Web
Bavardage
Créer un jeton
You: Hi there, My name is Rawa
Chat GPT: Hello Rawa, nice to meet you. Is there something you would like to talk about or ask me? I'm here to help with any questions you may have.
You: great, now say my name like Heisenberg
Chat GPT: Sure, Rawa like Heisenberg. Is there anything else you would like to talk about? I'm here to help with any questions you may have.
You: Sorry I meant like the episode of Breaking Bad where Walter White says Heisenberg
Chat GPT: Ah, I see. In that case, you could try saying it like this: "My name is Rawa, like Heisenberg." This is a reference to the character Walter White from the TV show Breaking Bad, who often used the pseudonym "Heisenberg" when conducting illegal activities. The character was known for his cool and calculated demeanor, so saying your name like Heisenberg in this context would mean saying it with confidence and authority.
pip install chatgptpy --upgrade
[ NOUVEAU ] Passez un objet options()
au constructeur ChatGPT()
pour personnaliser la session
[ NOUVEAU ] Vous pouvez désormais enregistrer vos conversations dans un fichier
from PyChatGPT import Chat , Options
options = Options ()
# [New] Pass Moderation. https://github.com/rawandahmad698/PyChatGPT/discussions/103
# options.pass_moderation = False
# [New] Enable, Disable logs
options . log = True
# Track conversation
options . track = True
# Use a proxy
options . proxies = 'http://localhost:8080'
# Optionally, you can pass a file path to save the conversation
# They're created if they don't exist
# options.chat_log = "chat_log.txt"
# options.id_log = "id_log.txt"
# Create a Chat object
chat = Chat ( email = "email" , password = "password" , options = options )
answer = chat . ask ( "How are you?" )
print ( answer )
[ NOUVEAU ] Reprendre une conversation
from PyChatGPT import Chat
# Create a Chat object
chat = Chat ( email = "email" , password = "password" ,
conversation_id = "Parent Conversation ID" ,
previous_convo_id = "Previous Conversation ID" )
answer , parent_conversation_id , conversation_id = chat . ask ( "How are you?" )
print ( answer )
# Or change the conversation id later
answer , _ , _ = chat . ask ( "How are you?" ,
previous_convo_id = "Parent Conversation ID" ,
conversation_id = "Previous Conversation ID" )
print ( answer )
Démarrer une session CLI
from PyChatGPT import Chat
chat = Chat ( email = "email" , password = "password" )
chat . cli_chat ()
Posez une question ponctuelle
from PyChatGPT import Chat
# Initializing the chat class will automatically log you in, check access_tokens
chat = Chat ( email = "email" , password = "password" )
answer , parent_conversation_id , conversation_id = chat . ask ( "Hello!" )
import time
from PyChatGPT import OpenAI
# Manually set the token
OpenAI . Auth ( email_address = "email" , password = "password" ). save_access_token ( access_token = "" , expiry = time . time () + 3600 )
# Get the token, expiry
access_token , expiry = OpenAI . get_access_token ()
# Check if the token is valid
is_expired = OpenAI . token_expired () # Returns True or False
pip install chatgptpy --upgrade
pass_moderation
dans la classe options()
, la valeur par défaut est False
pass_moderation
est True, la fonction est invoquée dans un autre thread, elle ne bloque donc pas le thread principal. answer, previous_convo, convo_id
options()
pour définir les options de la session de chataction=next
à action=variant
. Cette bibliothèque utilise désormais action=variant
au lieu de action=next
pour obtenir la prochaine réponse de l'API.502 Bad Gateway
.Si le processus de création du jeton échoue :
Je prévois d'ajouter quelques fonctionnalités supplémentaires, telles que :
Je cherchais un moyen d'interagir avec la nouvelle API Chat GPT, mais la plupart des sources ici sur GitHub nécessitent que vous ayez une instance Chromium exécutée en arrière-plan. ou en utilisant l'inspecteur Web pour récupérer le jeton d'accès manuellement.
Pas plus. J'ai pu procéder à l'ingénierie inverse de l'API et utiliser un client TLS pour imiter un utilisateur réel, permettant ainsi au script de se connecter sans déclencher de techniques de détection de robots par Auth0.
Fondamentalement, le script se connecte en votre nom, à l'aide d'un client TLS, puis récupère le jeton d'accès. C'est assez rapide.
Tout d'abord, j'aimerais vous dire que "faire simplement des requêtes http" ne suffira pas, Auth0 est intelligent, chaque processus est gardé par un jeton state
, qui est un jeton JWT. Ce jeton est utilisé pour empêcher les attaques CSRF, ainsi que pour empêcher les robots de se connecter. Si vous regardez le fichier auth.py
, il existe plus de neuf fonctions, chacune d'elles est responsable d'une tâche différente, et elles sont toutes travaillez ensemble pour créer un jeton pour vous. allow-redirects
ont joué un rôle énorme à cet égard, car elles permettaient de naviguer dans le processus de connexion
Je travaille chez MeshMonitors.io, nous créons des outils incroyables (regardez-le, yo !). J'ai décidé de ne pas consacrer trop de temps là-dessus, mais nous y sommes.
Personne n’a été capable de faire cela et je voulais voir si j’y arrivais.