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 Java: integre uma aplicação com a OpenAI

GPT e Java: integre uma aplicação com a OpenAI

Recursos da API - Apresentação

Olá, tudo bem? Vamos começar mais um curso aqui na Alura. Meu nome é Rodrigo Ferreira e serei o instrutor que irá te acompanhar nesta jornada

Audiodescrição: Rodrigo se autodeclara como um homem de pele branca. Tem cabelos curtos e castanho-escuros, e não tem barba. Está usando headphone branco e camiseta roxa. Ao fundo, uma parede iluminada de azul com alguns quadros decorativos.

Estamos aqui para convidar você a fazer mais um curso voltado para inteligência artificial com programação.

No caso, utilizaremos a linguagem de programação Java e aprenderemos como desenvolver um código que se integra com a API da OpenAI — a famosa empresa do ChatGPT. Essa empresa possui uma API que permite desenvolver aplicações, seja com Java ou com outras linguagens, e fazer uma integração com essa API para ter acesso aos recursos de IA que ela disponibiliza.

O que vamos aprender?

A ideia central do curso é desenvolver uma aplicação utilizando a linguagem Java e entender como integrar essa aplicação com a API da OpenAI para utilizar esses recursos de inteligência artificial.

Para isso, vamos desenvolver do zero uma aplicação utilizando Java e algumas bibliotecas que vão facilitar nosso objetivo de integrar a aplicação com essa API e usar os recursos dessa ferramenta.

Durante o curso, vamos aprender algumas boas práticas dessa integração e como utilizar o recurso de chat para enviar perguntas e a inteligência artificial da OpenAI gerar respostas.

Então, vamos aprender sobre prompt engineering (engenharia de prompts) e prompt template (template de prompts) para otimizar essas mensagens enviadas na hora de integrar a nossa aplicação com a API.

Nesse processo, vamos entender quais são os modelos do GPT disponíveis nessa API. Utilizaremos a versão 4 e a 4 Turbo, as últimas versões disponíveis no momento da gravação desse curso, para aproveitar ao máximo as mais recentes melhorias desenvolvidas pela OpenAI.

Nós também vamos entender quais são as diferenças entre esses modelos, principalmente em relação aos custos, para que possamos fazer otimizações no código na hora de escolher entre um modelo e outro.

Vamos aprender como funcionam esses custos, e que grande parte deles está relacionada com os tokens. Entenderemos no curso como a OpenAI identifica esses tokens e faz essa cobrança, e como podemos fazer em nosso código uma contagem de tokens para ter uma estimativa de custos e uma escolha dinâmica do modelo a ser utilizado na integração.

Por fim, vamos aprender também sobre tratamento de erros. Como vamos nos conectar com uma API externa que não foi desenvolvida por nós e sobre a qual não temos controle, eventualmente pode acontecer um problema, como a API pode ficar fora do ar, então nosso código deve ser preparado para lidar com essas situações inesperadas. Vamos aprender algumas boas práticas para lidar com erros ao se conectar com a API da OpenAI.

Pré-requisitos

Para conseguir acompanhar o curso com mais tranquilidade, o conhecimento básico necessário é de linguagem Java e orientação a objetos.

Aqui na Alura, temos uma formação focada em Java e orientação a objetos. Com ela, você terá todos os conhecimentos necessários para desenvolver nosso projeto.

Não é preciso ter conhecimentos avançados, nem conhecimentos sobre frameworks como o Spring e JPA, porque o foco não será desenvolver uma aplicação complexa usando essas tecnologias. O foco será na integração de uma aplicação Java com a API. Portanto, apenas conhecimentos básicos de Java e orientação a objetos já serão suficientes.

Também é importante que você conheça o Maven. O conhecimento também não precisa ser aprofundado, pois utilizaremos o Maven como ferramenta para gerenciar as dependências do nosso projeto.

