Alura > Cursos de Inteligência Artificial > Cursos de IA para Programação > Conteúdos de IA para Programação > Primeiras aulas do curso GPT e Python: criando ferramentas com a API

GPT e Python: criando ferramentas com a API

Playground e a API da OpenAI - Apresentação

Olá, pessoal! Eu sou o instrutor André Santana e te acompanharei no curso de OpenAI.

Audiodescrição: André se identifica como um homem branco. Tem olhos e cabelos castanhos e uma barba comprida. Usa óculos de armação redonda e uma camiseta azul-escura. Ao fundo, estúdio com iluminação azulada. À direita, uma estante com decorações.

O que vamos aprender?

O conteúdo deste curso é para quem gosta de Python e quer trabalhar com IA gerativa, aproveitando as principais novidades da OpenAI, integrando-a com projetos - sejam eles pessoais ou que resolvam algum tipo de problema no seu trabalho no mercado.

Você aprenderá sobre a estrutura principal da OpenAI, como atuar com a parte de engenharia de prompts (instruções) e construir templates (modelos) para se comunicar com a IA gerativa de forma adequada.

Além disso, ensinaremos como trabalhar e contabilizar o uso de tokens de forma correta, integrar todas essas ações em um projeto e trabalhar com processamento de lotes e informações em sequência.

Também vamos aprender a utilizar o modelo adequado para cada tipo de problema envolvendo IA e como contornar ou controlar alguns tipos de exceção através do controle de erros.

Todos esses conteúdos serão abordados de forma prática em três projetos diferentes.

O primeiro deles envolve um categorizador de produtos de um e-commerce, o Ecomart. O segundo projeto avalia sentimentos de reviews (avaliações) de pessoas usuárias desse mesmo e-commerce. Por fim, teremos um projeto envolvendo análise de fraude com compra de cartão de crédito, onde verificaremos se a transação que foi gerada através de uma compra é uma possível fraude ou pode ser aprovada.

Lembre-se que também podemos contar com o fórum e outras atividades que não se limitam apenas às nossas aulas e os vídeos. Aproveite toda a comunidade do Discord da Alura para trocar informações com outras pessoas que também estão aprendendo neste curso.

Vamos estudar!

Playground e a API da OpenAI - Criação de conta e Playground

Vamos iniciar o processo de compreensão de como funciona a plataforma da OpenAI, quais são os recursos envolvidos que podemos utilizar dentro da plataforma online e como podemos fazer esse primeiro acesso com a API, além de controlar os custos para utilização da IA generativa em seus projetos.

Explorando a OpenAI

Nesse primeiro momento, vamos explorar a plataforma OpenAI.

O primeiro passo para realização de qualquer operação é fazer login, caso já possua uma conta ou criar uma nova. No menu superior, podemos acessar a aba de "Log In". Caso já tenha uma conta, é possível fazer a autenticação com um e-mail ou com uma conta da Google, Microsoft ou Appl. Também é possível criar uma nova conta, clicando em "Sign up".

Vamos acessar a nossa conta, com as nossas credenciais, e uma vez que esse processo seja realizado com sucesso, vamos optar pela opção de "API". Na opção de API, vamos agora acessar alguns recursos que são importantes para dar os primeiros passos dentro do universo da IA generativa.

Organização

O primeiro item que vamos acessar será no menu da esquerda. Na aba de "Settings" (configurações), teremos acesso a algumas informações que são relevantes.

A primeira delas é a aba de "Organization" (organização). Sempre teremos algumas informações relacionadas ao nome da organização que tem controle sobre a conta, e o identificador dessa organização.

É importante levar em consideração que todas as interações realizadas através de uma organização são compartilhadas com as pessoas que fazem parte desse mesmo time.

Caso queiram gerenciar melhor os recursos, também é importante concentrar todas as interações para poder evoluir a conta em uma mesma organização.

Time

Outra etapa importante desse mesmo menu, logo abaixo da organização, temos a aba de "Team" (time), onde podemos adicionar pessoas novas ao time, garantir que tenhamos papéis com responsabilidades e acessos diferentes.

Isso nos ajuda a organizar melhor esse processo de interação entre as pessoas que participarão de um mesmo projeto e concentrar o mesmo fluxo de recursos na mesma organização e no mesmo time.

Limites

