Crie uma função de API com ChatGPT
Gere o payload JSON de uma função com a integração ChatGPT no editor de Azion Console e leia a resposta com Preview deployment.
Você cria uma função que responde a uma requisição GET com HTML e a uma requisição POST com JSON. A integração com ChatGPT do editor de código de Azion Console escreve o payload JSON a partir de um comentário.
Duas páginas vizinhas cobrem as partes que esta deixa de fora:
- Para os padrões de handler de uma função e a saída de log dela, consulte Escreva e teste uma função.
- Para uma API apoiada por um banco de dados, consulte Crie uma API RESTful com Functions e SQL.
Pré-requisitos
- Uma conta Azion. Para criar uma, consulte Como criar uma conta na Azion.
- A permissão Edit Functions na conta. Ela também requer a permissão View Functions. Consulte Teams Permissions.
- Uma conta na OpenAI, com uma API key e um organization ID.
Declare as credenciais da OpenAI
A integração usa as credenciais da sua própria conta OpenAI. Ela lê essas credenciais de um comentário no código-fonte da função, então elas vêm primeiro.
Para colocar as credenciais no código-fonte de uma nova função:
Acesse Azion Console > Products Menu > Libraries > Functions.
Insira um nome para a função. Por exemplo: chatgpt-api.
Na tab Code, substitua o código predefinido pelos dois valores da sua conta OpenAI:
Os comandos da integração no editor agora autenticam com sua conta OpenAI.
Gere os dados de resposta com ChatGPT
A geração de código transforma um comentário em JavaScript. O comando ChatGPT: Generate lê o comentário selecionado como prompt e escreve o código que retorna.
Para gerar o objeto que a API retorna:
Abaixo das credenciais, insira o comentário que descreve o objeto:
A requisição leva alguns segundos.
A integração escreve o objeto no editor. A saída é semelhante a:
O código-fonte agora carrega o objeto que a API retorna para uma requisição POST.
Monte o handler
O objeto gerado é dado. O handler decide o que a função retorna para cada método de requisição. Um handler fetch ramifica por request.method: o markup para um GET, o objeto para um POST.
Complete o código-fonte com a constante HTML, o handler e a exportação padrão:
Cada ramificação declara no cabeçalho content-type o formato que retorna:
- O caso
GETretorna a constantehtmlcomotext/html;charset=UTF-8. - O caso
POSTretorna o objeto gerado comoapplication/json.
O switch cobre GET e POST. Adicione um caso para cada outro método que a API responde.
A exportação padrão é o padrão ES Modules, a forma recomendada de estruturar uma função. Para mover código existente do padrão legado Service Worker, consulte Migre padrões de handler em Functions.
O código-fonte agora carrega o handler completo da API.
Visualize a resposta
Preview deployment executa a função em Azion Console e mostra a resposta que o código retorna. Ele chama PreviewProvider, uma função auxiliar no código-fonte que monta uma requisição simulada para o handler.
Para ler as duas respostas antes que a função atenda tráfego:
PreviewProvider monta a requisição que o preview envia e retorna a resposta que o preview renderiza. Adicione a função abaixo da exportação padrão, com GET como método:
Para cada valor que a requisição simulada carrega, consulte Função PreviewProvider.
O preview renderiza a resposta text/html como a página. Selecione Open para ler a mesma saída em uma aba separada do navegador.
O preview renderiza a resposta application/json como o corpo JSON do objeto gerado.
As duas respostas da função aparecem em Azion Console, sem nenhum deployment.
Salve a função
O código-fonte completo carrega as credenciais, o objeto gerado, o handler e a função de preview:
Para armazenar o código, selecione Save.
Azion Console armazena a função e a disponibiliza para ser instanciada em uma aplicação. A função não atende tráfego até que uma instância a vincule e uma regra do Rules Engine selecione essa instância.