Vamos precisar adicionar dependências no projeto, que serão bibliotecas para nos ajudar com essa integração com a API da OpenAI. Portanto, você precisa ter uma noção do que é o Maven, como funciona a estrutura de diretórios de uma aplicação Java que utiliza o Maven e como funciona a questão de bibliotecas e dependências que podemos adicionar no projeto.

Além disso, como vamos fazer uma integração com uma API, é importante que você também tenha uma noção básica sobre o que é uma API Rest: como ela funciona, noções do protocolo HTTP, o que é a ideia de disparar uma requisição, receber uma resposta, código HTTP. Afinal, nossa integração ocorrerá via API Rest.

Também é necessário ter noções básicas sobre inteligência artificial generativa. Se você está aqui, provavelmente já conhece e deve ter utilizado o ChatGPT. Não vamos ensinar nesse curso o que é o ChatGPT ou o que é a ideia de inteligência artificial; nós vamos apenas usar essa ferramenta.

Esperamos que você goste bastante dessa jornada. Não se esqueça de, ao final, deixar sua avaliação! Ao longo do curso, se você tiver alguma dúvida, pode recorrer ao nosso fórum e também participar da nossa comunidade do Discord.

Tudo pronto?! Nos encontramos na primeira aula!

Recursos da API - Criação e configuração da conta

Vamos iniciar nosso curso, cuja proposta é criar uma aplicação utilizando a linguagem Java, que se integrará com a API da OpenAI. Primeiramente, precisamos conhecer essa API, entender seus recursos e funcionalidades, bem como a maneira de nos integrar a ela. Para isso, nada melhor do que acessar a documentação da OpenAI para aprender sobre essas questões.

Cadastro na OpenAI

Na página inicial do site da OpenAI, encontramos uma propaganda sobre a ferramenta e um menu no topo da página. Nosso foco está na segunda opção, "API", então vamos clicar nela. É a API que vamos utilizar e com a qual vamos criar nosso projeto e realizar as integrações. Esse link conta com um submenu de várias opções — vamos clicar em "Overview" (visão geral).

Ao acessar o Overview da API, somos direcionados para a página que apresenta informações básicas sobre a API da OpenAI. Nesse espaço, encontramos uma explicação detalhada sobre o que é essa API e como ela funciona. Temos também informações sobre os modelos do GPT, o que vamos aprender durante o curso, além de outras ferramentas para geração de imagem e transcrição de áudio.

No final da página, há um link chamado "Get Started" (começar), que é nosso ponto de partida. Vamos clicar nele e nos redirecionar para uma nova aba de cadastro na OpenAI.

Vale lembrar que essa ferramenta é paga e, para utilizá-la, é preciso ter uma conta. Quando criamos uma conta pela primeira vez, inclusive, ganhamos alguns créditos para fazer testes. O importante é ter uma conta cadastrada.

Portanto, caso você ainda não tenha uma conta, é necessário fazer o registro, preenchendo o formulário com endereço de e-mail ou optando por fazer login com o Google, com a conta da Microsoft ou da Apple.

Para ilustrar, vamos fazer um cadastro novo. Se você já tem uma conta no site da OpenAI, pode pular essa parte e apenas realizar o login com seus dados.

No formulário de cadastro, vamos clicar em "Continuar com Google" e escolhemos uma conta do Gmail para vincular ao nosso cadastro. Depois disso, é necessário preencher alguns dados num formulário: nome, sobrenome, organização (opcional) e data de aniversário. Então, clicamos no botão "Agree" (concordar) e o processo de criação de conta é iniciado, assim como em qualquer outro site.

Após a criação da conta, surge um Captcha para garantir que não é um robô que está criando contas e, após resolvê-lo, somos direcionados para a página de boas-vindas. Nela, temos uma dashboard com informações gerais sobre a OpenAI e sobre a plataforma e um menu à esquerda, que permite explorar mais sobre a ferramenta.

Configurando limites de custos

