ChatGPT — Executando Funções
Olá Gente
Já aprendemos muito sobre o ChatGPT, mas esta na hora de irmos além!
Um recurso muito útil é a criação de funções, onde podemos indicar que, dependendo do que o cliente perguntar, deve ser acionado uma função que será processada no seu servidor.
Para este exemplo, iremos criar uma função chamada “checar_servidor_online”, que será utilizada para verificar se um servidor esta online ou offline.
Iremos utilizar o endpoint de “completions” incluindo um novo elemento “tools” para indicar as funções que serão utilizadas:
https://api.openai.com/v1/chat/completions
Uma função é composto de alguns elemento, entre ele:
- Nome da função
- Descrição da função (Que o ChatGPT utiliza para entender quando chamar esta função)
- Parâmetros (Os campos que esta função precisa)
Para nosso exemplo, precisamos que seja passado apenas o nome do servidor, com isto, a função ira ficar semelhante a função abaixo:
Com a função, vamos criar a Json que será enviado para a API:
Observe que aqui:
- Definimos o modelo para “gpt-3.5-turbo”
- Definimos a primeira mensagem do cliente para “O Servidor POTTERS1 esta Online?”
- Populamos o array “tools” com a função que criamos
- Definimos “tool_choice” como “auto” para que o ChatGPT escolha a melhor função com base no que o cliente digitar
Quando o Post for enviado, em “choises[0].message” teremos um elemento “tool_calls” indicando que uma função esta sendo chamada:
Nos dados da função, temos algumas informações importantes:
- id: O ID da chamada (Iremos utilizar para responder a função)
- function.name: O Nome da Função
- function.arguments: Os parâmetros que a função precisa
Neste momento, podemos fazer alguma chamada a alguma API externa (Como Pingdom) para verifica se o Servidor esta online e assim ter uma resposta para a função.
Para este exemplo, iremos responder que “Sim”, para isto, iremos adicionar uma nova mensagem com alguns parâmetros:
- role: Sete como “function”
- name: O nome da função
- tool_call_id: O ID da chamada que obtemos anteriormente
- content: A resposta da função
Segue exemplo completo do Json:
Como resposta, o Bot ira retornar uma mensagem que responde a pergunta com o valor que enviamos na função:
Por hoje é isto, queridos desenvolvedores! 👩💼
Até logo! 👋