Skip to content

Introdução à Integração

A plataforma SipPulse AI possui uma REST API projetada para ser o ponto central de comunicação com todos os seus recursos de Inteligência Artificial. Esta API permite que desenvolvedores interajam e integrem programaticamente serviços como modelos de geração de texto (LLMs), reconhecimento de fala (ASR), conversão de texto para fala (TTS) e agentes inteligentes diretamente em suas aplicações.

Para auxiliar na utilização da API, disponibilizamos um Swagger UI e um arquivo OpenAPI.json.

Requisitos

Para começar a integração, você precisará:

  • Chave API: Gere uma chave API na seção API Keys da sua conta SipPulse AI. Instruções para criar API Keys
  • Conhecimentos em programação: Familiaridade com HTTP requests e manipulação de dados JSON.

Cada seção desta documentação fornecerá exemplos de código em diferentes linguagens de programação para facilitar a integração com nossos serviços.

Autenticação

Para utilizar os serviços da plataforma SipPulse AI, todas as requisições devem ser autenticadas usando uma chave API. Para gerar uma chave API, siga as instruções na seção API Keys da documentação.

Usando a Chave API

Todas as requisições para a plataforma SipPulse AI devem incluir a chave API no cabeçalho da requisição. O cabeçalho utilizado é api-key. Abaixo estão exemplos de como incluir a chave API em requisições utilizando diferentes linguagens de programação.

bash
curl -X 'GET' \
  'https://api.sippulse.ai/v1/llms/models' \
  -H 'Content-Type: application/json' \
  -H 'api-key: $SIPPULSE_API_KEY'
python
import requests

url = "https://api.sippulse.ai/v1/llms/models"
headers = {
    "Content-Type": "application/json",
    "api-key": "SIPPULSE_API_KEY"
}

response = requests.get(url, headers=headers)
print(response.json())
javascript
const url = "https://api.sippulse.ai/v1/llms/models";
const headers = {
  "Content-Type": "application/json",
  "api-key": "SIPPULSE_API_KEY",
};

fetch(url, {
  method: "GET",
  headers: headers,
})
  .then((response) => response.json())
  .then((data) => console.log(data))
  .catch((error) => console.error("Error:", error));

Segurança da Chave API

  • Confidencialidade: Nunca compartilhe suas chaves API publicamente. Evite incluí-las em código de navegador ou cliente.
  • Rotação de Chaves: Periodicamente, gere novas chaves API e substitua as antigas para melhorar a segurança.
  • Revogação: Caso uma chave API seja comprometida, revogue-a imediatamente através da seção API Keys.

Endpoints Principais

A API do SipPulse AI está organizada em módulos funcionais. Abaixo estão os principais endpoints disponíveis:

Agentes

MétodoEndpointDescrição
GET/agentsLista todos os agentes da organização
POST/agentsCria um novo agente
GET/agents/{id}Obtém detalhes de um agente
PATCH/agents/{id}Atualiza um agente
DELETE/agents/{id}Remove um agente
POST/agents/{id}/outbound-callInicia uma chamada de saída

Conversas (Threads)

MétodoEndpointDescrição
GET/threadsLista conversas (com filtros)
POST/threadsCria uma nova conversa
GET/threads/{id}Obtém histórico de uma conversa
POST/threads/{id}/messagesEnvia mensagem para uma conversa
POST/threads/{id}/closeEncerra uma conversa

Modelos de Linguagem (LLM)

MétodoEndpointDescrição
GET/llms/modelsLista modelos LLM disponíveis
POST/llms/completionGera uma resposta de texto
POST/llms/streamGera resposta em streaming

Reconhecimento de Fala (ASR)

MétodoEndpointDescrição
GET/asr/modelsLista modelos ASR disponíveis
POST/asr/transcribeTranscreve áudio para texto

Síntese de Voz (TTS)

MétodoEndpointDescrição
GET/tts/modelsLista modelos TTS disponíveis
POST/tts/synthesizeConverte texto para áudio

Base de Conhecimento

MétodoEndpointDescrição
GET/knowledgeLista tabelas de conhecimento
POST/knowledgeCria uma nova tabela
POST/knowledge/{name}/queryConsulta semântica na tabela
POST/knowledge/{name}/rowsAdiciona linhas à tabela

Webhooks

MétodoEndpointDescrição
GET/webhooksLista webhooks configurados
POST/webhooksCria um novo webhook
PATCH/webhooks/{id}Atualiza um webhook
DELETE/webhooks/{id}Remove um webhook

Documentação Interativa

Para uma referência completa com schemas de request/response e a possibilidade de testar endpoints diretamente, acesse o Swagger UI.


Rate Limits

A API implementa limites de taxa para garantir uso justo e estabilidade do serviço. Os limites variam por tipo de endpoint e plano.

Tipos de Limites

SiglaDescriçãoAplicável a
RPMRequisições por MinutoTodos os endpoints
RPDRequisições por DiaTodos os endpoints
TPMTokens por MinutoEndpoints de LLM
TPDTokens por DiaEndpoints de LLM
ASHSegundos de Áudio por HoraEndpoints de ASR/TTS
ASDSegundos de Áudio por DiaEndpoints de ASR/TTS

Headers de Rate Limit

Quando uma requisição é feita, os headers de resposta incluem informações sobre o status do rate limit:

http
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 45
X-RateLimit-Reset: 1609459200

Comportamento ao Exceder Limites

Quando você excede um limite de taxa, a API retorna:

  • Status: 429 Too Many Requests
  • Header: Retry-After com o tempo em segundos para aguardar

Erro 429

Se você receber um erro 429, implemente um backoff exponencial e respeite o header Retry-After antes de tentar novamente.

Boas Práticas

  1. Implemente cache: Armazene respostas que não mudam frequentemente
  2. Use streaming: Para LLMs, prefira endpoints de streaming para respostas longas
  3. Batch requests: Agrupe operações quando possível
  4. Monitore uso: Acompanhe seus limites no Dashboard de Consumo

Tratamento de Erros

A API usa códigos HTTP padrão para indicar sucesso ou falha:

CódigoSignificado
200Sucesso
201Recurso criado
400Requisição inválida
401Não autenticado
403Sem permissão
404Recurso não encontrado
429Rate limit excedido
500Erro interno do servidor

Formato de Erro

json
{
  "error": {
    "statusCode": 400,
    "name": "BadRequestError",
    "message": "Descrição do erro"
  }
}