A primeira coisa que você deve fazer após criar a sua conta, ou após logar caso já tenha uma conta, é se informar sobre os custos da API.

Ela não é gratuita, mas, ao criar a conta pela primeira vez, a OpenAI oferece um crédito cujo valor e período de utilização podem variar. No momento da gravação desse vídeo, são 5 dólares por 3 meses, mas isso pode mudar no futuro.

No menu à esquerda, clicaremos na última opção, chamada "Settings"(configurações) > "Billing (faturamento). Nessa área, encontramos informações sobre faturamento, uso de crédito e dados bancários para débito.

Quando os créditos acabarem, será necessário cadastrar um cartão de crédito para continuar utilizando a API. Para isso, clicamos em "Payment Methods" (métodos de pagamento). Caso esteja disponível a opção, surgirá um botão para cadastramento do cartão de crédito, permitindo a continuação da utilização dos recursos. Não faremos isso agora, pois usaremos o crédito do período gratuito.

Outro ponto importante a ser verificado no menu à esquerda é a opção "Limits" (limites), onde é possível configurar limites de utilização de crédito. Esse passo é essencial para evitar surpresas com relação à cobrança.

Caso você já tenha excedido o crédito ou período gratuito e cadastre o cartão de crédito, aparecerão dois campos para habilitar um limite de uso para liberar uma notificação via e-mail caso você atinja esse limite, e um segundo limite para barrar as requisições que você fizer para a API após atingi-lo. Por exemplo, você pode cadastrar um limite máximo de 10 dólares; após gastar esse valor, suas requisições são bloqueadas.

Com a conta criada, limites configurados e cartão de crédito cadastrado (quando necessário), temos tudo pronto para utilizar a ferramenta.

Na sequência, aprenderemos como funciona essa API. Agora que já temos a conta criada, como fazemos para usá-la? Escrevemos nosso código usando Java ou outras linguagens de programação? Há outra forma de conhecer melhor, sem ter que ler a documentação? Vamos explorar essas questões com calma na sequência.

Recursos da API - Chat completion

Agora que já aprendemos a criar uma conta, podemos começar a utilizar os recursos que essa ferramenta nos disponibiliza.

Observação: O instrutor deslogou da conta criada no vídeo passado e logou com sua conta pessoal. Essa conta já possui um cartão de crédito cadastrado e já passou pelo período gratuito. Com isso, temos acesso a mais recursos disponíveis para conhecer ao longo do curso.

Detalhes de cobrança

Já que estamos na tela de Billing (cobrança), vamos explorar os detalhes mencionados no vídeo anterior. Nessa conta, mostra-se no visor de cobrança que, nesse mês, até o momento, gastamos 5 dólares e 52 centavos.

Abaixo do visor de cobrança, há a opção de Payment Methods (Métodos de Pagamento). Clicando nela, vamos para uma nova aba que mostra o cartão cadastrado. Se clicarmos no botão "Add payment method", podemos adicionar outros cartões de crédito e métodos de pagamento.

No menu à esquerda, vamos clicar em "Limits" para voltar àquela tela de limites. Vamos entender melhor sobre os campos mencionados no vídeo anterior.

Nessa conta, já aparecem esses dois campos na metade inferior da página: "Set a monthly budget" (configure um orçamento mensal) e "Set an email notification threshold" (defina um limite de notificação por e-mail).

Na conta do instrutor, o limite para notificação por e-mail está configurado como 10 dólares. Portanto, ao atingir esses 10 dólares no mês, a ferramenta enviará um e-mail para nos alertar.

Já o orçamento mensal é o limite que, de fato, não poderá ser ultrapassado. Nessa conta, esse orçamento está configurado como 20 dólares. Portanto, se por acaso, dentro de um mês, ultrapassarmos esses 20 dólares, a ferramenta bloqueia as requisições, para que não ultrapasse esse valor estipulado.

Isso serve para termos controle de gastos, para não exceder o limite do nosso cartão de crédito e ter uma surpresa quando a fatura fechar com um valor gigantesco. Portanto, lembre-se de configurar esses limites na sua conta!

