Replicación de la API OpenAI GPT con selenium webdriver
y undetectable chromedriver
.
NOTA: Utiliza Chrome.
Interactúa con el sitio web oficial ChatGPT y envía respuestas a la persona que llama, de forma totalmente gratuita (a diferencia de la API oficial).
NO utiliza ningún punto final ( forefront
, theb
, etc.)
Este programa fue creado únicamente con fines educativos. El usuario es el único responsable de cualquier acción realizada utilizando este programa. El creador de este programa no asume ninguna responsabilidad por el mal uso de este programa o por los daños que puedan resultar del uso de este programa.
Esta sección describe el proceso de configuración de SlymeGPT
.
(Asegúrese de clonar el repositorio con https://github.com/mache102/SlymeGPT.git
primero y descargar los paquetes pip install -r requirements.txt
)
Abra Chrome -> Settings -> About Chrome
para encontrar su versión de Chrome (actualice a la última si está disponible).
Luego vaya a https://chromedriver.chromium.org/downloads y descargue la versión correspondiente.
Agregue Chrome WebDriver a la variable PATH de su sistema.
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.
Cambie el directorio a SlymeGPT
. En open_browser.py
, cambie profile_name
a un perfil de Chrome de su elección, o déjelo como está para usar el perfil predeterminado.
Los perfiles se pueden encontrar en el directorio de Chrome.
C:/Users/[username]/AppData/Local/Google/Chrome/User Data/
~/.config/google-chrome/
~/Library/Application Support/Google/Chrome/
Después de seleccionar un perfil, ejecute python open_browser.py
para abrir un navegador controlado por Selenium.
Deberías ver la siguiente pantalla:
Desde allí, inicie sesión en ChatGPT (asegúrese de habilitar "Permanecer conectado") y haga clic en las notificaciones de inicio de sesión por primera vez.
Una vez hecho esto, cierre la ventana y presione ENTER en la CLI (o simplemente finalice open_browser.py
).
La configuración está completa.
Ahora puede usar el módulo en su programa importándolo from slyme import SlymeDriver
. Para ver una demostración, consulte example.py
, un programa simple que toma las entradas del usuario, las reenvía a ChatGPT y envía las respuestas al usuario.
Ejecute el módulo con una interfaz de usuario visible (no sin cabeza) . La ventana del navegador se minimizará automáticamente después de unos segundos.
Intentar ejecutar el módulo en modo sin cabeza o minimizar la ventana del navegador manualmente puede provocar problemas (posible problema de Selenium/UC).
Se recomienda esperar un poco después de abrir la página web, dependiendo de la velocidad de carga/internet.
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 ()
#...
A continuación se muestra un fragmento de código que muestra y explica cada función que viene con el módulo:
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 ()