Um terceiro espaço importante a observar nas configurações do OpenAI é a aba de "Limits" (limites), que está abaixo da aba de time.

Ela traz algumas informações bem relevantes, como os tipos de modelo que estão disponíveis para essa conta, a quantidade de tokens e requisições que podemos fazer por minuto ou por dia, e a classificação de qual é o tipo de tier, ou seja, a camada que essa conta tem acesso - dado o tempo que ela foi criada e a quantidade de recursos que já foram utilizados.

Na seção "Usage limits" (limites de uso), é possível identificar o limite de recursos que podem ser gastos no mesmo dia.

Logo baixo, temos uma seção de "Increasing your limits" (incremento dos limites), onde podemos solicitar para a OpenAI que ela libere mais recursos, e, ao mesmo tempo, podemos ver qual é o tier que a organização está acessando ou ela tem disponível nesse momento.

Camadas de acesso

Há uma novidade que foi implementada recentemente na OpenAI para as pessoas que estão querendo dar os primeiros passos no uso desse tipo de tecnologia, que envolve camadas diferentes de acesso.

Vamos conferir agora quais são essas camadas, como podemos migrar de uma camada para outra, e quais são os recursos que estão disponíveis para quem está no tier gratuito.

Ao acessar a documentação sobre Usage Tiers, teremos acesso às informações que estão disponíveis para cada tier que teremos acesso.

Quando criamos uma conta, começamos na camada free (gratuita), onde temos acesso a um limite de até 100 dólares por mês, pois o uso do recurso da OpenAI é pago por demanda.

Quanto mais utilizamos as requisições, maior será o custo geral.

E cada tipo de acesso a cada API diferente gera um custo distinto, que será cobrado de acordo com o volume de dados consumidos.

Na seção "Usage tiers", conseguimos acessar quais são os recursos necessários, quais são os requisitos também que são necessários para poder subir para cada uma das camadas.

Na aba de seleção, podemos conferir quais são os recursos disponíveis por API e por modelo para cada uma das camadas.

Para quem começar no tier gratuito, terá acesso ao gpt-3.5-turbo, não terá acesso ainda ao gpt-4. Em uma tabela, também teremos o número de requisições por minuto (RPM), requisições por dia (RPD), e de tokens por minuto (TPM), que temos acesso para cada um dos modelos.

Quanto maior for o tier acessado, mais recursos teremos disponíveis, e por consequência podemos utilizar a IA generativa pela OpenAI para aplicações cada vez mais complexas.

Lembramos que vocês têm disponível toda a documentação da OpenAI, com uma série de recursos que vamos apresentar ao longo da formação, mas infelizmente todo o material está disponível apenas em inglês.

Além disso, vamos trazer alguns materiais complementares que poderão ser utilizados ao longo do curso.

Próximos passos

No nosso próximo vídeo, vamos trabalhar em cima do Playground para entender como funciona esse processo de enviar mensagens para a OpenAI e consumir através do GPT. Até lá!

Playground e a API da OpenAI - Explorando o Playground: GPT 3.5, GPT 4, chat

Antes de começar a trabalhar no Playground, vamos analisar o modelo que usaremos para realizar as primeiras interações e entender a diferença em relação ao modelo mais recente, o GPT-4.

Modelos da OpenAI

Para acessar essas informações, podemos explorar a documentação sobre modelos. Na aba da esquerda, logo abaixo de "Get Started", temos a aba "Models" onde temos acesso a uma série de modelos distintos que fazem parte da base de treinamento da OpenAI.

Na seção "Overview" (visão geral), teremos acesso a todos os tipos de modelos disponíveis, tanto para esta conta quanto para contas com diferentes camadas de acesso.

O modelo principal da OpenAI hoje é o GPT-4 ou GPT-4 Turbo, que tem acesso a mais informações distintas e é o modelo com a maior fonte de treinamento utilizada para a IA generativa de texto da OpenAI.

Temos um modelo que é mais básico, o GPT-3.5, que é o modelo que vamos usar. Além dele, temos modelos como o DALL-E, usado para criar novas imagens, ou Whisper, usado para interpretar ou converter áudio em texto.

Além disso, temos outros tipos de modelos, como os usados para embeddings (incorporações) ou até modelos que foram depreciados, como o GPT-3.