Modelo de Chat

Após criar a conta e entender como funciona a cobrança, podemos começar a, de fato, utilizar a ferramenta.

Mas, antes de escrever o código em Java da nossa aplicação, primeiro precisamos conhecer os recursos disponíveis nessa API da OpenAI. Precisamos entender como funciona e como podemos testar.

Não precisamos ler toda a documentação para entender. A própria ferramenta tem um recurso chamado "Playground" que permite fazer testes no próprio navegador. Com isso, conseguimos entender melhor o funcionamento dessa ferramenta antes de partir para o código. Com isso, conseguiremos escrever o código com mais assertividade, sabendo exatamente o que precisamos fazer.

Para acessar esse recurso, clicamos em "Playground" no menu à esquerda. Nessa nova página, no canto superior esquerdo da tela, há um menu suspenso com o texto "Assistants". Ele serve para trocar o modelo que vamos utilizar; ou seja, por padrão, o modelo configurado é o de assistente.

Vamos trocar para o modelo de "Chat". Queremos utilizar a ferramenta nesse modo de chat, onde a pessoa usuária faz uma pergunta e a ferramenta vai gerar uma resposta baseada no GPT.

Após fazer isso, a página vira um chat com algumas opções e recursos diferentes. Há um campo à esquerda chamado System, a parte central tem o formato de chat, e à direita temos um menu com vários campos de configurações ajustáveis. Vamos, com calma, entender como funciona essa ferramenta.

No campo "User", no centro superior da tela, é onde vamos simular uma pessoa usuária enviando uma pergunta para a API.

Prompts no modelo de Chat

A partir de agora, vamos começar a trabalhar no contexto da nossa aplicação, o projeto do nosso curso, que será um e-commerce. Ou seja, vamos imaginar que trabalhamos em um e-commerce e queremos usar a integração com a OpenAI para melhorar nossos serviços.

Vamos fazer alguns testes nesse chat primeiro para entender como essa ferramenta funciona e como ela pode ajudar no nosso trabalho nesse e-commerce fictício.

Imagine que vamos usar a ferramenta para gerar nomes de produtos. Ao lado de "User" temos um campo de texto editável em que escreveremos esse pedido:

User: Gere cinco produtos fictícios para um e-commerce.

Para enviar essa pergunta e ver a resposta que a API vai gerar usando o modelo do GPT, clicamos no botão verde "Submit" na parte inferior do centro da tela. Temos que esperar um pouco para ele começar a gerar a resposta.

A resposta começa a aparecer na tela sob o nome de usuário "Assistant". Para essa pergunta, a ferramenta gerou uma lista de cinco produtos diferentes com uma pequena descrição para cada um:

Assistant:

1. Smart Fridge Pro: Uma geladeira inteligente que se conecta ao seu smartphone e permite controlar a temperatura, fazer compras online diretamente do seu painel digital e enviar lembretes para repor itens essenciais.

2. Robô de Limpeza MaxClean: Um robô de limpeza autônomo com funções avançadas, como mapeamento inteligente da área, limpeza programada, detecção de obstáculos e capacidade de limpar diferentes tipos de superficie.

3. Pulseira Fitness FitLife: Uma pulseira de atividade física com monitoramento contínuo de frequência cardíaca, contador de passos, calorias queimadas, distância percorrida, além de oferecer recursos de monitoramento do sono e uma interface intuitiva no aplicativo do celular.

4. Óculos de Realidade Virtual 360Vision: Óculos de realidade virtual de última geração, oferecendo uma experiência imersiva em 360 graus com jogos, filmes e aplicativos. Possui ótima qualidade de imagem eé compatível com a maioria dos smartphones.

5. Drone

No quinto produto, ele começou a digitar, mas parou antes de dar uma descrição. Depois vamos entender o motivo disso.

