O autor selecionou o Programa de Socorro Direto para receber uma doação como parte do programa Escreva por Doações.
Introdução
Os modelos GPT da OpenAI ganharam popularidade devido ao seu amplo uso na geração de conteúdo de texto para várias tarefas, como redação de e-mails, resposta a perguntas frequentes de atendimento ao cliente e tradução de idiomas, para citar algumas.
Esses modelos GPT são geralmente utilizados por meio do ChatGPT, um chatbot lançado pela OpenAI, ou por meio de APIs e bibliotecas que fornecem maior controle. Este tutorial irá guiá-lo sobre como aproveitar esses modelos usando a API da OpenAI dentro do seu projeto web Django. Você aprenderá como chamar a API de Completamento de Chat usando diferentes parâmetros e como formatar e utilizar suas respostas.
Ao final deste tutorial, você terá criado um endpoint do Django que, quando chamado, envia uma solicitação para a OpenAI para construir uma história curta usando as palavras fornecidas e retorna sua resposta.
Pré-requisitos
Para concluir este tutorial, você precisará:
-
Um projeto Django existente. Se estiver começando do zero, você pode configurar um projeto Django seguindo o tutorial como configurar um ambiente de desenvolvimento Django.
-
Uma conta OpenAI: Acesse o site da plataforma OpenAI e procure pelo botão ‘Cadastre-se’. Após se cadastrar, você deve verificar seu endereço de e-mail e fornecer informações pessoais.
-
Uma chave de API da OpenAI: Depois de configurar sua conta, faça login e acesse a seção de Chaves de API do seu painel. Clique em ‘Criar nova chave secreta’. Sua chave de API será gerada e terá um formato semelhante a
sk-abcdefghijklmnop
. Certifique-se de salvar esta chave em um local seguro, pois você não poderá vê-la novamente. -
O pacote Python da OpenAI: Se você seguiu o tutorial no primeiro pré-requisito, você deverá ter um ambiente virtual chamado
env
ativo dentro de um diretório chamadodjango-apps
. Verifique se o seu ambiente virtual está ativo confirmado que o nome dele aparece entre parênteses no início do prompt do seu terminal. Se não estiver ativo, você pode ativá-lo manualmente executando o comando:
No seu terminal, a partir do diretório django-apps
. Depois que o seu ambiente estiver ativo, execute o seguinte para instalar o pacote Python da OpenAI:
Passo 1 — Fazendo chamadas para a OpenAI
Neste passo, você irá adicionar sua chave de API da OpenAI ao cliente da OpenAI e fazer uma chamada de API simples para a API de Completude de Conversa. Você também examinará a resposta que recebe da API.
Para começar, abra seu interpretador Python:
Primeiro, importe o cliente da OpenAI e adicione sua chave de API ao cliente:
Substitua "sua-chave-de-api"
pela chave de API real que você obteve da plataforma OpenAI.
Agora, vamos fazer uma chamada de API para a API de Completude de Conversa. Use o método chat.completions.create()
:
No código acima, especificamos o modelo a ser utilizado como gpt-3.5-turbo
, adicionamos um único objeto mensagem contendo o papel usuário
(outras opções são sistema
e assistente
) e o conteúdo / prompt contar de 1 a 10
.
Para ver a resposta da chamada de API, você pode imprimir a mensagem de resposta, que deve conter os números de 1 a 10 em uma lista bem pequena:
Saída:
Parabéns! Você fez com sucesso uma chamada de API simples para a OpenAI e obteve uma resposta. Formataremos e utilizaremos a resposta da API para criar uma pequena história nos próximos passos.
Passo 2 — Trabalhando com parâmetros
Agora que você fez com sucesso uma chamada de API simples para a API de Completude de Chat, vamos explorar como trabalhar com parâmetros para personalizar o comportamento do modelo. Existem vários parâmetros disponíveis que permitem controlar a geração de texto. Vamos dar uma olhada nos três abaixo.
1. Temperatura: O parâmetro de temperatura determina o quão aleatório é o conteúdo gerado. Um valor de temperatura mais alto, como 0.8, dará respostas mais diversas e criativas, enquanto um valor de temperatura mais baixo, como 0.1, produzirá respostas mais semelhantes. Por exemplo:
Vamos tentar temperature=0.1
novamente para ver o texto recém-gerado:
O texto acabou sendo o mesmo. Agora, vamos tentar temperature=0.8
duas vezes:
2. Máximo de tokens: Isso permite limitar o comprimento do texto gerado. Definir um valor específico garante que a resposta não exceda um certo número de tokens. Os tokens são proporcionais ao número de palavras na resposta. Por exemplo:
Alterando o valor para 20:
3. Fluxo: Isso determina se as respostas devem ser transmitidas ou retornadas. Quando definido como True
, a resposta da API será transmitida, o que significa que você receberá a saída em pedaços conforme ela é gerada. Isso é útil para conversas longas ou aplicações em tempo real. Para habilitar o streaming, adicione o parâmetro stream
com um valor de True
na chamada da API. Por exemplo:
No código acima, a variável chunk_message
contém o conteúdo da mensagem em cada fragmento retornado pela API. Antes de adicioná-lo à lista collected_messages
, verificamos se o fragmento é None
, já que o conteúdo do último fragmento geralmente é None
.
Utilizando esses parâmetros, você pode personalizar o comportamento do modelo e controlar as respostas geradas para melhor atender à sua aplicação ou projeto. Experimente diferentes valores para obter os resultados desejados.
Na próxima etapa, forneceremos algum contexto ao modelo na forma de um prompt de sistema.
Etapa 3 — Criando um prompt de sistema
Nesta etapa, combinaremos todas as informações que aprendemos e criaremos um prompt de sistema que fornece contexto ao modelo GPT, informando seu propósito e especificando suas regras.
Primeiro, vamos criar um módulo Python contendo uma função para lidar com essa tarefa. Feche o interpretador e crie um novo arquivo chamado story_generator.py
no diretório do seu projeto Django.
Em seguida, você pode adicionar a chave da API do OpenAI às suas variáveis de ambiente para não adicioná-la diretamente ao arquivo Python:
Abra o arquivo story_generator.py
e dentro dele, crie um cliente do OpenAI e defina uma função chamada generate_story
que receba uma coleção de palavras como entrada:
Nesta função, chamamos uma função separada, get_short_story
, para fazer a chamada à API da OpenAI para a história e depois outra função, format_response
, para formatar a resposta da API.
Agora, vamos nos concentrar na função get_short_story
. Adicione o seguinte ao final do seu arquivo story_generator.py
:
Nesta função, primeiro configuramos o prompt do sistema, que informa ao modelo sobre a tarefa que precisa executar e especifica o tamanho que a história deve ter. Em seguida, passamos este prompt do sistema para a API de Completude de Conversa e retornamos sua resposta.
Por fim, podemos implementar a função format_response
. Adicione o seguinte ao final do seu arquivo story_generator.py
:
Agora você pode testar estas funções chamando a função generate_story
, passando uma coleção de palavras como argumento, e imprimindo sua resposta. Adicione o seguinte ao final do seu arquivo story_generator.py
:
Agora salve e saia do arquivo. Execute o script para ver a história gerada:
Saída:
Bastante interessante! Vamos excluir a linha com a instrução print
, já que vamos chamar a função generate_story
a partir de uma visualização do Django. Remova a linha destacada do seu arquivo story_generator.py
:
Sinta-se à vontade para experimentar com o prompt do sistema e adicionar mais contexto e regras para melhorar as histórias geradas.
Continue para o próximo passo para integrar o módulo story_generator
ao seu projeto Django.
Passo 4 – Integração com uma visualização de back-end:
Você deve criar uma visualização do Django e uma rota de URL para integrar o módulo story_generator
ao seu projeto Django. Na visualização, você extrairá as palavras esperadas da solicitação, chamará a função generate_story
e retornará a resposta.
Primeiro, abra o arquivo views.py
no diretório do seu aplicativo Django. Importe os módulos necessários e adicione uma função de visualização chamada generate_story_from_words
:
Em seguida, abra o arquivo urls.py
e adicione um padrão de URL para a visualização generate_story_from_words
:
Agora, você pode solicitar o endpoint /generate-story/
. Por exemplo, para testar usando o curl, você pode fazer uma solicitação GET para o endpoint com as palavras esperadas como parâmetro de consulta. Abra seu terminal e execute o seguinte comando:
Certifique-se de substituir "http://seu_domínio"
pelo domínio real onde seu projeto Django está hospedado. As palavras "gato, livro, computador, sol, água"
representam as palavras esperadas com as quais você deseja gerar uma história. Você pode alterá-las para qualquer palavra que preferir.
Após executar o comando, você deve ver a resposta do servidor, que conterá a história gerada:
Saída:
Conclusão
Depois de concluir este tutorial, você aprendeu como integrar modelos OpenAI GPT em seu projeto Django usando a API OpenAI. Você fez chamadas para a API de Completamento de Chat, personalizou o comportamento do modelo trabalhando com parâmetros como temperatura e máximo de tokens, e criou um prompt de sistema para fornecer contexto ao modelo. Você também integrou o módulo story_generator
em seu projeto Django. Agora, você pode gerar contos curtos solicitando o endpoint /generate-story/
com as palavras esperadas como parâmetro de consulta.
Para aprimorar ainda mais seu projeto Django, você pode explorar funcionalidades adicionais da API OpenAI e experimentar com diferentes prompts de sistema e parâmetros para gerar histórias únicas e criativas.