Se acessamos o GPT-3.5, que utilizaremos no Playground, teremos acesso a algumas informações, como o nome do modelo (útil quando o usamos com alguma API, utilizando código de programação) e uma descrição desse modelo.

Por exemplo, o modelo GPT-Turbo 3.5 atualizado permite o uso de um pouco mais de 16 mil tokens.

Token não necessariamente é uma palavra, existe uma regra de agrupamento, que é feita pelo contexto desses símbolos. Aprenderemos mais adiante sobre como eles funcionam.

Também informa até quando esse modelo foi treinado.

Além disso, temos acesso a outros tipos de informação, mais abaixo, que também podem nos ajudar a entender como os outros modelos funcionam e as diferenças entre eles.

Explorando o Playground

Agora, vamos acessar o Playground, para que possamos realmente interagir com a API do OpenAI.

Por padrão, o Playground é exibido no modo de assistente, é uma versão nova que também exploraremos mais adiante. Porém, neste momento, o que nos interessa é a aba de chat.

Ao clicar na aba de chat, somos apresentados a três sessões distintas. A primeira delas, é o "System" (sistema) à esquerda. Nessa parte, incluímos informações sobre a personalidade que queremos empregar no nosso chatbot ou alguma orientação sobre o tipo de saída que esperamos dele.

No centro, na parte do "User" (usuário), podemos dar instruções para que o chatbot responda, como, por exemplo, listar três produtos sustentáveis. Além disso, podemos ter uma série de mensagens distintas que manterão o histórico dessa interação com a OpenAI.

À direita, onde temos o nosso "Model" (modelo), podemos escolher entre os modelos disponíveis para a nossa conta, de acordo com o tierlist. A partir disso, cada modelo terá um custo diferente e uma resposta mais ou menos adequada de acordo com as necessidades do nosso projeto.

Também temos várias outras opções abaixo, que discutiremos à medida que interagimos com o Playground.

Para começar, temos uma mensagem que é "Liste três produtos sustentáveis" na parte de "User". Vamos começar enviando essa mensagem para o OpenAI.

Liste 3 produtos sustentáveis

Quando clicamos em "Submit" para enviar (ou atalho "Ctrl + Enter"), ele nos retorna uma lista de elementos com produtos sustentáveis e uma descrição para cada um deles.

  1. Painéis solares: Os painéis solares são uma fonte de energia renovável e sustentável. Eles convertem a energia do sol em eletricidade que pode ser usada para alimentar a casa ou o escritório, reduzindo assim a dependência de combustíveis fósseis e diminuindo a pegada de carbono.
  2. Produtos de limpeza ecológicos: Atualmente, existem várias opções de produtos de limpeza sustentáveis no mercado. Esses produtos são feitos com ingredientes naturais e biodegradáveis, o que significa que não causam impacto negativo no meio ambiente quando descartados. Eles são uma alternativa mais saudável e sustentável aos produtos químicos de limpeza convencionais.
  3. Mobiliário feito de materiais reciclados: Muitas empresas estão agora produzindo mobiliário usando materiais reciclados, como plástico reciclado, madeira recuperada e tecidos feitos de fibras recicladas. Esses produtos ajudam a reduzir a quantidade de resíduos enviados para aterros sanit

Se quisermos formatar essa lista para que ela saia com uma caracterização diferente ou seguindo algum padrão de saída, podemos usar um prompt para que nosso sistema entenda qual é o tipo de formato ou template que esperamos para a saída dessa mensagem.

Em "System", vamos colar uma entrada de texto que chamamos de prompt que nos dá essas informações sobre o comportamento esperado para o nosso sistema.

Assuma que você é um atendente de e-commerce.

Para lista, mostre apenas o nome do produto sem descrição.

Exemplo de Saída
1. Escova de Dentes

Vamos copiar novamente essa primeira mensagem de "User" e adicionar uma nova mensagem no papel de usuário e enviar essa mensagem para o OpenAI.

  1. Escova de Dentes de Bambu: Essas escovas de dentes são feitas com cabo de bambu, uma matéria-prima sustentável que cresce rapidamente e não requer o corte de árvores […]

Note que, mesmo dando a informação de como queremos o formato de saída, o assistente, que é quem responde à nossa mensagem, ainda nos dá uma resposta fora do nosso formato.

Isso acontece muito pelo tipo de modelo e pela sofisticação dos termos que estamos usando, que o GPT-3.5 talvez não consiga atender a esses requisitos para esse tipo de prompt.