Mas perceba: aqui no Playground já podemos "brincar", de fato, com essa ferramenta, para explorar e entender seu funcionamento. Se já usou o chat GPT da OpenAI, deve ter reconhecido esse esquema de perguntas e respostas geradas pelo sistema com base no modelo treinado.

Mas temos um problema. Ele gerou os cinco produtos, mas não queríamos que ele gerasse essas descrições, queríamos só o nome do produto. Mas não queremos ter que ficar digitando exatamente o nosso pedido, ajustando as regras toda vez que mandamos uma pergunta.

Regras de Sistema

Para sanar esse problema, há uma maneira de pré-determinar essas regras. O campo à esquerda, chamado System, é onde podemos fazer uma configuração de regras para determinar o comportamento das respostas do sistema.

Podemos escrever, por exemplo, que ele vai gerar apenas o nome dos produtos. Então, no prompt do usuário, não precisamos repetir as regras toda vez. Para cada pergunta que a pessoa usuária enviar, ele vai seguir as regras descritas no campo de System.

Então, vamos descrever o seguinte nesse campo:

System: Você é um gerador de produtos fictícios para um e-commerce e deve gerar apenas o nome dos produtos solicitados pelo usuário.

Com isso, descrevemos a regra do sistema. A partir de agora, toda vez que mandarmos uma nova pergunta, ele vai gerar novas respostas seguindo essas regras do sistema.

Vamos voltar para o Chat, na parte central da tela. Temos a resposta anterior do sistema, com os nomes e descrições dos produtos. Se passarmos o cursor por cima da resposta, encontraremos no canto direito um ícone de um símbolo de "menos", onde podemos clicar para apagar a resposta.

Agora, vamos alterar o prompt do usuário:

User: Gere cinco produtos.

Não vamos especificar para gerar só o nome para verificar se ele vai respeitar as regras que configuramos no sistema. Vamos clicar em Submit.

Agora, ele gerou apenas o nome dos produtos e agora não tivemos aquele problema:

Assistant:

  1. Relógio Lunar
  2. Kit de Maquiagem Estelar
  3. Cadeira ergonômica Celestial
  4. Impacto Solar (perfume feminino)
  5. Tênis Astral

Vamos fazer um novo teste. Podemos apagar a resposta ou, embaixo dela, clicar no botão "Add Message". para adicionar uma nova mensagem:

User: Gere mais dez produtos.

E vamos submeter. Perceba: ele gerou uma nova resposta ainda respeitando as regras do sistema:

Assistant:

  1. Colar Galáctico
  2. Mochila Cósmica
  3. Conjunto de Canecas Estelares
  4. Fones de Ouvido Nebulosos
  5. Papel de Parede Planetário
  6. Bracelete Lunar
  7. Óculos de Sol Astrais
  8. Camiseta Interplanetária
  9. Kit de Pincéis Celestiais
  10. Capa de Celular Espacial

Este é o modo de Chat. Temos o modo de Assistente também, como conferimos anteriormente, que não vai ser explorado neste curso, mas apenas num curso posterior.

Agora, nosso foco vai ser esse modo de chat, o modo mais comum, em que simulamos um chat onde fazemos uma pergunta e o sistema nos devolve uma resposta, gerando-a no modelo do GPT.

Esses dois campos, de System e User, são os mais importantes para nós. O do User recebe a pergunta a ser feita; no do System, podemos pré-configurar comportamentos específicos: o que ele deve fazer, o que ele deve ignorar, como deve ser a saída. Com isso, deixamos a resposta gerada mais próxima do que queremos mais rapidamente.

Lembrando que, além do System e do User, temos vários outros parâmetros na lateral direita da tela, que são configurações alteráveis. Vamos conhecê-los melhor no próximo vídeo!

Sobre o curso GPT e Java: integre uma aplicação com a OpenAI

O curso GPT e Java: integre uma aplicação com a OpenAI possui 172 minutos de vídeos, em um total de 45 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