Réplication de l'API OpenAI GPT avec selenium webdriver
et undetectable chromedriver
.
REMARQUE : utilise Chrome.
Interagit avec le site officiel ChatGPT et renvoie les réponses à l'appelant, entièrement gratuitement (contrairement à l'API officielle).
N'utilise AUCUN point de terminaison ( forefront
, theb
, etc.)
Ce programme a été créé à des fins éducatives uniquement. L'utilisateur est seul responsable de toutes les actions entreprises en utilisant ce programme. Le créateur de ce programme n'assume aucune responsabilité pour toute mauvaise utilisation de ce programme ou tout dommage pouvant résulter de l'utilisation de ce programme.
Cette section décrit le processus de configuration de SlymeGPT
.
(Assurez-vous d'abord de cloner le référentiel avec https://github.com/mache102/SlymeGPT.git
et de télécharger les packages pip install -r requirements.txt
)
Ouvrez Chrome -> Settings -> About Chrome
pour trouver votre version de Chrome (mettre à jour vers la dernière si disponible).
Rendez-vous ensuite sur https://chromedriver.chromium.org/downloads et téléchargez la version correspondante.
Ajoutez le Chrome WebDriver à la variable PATH de votre système.
1. Move the downloaded Chrome WebDriver executable to a folder of your choice.
2. Open your computer's "System Properties" settings.
3. Click on the "Advanced" tab and then click on the "Environment Variables" button.
4. Under "System Variables", find the "Path" variable and click "Edit".
5. Click "New" and add the folder path where the Chrome WebDriver executable is located.
6. Click "OK" on all open windows to save the changes.
Changez le répertoire en SlymeGPT
. Dans open_browser.py
, remplacez profile_name
par le profil Chrome de votre choix, ou laissez tel quel pour utiliser le profil par défaut.
Les profils se trouvent dans le répertoire Chrome.
C:/Users/[username]/AppData/Local/Google/Chrome/User Data/
~/.config/google-chrome/
~/Library/Application Support/Google/Chrome/
Après avoir sélectionné un profil, exécutez python open_browser.py
pour ouvrir un navigateur contrôlé par Selenium.
Vous devriez voir l'écran suivant :
À partir de là, connectez-vous à ChatGPT (assurez-vous d'activer « Rester connecté ») et cliquez sur toutes les notifications de première connexion.
Une fois terminé, fermez la fenêtre et appuyez sur ENTER dans la CLI (ou terminez simplement open_browser.py
).
La configuration est terminée.
Vous pouvez maintenant utiliser le module dans votre programme en important from slyme import SlymeDriver
. Pour une démonstration, voir example.py
, un programme simple qui prend les entrées de l'utilisateur, les transmet à ChatGPT et renvoie les réponses à l'utilisateur.
Veuillez exécuter le module avec une interface utilisateur visible (pas sans tête) . La fenêtre du navigateur sera automatiquement réduite après quelques secondes.
Tenter d'exécuter le module en mode sans tête ou réduire manuellement la fenêtre du navigateur peut entraîner des problèmes (problème possible de Selenium/UC).
Il est recommandé d'attendre un peu après l'ouverture de la page Web, en fonction de la vitesse d'Internet/de chargement.
from slyme import SlymeDriver
import time
def main ():
slyme = SlymeDriver ( pfname = 'Default' )
time . sleep ( 5 )
# driver.implicitly_wait() doesn't account for element loading
# - attempting to instantly access elements may result in a StaleElement error
# perform actions
slyme . select_latest_chat ()
#...
Vous trouverez ci-dessous un extrait de code qui présente et explique chaque fonction fournie avec le module :
from slyme import SlymeDriver
import time
def main ():
slyme = SlymeDriver ( pfname = 'Default' )
time . sleep ( 5 )
# 1.
# Selects the latest accessed chat from the user's chat history.
slyme . select_latest_chat ()
# 2.
# Sends a prompt to ChatGPT and returns its response.
output = slyme . completion ( prompt = 'What does shutil.rmdir("C:/") do?' )
print ( output )
# 3.
# Renames a past chat.
slyme . rename_chat ( chat_name = 'Arch Linux' , new_name = 'I use Arch btw' )
# 4.
# Selects the chat with a matching name.
slyme . select_chat ( chat_name = 'I use Arch btw' )
# 5.
# Create a new chat.
slyme . new_chat ()
# 6.
# End the driver session.
slyme . end_session ()
if __name__ == "__main__" :
main ()