Uma alternativa é alterar essa resposta no painel "Model" à direita e migrar para o gpt-4. Vamos copiar novamente esse prompt, agora com o modelo já alterado à direita, e adicionar uma nova mensagem com o mesmo prompt no papel de usuário e enviar novamente.

  1. Garrafa de Água Reutilizável
  2. Canudo de Aço Inox
  3. Sacola Retornável de Algodão

Quando fazemos esse envio, agora o assistente nos retorna uma lista apenas com os nomes, seguindo o padrão que orientamos para essa descrição junto com a entrada do sistema.

Em suma, temos dois papéis distintos: o sistema define o comportamento, o template, o formato ou regras para esse comportamento e o usuário assume o papel de quem enviará a mensagem para o chat, para o OpenAI ou para IA generativa poder construir as respostas.

Maximum length

O primeiro parâmetro que vamos explorar é o "Maximum length" (comprimento máximo) que está marcado por padrão com 256. Isso define a quantidade de tokens que podemos utilizar dentro da construção de uma resposta.

Por exemplo, ao alterar esse atributo para 10 tokens e copiar esse mesmo texto que temos na aba de mensagem e pedir para o nosso chatbot gerar uma nova resposta com o GPT, note o que acontecerá de diferente:

  1. Shampoo Sólido

Ao enviar a resposta, ele truncará a informação antes de trazer o segundo produto.

O maximum length define o número máximo de tokens que podemos utilizar e esperar como resposta da IA generativa.

Agora que já entendemos para que serve o maximum length, vamos voltar para o tamanho padrão que é 256 e explorar agora outros tipos de parâmetros que podemos definir para configurar o uso do nosso modelo com o OpenAI.

Temperature

Outro parâmetro a que temos acesso é a "Temperature" (temperatura) que vai definir o quão criativo ou o quão determinístico ou não esse modelo será na hora de compor uma resposta a partir de uma entrada do usuário.

Quanto maior for esse valor, maior será a criatividade desse modelo e quanto mais próximo de zero, mais determinístico, mais conservador esse modelo será na hora de compor as informações.

Vamos aumentar a temperatura de 1 para 2 e, depois, pedir para listar novamente três produtos sustentáveis no campo de mensagem para analisar o que ele vai trazer de informação.

  1. Sabonete Reutilizável
  2. Recipiente Retratável Chao Cream nitrogen DouW função curtains pri steakMari egetuelacle […]

A primeira diferença que tivemos nessa saída: ele começou bem com o sabonete reutilizável e, no segundo item, simplesmente saiu do controle, trouxe várias informações distintas, tentou trazer o nome do produto e uma série de termos que nem fazem sentido para todo o escopo que estamos utilizando.

Esse parâmetro mede o grau de aleatoriedade que ele tem para poder construir as informações.

Então, se precisarmos de um tipo de saída que seja muito criativo, podemos aumentar a temperatura, mas levando em consideração que, muito provavelmente, ele vai inventar ou vai utilizar termos que não necessariamente fazem sentido para aquele contexto que estamos criando.

Vamos retornar para a temperatura 1, que é a temperatura que estava antes.

Stop sequence

Agora, vamos explorar outro parâmetro que é o "Stop Sequence" (parar sequência). O que esse parâmetro faz?

Definimos um caractere especial que esperamos que apareça na resposta e ele será usado para interromper e garantir que a informação chegue apenas até aquele caractere, ou seja, a sequência que deve ser interrompida.

Como estamos pedindo para o nosso OpenAI gerar 3 produtos distintos, para testar como isso funciona, podemos definir o número 2 e adicioná-lo ao Stop Sequence.

Quando fazemos essa marcação, se formos gerar novamente uma resposta, ele trará informações até encontrar o número 2. Quando encontrar o número 2, ele interromperá.

Vamos gerar novamente o pedido de uma lista de 3 produtos sustentáveis e verificar qual será a troca de mensagem.

  1. Canecas de Bambu

Ele trouxe a caneca de bambu e não avançou para os outros 2 itens da lista porque encontrou o número 2 e interrompeu a resposta por conta da identificação desse símbolo.

Top P, Frequency Penalty e Presence Penalty

Os últimos três parâmetros são o "Top P", o "Frequency Penalty" (penalidade de frequência) e o "Presence Penalty" (penalidade de presença).

