ChatGPT — Executando Funções

Descubra como criar funções personalizadas para ChatGPT e estender suas capacidades de processamento de servidor

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! 👋