API OpenAI Chat Completions

A API OpenAI Chat Completions possibilita interações de chat com Grandes Modelos de Linguagem (Large Language Models - LLMs) da OpenAI. Ela pode ser utilizada em sistemas que precisem integrar chatbots ou outras interações de linguagem baseadas em Inteligência Artificial e oferece alto grau de customização e controle sobre o comportamento do modelo.

Além disso, para auxiliar na estruturação e no monitoramento das requisições e respostas, a API traz em seu fluxo os seguintes interceptores já configurados:

  • Header: adiciona ou ajusta cabeçalhos.

  • Log: há duas instâncias desse interceptor configuradas, uma no fluxo da requisição e outra no fluxo da resposta. Sua função é a de gerar logs para permitir a visualização da requisição e da resposta.

  • JSON Schema Validation: valida o conteúdo presente no corpo da requisição (payload) de acordo com o padrão aceito pela API.

  • Rate Limit AI Tokens: permite controlar o consumo de tokens em aplicações que consomem LLMs.

Importando a API

Para utilizar a API OpenAI Chat Completions, primeiramente você deve importá-la em sua Plataforma seguindo os passos abaixo:

  1. Faça o download da documentação da API.

  2. Descomprima a pasta OpenAI_Chat_Completions_API.zip.

  3. Importe o arquivo OpenAI_Chat_Completions_API.yaml para a Plataforma por meio da funcionalidade Import/Export.

  4. Implante a API em algum ambiente.

Para autenticação, você deverá inserir no header da requisição a chave (API key) recebida da OpenAI.

Referência da API

Descrição Geral

  • Título: OpenAI Chat Completions API

  • Propósito: Permitir a interação com modelos de linguagem para gerar respostas baseadas em mensagens enviadas por usuários.

  • Base Path: /v1

  • Método Principal: POST no endpoint /chat/completions

  • Segurança: Utiliza autenticação via Bearer Token no cabeçalho da requisição.

Funcionalidade Principal

O endpoint /chat/completions permite gerar uma interação de chat. Ele:

  1. Recebe uma lista de mensagens no formato JSON.

  2. Usa essas mensagens para interagir com um modelo de linguagem escolhido pelo cliente.

  3. Retorna as respostas geradas pelo modelo.

Entrada (Payload)

Formato: JSON

Campos principais:

  • model (string, obrigatório): Define qual modelo de linguagem será utilizado (ex.: gpt-4o`).

  • messages (array, obrigatório): Lista de mensagens da conversa, em que cada mensagem contém:

    • role (string): Papel do autor da mensagem, como user, system ou assistant.

    • content (string): Conteúdo textual da mensagem.

  • max_tokens (integer, opcional): Limita o número de tokens gerados na resposta.

  • temperature (number, opcional): Controla a criatividade da resposta (valores menores geram respostas mais determinísticas).

  • top_p (number, opcional): Nucleus sampling para limitar a probabilidade acumulada de palavras geradas.

  • n (integer, opcional): Quantidade de respostas que devem ser geradas.

  • stop (array, opcional): Define sequências que encerram a geração de texto.

  • presence_penalty e frequency_penalty (números, opcionais): Penalizam repetições e incentivam a originalidade.

  • logit_bias (objeto, opcional): Ajusta a probabilidade de palavras específicas.

  • user (string, opcional): Identificador único para rastrear a interação de um usuário.

Resposta

Códigos de status:

  • 200 OK: Resposta gerada com sucesso. Retorna:

    • id (string): Identificador único da resposta.

    • choices (array): Lista das respostas geradas, cada uma com:

      • message: Mensagem gerada pelo modelo, com role e content.

      • finish_reason: Razão para a finalização da geração (ex.: stop).

    • usage: Métricas de uso de tokens (prompt, completion, total).

  • 400 Bad Request: Requisição inválida.

  • 500 Internal Server Error: Erro interno do servidor ou serviço.

Configurações Extras

  • Tempo limite (timeout): 60 segundos.

  • Ciclo de vida da API: Disponível (status AVAILABLE).

  • Autenticação: Requer um token no cabeçalho Authorization.

Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]