Pular para o conteúdo principal

Visão Geral

O endpoint de processamento com IA permite enviar mensagens de texto, imagens, áudios e PDFs para análise inteligente. O sistema pode responder de forma síncrona ou assíncrona (via postback).

Endpoint Principal

POST /ai/process

Parâmetros do Payload

tenant_id
string
obrigatório
ID do tenant (obtido no dashboard)
lead_id
string
obrigatório
ID do lead que está enviando a mensagem
role
string
obrigatório
Papel do remetente: user, assistant, human, system
content
string
obrigatório
Conteúdo da mensagem
message_type
string
obrigatório
Tipo da mensagem: text, image, audio, pdf
url
string
URL da mídia (obrigatório para tipos diferentes de text)
debounce
boolean
padrão:"false"
Quando true, acumula mensagens e envia resposta via postback
postback_url
string
URL para receber a resposta (obrigatório quando debounce: true)

Exemplo de Requisição

curl -X POST "https://api.leavo.ai/ai/process" \
  -H "Authorization: Bearer sua_chave_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "tenant_id": "uuid-do-tenant",
    "lead_id": "uuid-do-lead",
    "role": "user",
    "content": "Olá, gostaria de saber mais sobre o produto",
    "message_type": "text",
    "debounce": true,
    "postback_url": "https://seu-webhook.com/callback"
  }'

Tipos de Mensagem

Mensagem de texto simples.
{
  "message_type": "text",
  "content": "Sua mensagem aqui"
}
Envie uma imagem para análise visual.
{
  "message_type": "image",
  "content": "Descrição opcional",
  "url": "https://exemplo.com/imagem.jpg"
}
Envie um áudio para transcrição e análise.
{
  "message_type": "audio",
  "url": "https://exemplo.com/audio.mp3"
}
Envie um PDF para extração de conteúdo.
{
  "message_type": "pdf",
  "url": "https://exemplo.com/documento.pdf"
}

Modo Debounce

O modo debounce é útil quando você quer acumular várias mensagens antes de processar.

Como Funciona

  1. Quando debounce: true, o sistema acumula mensagens por um tempo configurado
  2. Após o tempo de debounce, todas as mensagens são processadas juntas
  3. A resposta é enviada para a postback_url

Fluxo de Requisição

Resposta Síncrona (sem debounce)

Quando debounce: false, a resposta é retornada imediatamente:
{
  "success": true,
  "response": "Olá! Claro, posso ajudar com informações sobre nosso produto..."
}

Resposta via Postback

Quando debounce: true, o postback recebe:
{
  "lead_id": "uuid-do-lead",
  "response": "Olá! Claro, posso ajudar com informações sobre nosso produto...",
  "timestamp": "2024-01-15T10:30:00Z"
}