Como criar o seu próprio ChatGPT em Python!

in #pt2 years ago

Se ainda não leu meu post anterior, leia agora:

Perguntei pro ChatGPT se usar IA para criar conteúdos é uma fraude. A resposta foi surpreendente!

Não esquece de votar lá (e aqui também 😁)


Olá hivers, tudo bem? Nesse post vou ensinar de uma forma prática a criar um script em python que permite com que você interaja (e até converse!) com o ChatGPT.

ANTES DE COMEÇAR SAIBA QUE DEVE USAR O CHATGPT COM RESPONSABILIDADE. CRIAR CONTEÚDO PARA POSTAR NO HIVE SEM A DEVIDA SINALIZAÇÃO VOCÊ PODE SER PENALIZADO.

Para que isso aconteça, você precisa de duas coisas:

  1. Ter um conhecimento de Python (pelo menos um pouco)
  2. Ter a API do OpenAI

Antes de começar a desenvolver, primeiro você precisa adquirir a API do OpenAI. Pra isso acontecer, primeiro entre no site https://platform.openai.com/ e crie sua conta. Se já possuir uma conta no OpenAI, é só fazer o login.

Após o login, segue a tela abaixo:

Clique em Personal e depois em View API Keys

Agora clique no botão Create New Secret Key

Crie um nome para a sua chave (opcional) e depois clique em Create Secret Key

Agora sua chave foi criada. Clique no botão para copiar a chave para a área de transferência. Cole em um arquivo de texto ou no seu script Python que você vai criar agora.

Agora clique em Done. Crie um script Python novo no seu interpretador favorito e crie seu ambiente virtual. Após montar o seu ambiente, dentro dele faça a instalação da biblioteca openai:
pip install openai

Agora você começa a brincadeira. Abra o seu script e importe a biblioteca openai:
import openai

Crie uma variável e coloque a sua chave API nela:
API_KEY = "SUA CHAVE API DO OPENAI"

Insira a variável dentro do atributo do objeto openai no qual você importou:
openai.api_key = API_KEY

Crie uma lista chamada chat_log. Ele será útil para que você possa ter uma conversa com o ChatGPT:
chat_log = []

Agora você vai criar um loop infinito. Nesse loop você vai permitir inserir algo do seu teclado para o seu programa. Calma, ainda não começamos! rs

while True:
prompt = input('PROMPT>')

Não esqueça da tabulação dentro da estrutura While! A visualização desse post pode confundir, dependendo da plataforma. O meu no caso é o Ecency, que não exibe códigos de programação.

Ainda dentro do While, agora você vai criar uma condicional que permite sair desse loop, no caso um comando para sair do programa:

if prompt == '\q':
print("Até mais.")
break

Crie uma estrutura de Try .. Except para que o programa retorne algum erro no meio do caminho.

try:
except:

Dentro de Try, coloque para adicionar na lista a informação a ser inserida pelo usuário para o ChatGPT, incluindo o texto da informação a ser enviada pra ele:

chat_log.append(
{
"role": "user",
"content": prompt
}
)

Agora você vai criar uma variável onde vai receber as informações enviadas para o ChatGPT, incluindo o tipo de modelo a ser usado por ele. Note que todo o diálogo é enviado para ele para que ele possa entender o contexto da conversa e responda adequadamente como se fosse uma conversa. As informações estão na lista chat_log:

response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=chat_log
)

Em assistant, ele vai receber a resposta e também será incluída no chat_log, para que o ChatGPT possa entender todo o contexto da conversa. O role assistant é a resposta dada pelo ChatGPT:

assistant = response.choices[0]["message"].["content"].strip("\n").strip()
chat_log.append(
{
"role": "assistant",
"content": assistant
}
)

Agora imprima a saída do assistant:

print(f'CHAT GPT> {assistant}')

E após o Except você coloca o seguinte aviso:

print("Ocorreu um erro. Tente novamente.")

Execute o script e brinque bastante.

Lembrando que a API do ChatGPT não é gratuita e você está consumindo a API deles como uma degustação. Dá pra brincar bastante e dificilmente irá gastar todo o crédito.

Pra saber como é só clicar em Usage dentro de Organization:

Gostou? Clique em Votar e comente!

Bateu dúvidas? Comente também que estarei online!

Lembre-se: use o ChatGPT com responsabilidade!

Sort:  

Obrigado por promover a Língua Portuguesa em suas postagens.

Vamos seguir fortalecendo a comunidade lusófona dentro da Hive.

Metade das recompensas dessa resposta serão destinadas ao autor do post.

Vote no @perfilbrasil para Testemunha Hive.

Congratulations @menkar! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You made more than 10 comments.
Your next target is to reach 50 comments.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Check out our last posts:

LEO Power Up Day - April 15, 2023
The Hive Gamification Proposal
Support the HiveBuzz project. Vote for our proposal!