O que eles fazem é nos ajudar a entender qual é o espaço de criatividade que será observado pelo OpenAI na hora de compor uma frase. Isso trabalha em conjunto com a temperatura.

A primeira opção, que é o Top P, define qual será o universo de elementos que nossa IA observará, ou seja, os termos mais próximos. Se o valor for 1, ele observará todo o espaço amostral de palavras. Se for 0.5, observará apenas metade. E, se for 0, não terá nenhum espaço para observação.

Os dois parâmetros abaixo, Frequency e Presence Penalty, trabalham de forma semelhante entre si, sendo que o primeiro evita a repetição de palavras e o segundo evita a repetição de ideias.

Com os valores padrão desses parâmetros, vamos fazer um pedido para o OpenAI que é um pouco diferente:

Descreva o que é uma caneca de bambu para o cliente

Vamos enviar essa mensagem para receber uma resposta.

Uma caneca de bambu é um tipo de recipiente usado para beber que é feito a partir do bambu, uma planta naturalmente sustentável. O bambu cresce mais rapidamente do que a maioria das madeiras, tornando-o uma escolha renovável e ecológica para uma variedade de produtos, incluindo canecas.

Estas canecas são duráveis, leves, biodegradáveis e naturalmente antimicrobianas. Elas são uma ótima alternativa às canecas de plástico ou cerâmica, pois são eco-friendly e trazem um aspecto minimalista e elegante para a mesa. Também são seguras para a máquina de lavar louça e, de uma perspectiva de uso prolongado, podem ajudar a reduzir o uso de materiais descartáveis.

Note que o termo bambu aparece várias vezes. Isso acontece porque não existe uma penalidade para a frequência de uso de termos na composição da resposta. E as ideias, dependendo do texto que vamos utilizando, também não sofrem nenhuma punição porque marcamos que a presença de ideias ou encadeamentos também não sofre nenhuma penalidade.

Se alterarmos esses parâmetros, colocando a Frequency Penalty em 2, que é o valor máximo e a Presence Penalty para 2 também, agora teremos alguma diretriz para o OpenAI para que ela não repita termos e não repita encadeamentos de ideias.

Para testar, vamos adicionar a mesma mensagem que vai pedir para descrever o que é uma caneca de bambu para o cliente e vamos fazer o envio.

Uma caneca de bambu é um copo ou recipiente feito principalmente da fibra do bambu, uma planta fácil e rápido crescimento. Isso a torna sustentável porque o uso de recursos naturais para produzi-la não são esgotados.

É leve porém resistente, sendo boa para usar no dia-a-dia considerando também que possui baixa condutividade térmica - ideal para bebidas quentes manterem-se aquecidas sem transmitir calor excessivo ao exterior da caneca.

Desenhos coloridos e criativos adornam muitas dessas xícaras de café reutilizáveis e laváveis à máquina, oferecendo uma alternativa "verde" às opções descartáveis tradicionais.

Além disso elas podem ser compostadas após seu ciclo útil vida acabar contribuíndo menos com lixo plástico nos oceanos em comparação as suas concorrentes.

Nesse momento, ele ainda vai trazer em algum grau o termo bambu, pois é difícil evitá-lo já que estamos falando desse tipo de produto. Contudo, a IA evita trazer alguns termos repetitivos e tenta explorar mais a criatividade na hora de compor as ideias para poder construir a resposta para o que o nosso cliente pediu.

Esses parâmetros nos ajudam a definir como o modelo vai se comportar e, caso queiram já começar a entender como funciona isso na parte de codificação, a OpenAI também oferece para uma opção na barra superior que é a de "View Code" (visualizar código), onde ela mostra todo esse trecho de conversas que fizemos com a configuração de modelo em algumas linguagens diferentes, como Python ou Node.js.

Isso ajuda a entender como funciona o transporte do que é feito no Playground para aquilo que pode ser implementado em um projeto com linguagem de programação.

Sobre o curso GPT e Python: criando ferramentas com a API

O curso GPT e Python: criando ferramentas com a API possui 113 minutos de vídeos, em um total de 48 atividades. Gostou? Conheça nossos outros cursos de IA para Programação em Inteligência Artificial, ou leia nossos artigos de Inteligência Artificial.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda IA para Programação acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas