Guia Iniciante: API do ChatGPT
Tabela de conteúdos:
- Introdução
- Configurando o ambiente
- 2.1 Instalando o Python
- 2.2 Instalando o pyenv
- 2.3 Instalando o pyenv virtualenv
- 2.4 Instalando as dependências do projeto
- Inicializando o projeto
- 3.1 Criando um diretório vazio
- 3.2 Criando um ambiente virtual
- 3.3 Ativando o ambiente virtual
- Importando as dependências
- 4.1 Importando as bibliotecas necessárias
- 4.2 Configurando as chaves de API
- Criando a função de chat interativo
- 5.1 Usando o Typer para receber o input do usuário
- 5.2 Chamando o modelo de chat do OpenAI
- 5.3 Manipulando a resposta do modelo
- Melhorando a Memória do chatbot
- 6.1 Adicionando contexto às mensagens
- 6.2 Armazenando mensagens anteriores
- 6.3 Testando a nova funcionalidade
- Especificando parâmetros personalizados
- 7.1 Usando o Typer para definir parâmetros
- 7.2 Alterando os parâmetros na chamada da API
- Otimizando o programa
- 8.1 Incluindo a pergunta inicial como argumento
- 8.2 Tornando o argumento opcional
- Conclusão
- 9.1 Recursos adicionais
- 9.2 Próximos passos
Implementando um Chatbot Clone com Python
Olá! Neste artigo, vamos aprender a criar um clone de chatbot utilizando Python, OpenAI e Typer. Vamos seguir um passo a passo para configurar o ambiente e então criar um chat interativo que utiliza o modelo de geração de texto do OpenAI para responder às perguntas do usuário.
Antes de começarmos, certifique-se de ter o Python, o pyenv e o pyenv virtualenv instalados em seu sistema. Além disso, é importante criar um ambiente virtual para isolar as dependências do nosso projeto. Vamos lá!
2. Configurando o ambiente
Antes de começarmos a desenvolver nosso chatbot clone, precisamos configurar o ambiente de desenvolvimento. Isso envolve a instalação do Python, do pyenv e do pyenv virtualenv, além da instalação das dependências do projeto. Vamos seguir os passos abaixo:
2.1 Instalando o Python
Primeiro, vamos instalar o Python em nosso sistema. Para fazer isso, execute o seguinte comando:
comando de instalação do Python
2.2 Instalando o pyenv
O pyenv é uma ferramenta que nos permite gerenciar nossas instalações do Python. Vamos instalar o pyenv executando o seguinte comando:
comando de instalação do pyenv
2.3 Instalando o pyenv virtualenv
O pyenv virtualenv é uma extensão do pyenv que nos permite criar ambientes virtuais isolados para nossos projetos Python. Para instalá-lo, execute o seguinte comando:
comando de instalação do pyenv virtualenv
2.4 Instalando as dependências do projeto
Agora precisamos instalar as dependências do nosso projeto. Execute o seguinte comando:
comando de instalação das dependências do projeto
3. Inicializando o projeto
Agora que já configuramos o ambiente, podemos iniciar nosso projeto. Vamos criar um diretório vazio e, em seguida, criar o ambiente virtual. Siga os passos abaixo:
3.1 Criando um diretório vazio
Para criar um diretório vazio, execute o seguinte comando:
comando de criação do diretório vazio
3.2 Criando um ambiente virtual
Agora precisamos criar um ambiente virtual utilizando o pyenv virtualenv. Para isso, execute o seguinte comando:
comando de criação do ambiente virtual
3.3 Ativando o ambiente virtual
Para ativar o ambiente virtual, execute o seguinte comando:
comando de ativação do ambiente virtual
Agora que estamos com o ambiente virtual ativado, podemos prosseguir para o próximo passo.
4. Importando as dependências
Para começarmos a criar nosso chatbot clone, precisamos importar as dependências necessárias para o projeto. Vamos fazer isso no arquivo main.py
. Siga os passos abaixo:
4.1 Importando as bibliotecas necessárias
No arquivo main.py
, importe as seguintes bibliotecas:
import typer
import openai
import os
4.2 Configurando as chaves de API
Agora precisamos configurar as chaves de API do OpenAI. Primeiro, crie um arquivo chamado .env
na raiz do seu projeto. Em seguida, adicione sua chave de API seguindo o formato abaixo:
OPENAI_KEY=sua_chave_de_api
Lembre-se de substituir sua_chave_de_api
pela chave de API fornecida pelo OpenAI.
5. Criando a função de chat interativo
Agora que já importamos as dependências necessárias, vamos criar a função responsável por receber o input do usuário e chamar o modelo de chat do OpenAI para gerar a resposta. Vamos fazer isso no arquivo main.py
. Siga os passos abaixo:
5.1 Usando o Typer para receber o input do usuário
Utilizaremos a biblioteca Typer para facilitar a criação de uma interface de linha de comando para nosso chatbot clone. Primeiro, vamos criar uma função chamada interative_chat
e decorá-la com o decorator @typer.command()
. Isso permitirá que nossa função seja chamada a partir da linha de comando.
@typer.command()
def interactive_chat():
# código para receber o input do usuário
Dentro da função interactive_chat
, vamos utilizar a função typer.Prompt()
para receber o input do usuário. Vamos exibir uma mensagem de boas-vindas e solicitar que o usuário digite sua pergunta. Adicione o seguinte código:
@typer.command()
def interactive_chat():
typer.echo("Bem-vindo(a) ao Chatbot Clone!")
question = typer.prompt("Digite sua pergunta:")
5.2 Chamando o modelo de chat do OpenAI
Agora que já recebemos a pergunta do usuário, vamos chamar o modelo de chat do OpenAI para gerar a resposta. Vamos utilizar a biblioteca openai
e a função openai.Completion.create()
para isso. Adicione o seguinte código:
@typer.command()
def interactive_chat():
typer.echo("Bem-vindo(a) ao Chatbot Clone!")
question = typer.prompt("Digite sua pergunta:")
# Chamar o modelo de chat do OpenAI e obter a resposta
response = openai.Completion.create(
engine="text-davinci-004",
prompt=question,
max_tokens=50
)
answer = response.choices[0].text.strip()
5.3 Manipulando a resposta do modelo
A resposta do modelo do OpenAI é uma STRING que pode conter informações extras, como quebras de linha e caracteres especiais. Vamos remover esses elementos indesejados e exibir apenas a resposta final. Adicione o seguinte código:
@typer.command()
def interactive_chat():
typer.echo("Bem-vindo(a) ao Chatbot Clone!")
question = typer.prompt("Digite sua pergunta:")
response = openai.Completion.create(
engine="text-davinci-004",
prompt=question,
max_tokens=50
)
answer = response.choices[0].text.strip()
# Remover quebras de linha e caracteres especiais
answer = answer.replace("\n", "")
answer = answer.replace("\t", "")
typer.echo(answer)
Agora a função interactive_chat
está pronta para ser executada a partir da linha de comando. Vamos testar nosso chatbot clone!
6. Melhorando a memória do chatbot
Até agora, nosso chatbot clone tem um problema de memória de curto prazo. Ele não é capaz de lembrar as perguntas anteriores para responder perguntas relacionadas. Vamos corrigir isso adicionando contexto às mensagens. Siga os passos abaixo:
6.1 Adicionando contexto às mensagens
Para adicionar contexto às mensagens, vamos modificar o prompt enviado ao modelo de chat do OpenAI. Vamos incluir a pergunta atual e as mensagens anteriores na chamada da API. Adicione o seguinte código:
@typer.command()
def interactive_chat():
typer.echo("Bem-vindo(a) ao Chatbot Clone!")
question = typer.prompt("Digite sua pergunta:")
messages = [{"role": "system", "content": "Você está conversando com um chatbot clone."}]
user_message = {"role": "user", "content": question}
messages.append(user_message)
response = openai.Completion.create(
engine="text-davinci-004",
messages=messages,
max_tokens=50
)
answer = response.choices[0].text.strip()
answer = answer.replace("\n", "")
answer = answer.replace("\t", "")
typer.echo(answer)
6.2 Armazenando mensagens anteriores
Além de adicionar o contexto à chamada da API, também precisamos armazenar as mensagens anteriores para que possamos incluí-las na próxima pergunta. Vamos fazer isso utilizando uma lista chamada messages
. Adicione o seguinte código antes da linha response = openai.Completion.create()
:
@typer.command()
def interactive_chat():
typer.echo("Bem-vindo(a) ao Chatbot Clone!")
question = typer.prompt("Digite sua pergunta:")
messages = [...]
# Armazenar as mensagens anteriores
for message in response['choices'][0]['message']:
messages.append(message)
response = openai.Completion.create(
...
)
...
6.3 Testando a nova funcionalidade
Agora que já adicionamos contexto às mensagens e armazenamos as mensagens anteriores, podemos testar nosso chatbot clone. Execute o seguinte comando para iniciar o chat:
python main.py interactive_chat
O chatbot responderá à sua pergunta e você poderá fazer mais perguntas relacionadas para ver a capacidade de memória melhorada. Experimente e divirta-se!
7. Especificando parâmetros personalizados