Replicação da API OpenAI GPT com selenium webdriver
e undetectable chromedriver
.
NOTA: Usa o Chrome.
Interage com o site oficial do ChatGPT e envia respostas ao chamador, de forma totalmente gratuita (ao contrário da API oficial).
NÃO usa nenhum endpoint ( forefront
, theb
, etc.)
Este programa foi criado apenas para fins educacionais. O usuário é o único responsável por quaisquer ações realizadas usando este programa. O criador deste programa não assume qualquer responsabilidade por qualquer uso indevido deste programa ou quaisquer danos que possam resultar do uso deste programa.
Esta seção descreve o processo de configuração do SlymeGPT
.
(Certifique-se de clonar o repositório com https://github.com/mache102/SlymeGPT.git
primeiro e baixar os pacotes pip install -r requirements.txt
)
Abra Chrome -> Settings -> About Chrome
para encontrar sua versão do Chrome (atualize para a mais recente, se disponível).
Em seguida, acesse https://chromedriver.chromium.org/downloads e baixe a versão correspondente.
Adicione o Chrome WebDriver à variável PATH do seu 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.
Mude o diretório para SlymeGPT
. Em open_browser.py
, altere profile_name
para um perfil do Chrome de sua escolha ou deixe como está para usar o perfil padrão.
Os perfis podem ser encontrados no diretório do Chrome.
C:/Users/[username]/AppData/Local/Google/Chrome/User Data/
~/.config/google-chrome/
~/Library/Application Support/Google/Chrome/
Depois de selecionar um perfil, execute python open_browser.py
para abrir um navegador controlado pelo Selenium.
Você deverá ver a seguinte tela:
A partir daí, faça login no ChatGPT (certifique-se de ativar 'Permanecer conectado') e clique em qualquer notificação de primeiro login.
Uma vez feito isso, feche a janela e pressione ENTER na CLI (ou apenas encerre open_browser.py
).
A configuração está concluída.
Agora você pode usar o módulo em seu programa importando from slyme import SlymeDriver
. Para uma demonstração, veja example.py
, um programa simples que recebe as entradas do usuário, as encaminha para o ChatGPT e envia as respostas de volta ao usuário.
Execute o módulo com uma IU visível (não sem interface) . A janela do navegador será minimizada automaticamente após alguns segundos.
Tentar executar o módulo no modo headless ou minimizar a janela do navegador manualmente pode resultar em problemas (possível problema de Selenium/UC).
Recomenda-se aguardar um pouco após abrir a página, dependendo da velocidade da internet/carregamento.
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 ()
#...
Abaixo está um trecho de código que exibe e explica cada função que vem com o 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 ()