Visão Geral
Documentação completa da API que processa perguntas utilizando a inteligência do Tolky, mantendo o contexto das conversas e oferecendo respostas personalizadas.
O endpoint Tolky Reasoning é o coração da nossa API de processamento de linguagem natural. Ele permite que você integre a inteligência do Tolky em suas aplicações, mantendo o contexto das conversas e oferecendo respostas personalizadas e naturais.
📑 Índice
- 🎯 Visão Geral
- 🔑 Autenticação
- ⚙️ Parâmetros da Requisição
- 📦 Estrutura da Resposta
- 💡 Exemplos de Uso
- ⚠️ Tratamento de Erros
- ✨ Boas Práticas
🎯 Visão Geral
O endpoint Tolky Reasoning é responsável por:
🔑 Autenticação
Para utilizar o endpoint, é necessário incluir um token de autenticação no header da requisição:
Authorization: Bearer {seu-token-de-acesso}
⚙️ Parâmetros da Requisição
📋 Parâmetros Obrigatórios
Parâmetro | Tipo | Descrição |
---|---|---|
hostId | string (UUID) | Identificador único do host |
conversationId | string (UUID) | Identificador único da conversa |
🔧 Parâmetros Opcionais
Parâmetro | Tipo | Descrição |
---|---|---|
hostSlug | string | Slug do host para identificação amigável |
question | string | null | Pergunta ou comando para processamento (pode ser null em casos de rebounce) |
originalDialogue | array | Histórico do diálogo |
contextData | string | Dados contextuais adicionais |
dialogueInsertString | string | Texto para inserção no diálogo |
subSlug | string | Sub-slug do host |
reasoningConfig | object | Configurações de processamento |
userData | object | Dados do usuário |
globalData | object | Dados globais adicionais |
⚙️ reasoningConfig
👤 userData
{
"mediaInstructions": "string",
"rebounce": boolean,
"rebounceInstructions": string,
"returnDialogue": boolean,
"tolkyCompleteLog": boolean
}
📦 Estrutura da Resposta
A resposta da API segue o seguinte formato:
{
"code": 200,
"message": "Success",
"data": {
"assistantResponse": {
"string": "Resposta do assistente",
"wppParsed": {},
"isAudio": false,
"mediaDescriptionArray": []
},
"tokensControl": [
{
"model": "string",
"tokens": number
}
],
"sessionId": "string",
"conversationId": "string",
"hostId": "string",
"tickets": {
"ticketId": "string",
"ticketDescription": "string"
},
"userId": "string",
"leadId": "string",
"askHumanHelp": boolean,
"jsonArray": [],
"agentsLog": [],
"restStatus": [],
"conversation": [],
"question": "string",
"tolkyCompleteLog": [],
"mcp": {
"status": null,
"connections": [],
"available_tools": [],
"chosen_tools": [],
"results": [],
"error": null
},
"recap": {},
"contact": {},
"ticket": {},
"createdMessageIds": [
"uuid-da-mensagem-1",
"uuid-da-mensagem-2"
],
"requestControlId": "string"
}
}
📝 Campos da Resposta
Campo | Tipo | Descrição |
---|---|---|
assistantResponse | object | Resposta do assistente contendo texto, versão formatada para WhatsApp e informação sobre áudio |
assistantResponse.mediaDescriptionArray | array | Lista de descrições de mídias geradas nesta resposta |
tokensControl | array | Informações sobre o consumo de tokens por modelo utilizado |
sessionId | string | Identificador único da sessão |
conversationId | string | Identificador único da conversa |
hostId | string | Identificador único do host |
tickets | object | Informações sobre tickets relacionados |
userId | string | Identificador do usuário |
leadId | string | Identificador do lead |
askHumanHelp | boolean | Indica se foi solicitada ajuda humana |
jsonArray | array | Array com dados estruturados de processamento |
agentsLog | array | Log das atividades dos agentes durante o processamento |
restStatus | array | Status de chamadas REST realizadas |
conversation | array | Histórico completo da conversa (se solicitado) |
question | string | Pergunta original processada |
tolkyCompleteLog | array | Log completo do processamento (se solicitado) |
mcp | object | Informações MCP: status , connections , available_tools (apenas com log completo), chosen_tools , results , error |
recap | object | Resumo do processamento |
contact | object | Dados do contato associado |
ticket | object | Dados do ticket atual |
createdMessageIds | array | NOVO: Array de UUIDs das mensagens criadas durante o processo de reasoning |
requestControlId | string | NOVO: ID de controle da requisição para rastreamento e auditoria |
🔄 Processamento de Markdown
O campo wppParsed
na resposta é o resultado do processamento do campo string
através do markdownParser
. Este parser converte o texto markdown em um array de objetos estruturados para exibição no WhatsApp, com suporte aos seguintes tipos de conteúdo:
Tipos de Conteúdo Suportados
-
Texto (
type: "text"
)- Conteúdo de texto simples
- Suporte a formatação em negrito usando
*texto*
- Títulos são convertidos para texto em negrito
-
Imagens (
type: "image"
)- Suporta imagens em formatos: jpg, jpeg, png, gif, webp
- Sintaxe markdown:

- Inclui descrição e URL da imagem
-
Links (
type: "site"
)- Links para sites web
- Sintaxe markdown:
[descrição](url)
- Inclui descrição e URL do link
-
Áudio (
type: "audio"
)- Suporta formatos: mp3, wav, ogg
- Sintaxe markdown:
[descrição](url-do-audio)
- Inclui descrição e URL do áudio
-
Boleto (
type: "boleto"
)- Detecta automaticamente linhas digitáveis de boletos
- Formato: 47 ou 48 dígitos com espaços/pontos
-
PIX (
type: "pix"
)- Detecta automaticamente códigos PIX Copia e Cola
- Formato: começa com “000201” e termina com CRC16
Funcionalidades do Parser
O parser também:
- Normaliza quebras de linha e URLs
- Mantém a formatação de parágrafos
- Preserva a estrutura de bullets e listas numeradas
- Trata URLs “soltas” no texto
- Converte formatação markdown para o formato aceito pelo WhatsApp
Exemplo de Resposta com wppParsed
{
"assistantResponse": {
"string": "Olá! Aqui está sua fatura: \n\nPara pagar, você pode usar o PIX: 000201...6304ABCD\n\nOu o boleto: 12345.67890 12345.678901 12345.678901 1 12345678901234",
"wppParsed": [
{
"type": "text",
"content": "Olá! Aqui está sua fatura:"
},
{
"type": "image",
"content": "https://exemplo.com/fatura.jpg",
"url": "https://exemplo.com/fatura.jpg",
"description": "Fatura"
},
{
"type": "text",
"content": "Para pagar, você pode usar o PIX:"
},
{
"type": "pix",
"content": "000201...6304ABCD"
},
{
"type": "text",
"content": "Ou o boleto:"
},
{
"type": "boleto",
"content": "12345.67890 12345.678901 12345.678901 1 12345678901234"
}
],
"isAudio": false
}
}
💡 Exemplos de Uso
📤 Requisição Básica
📤 Requisição com reasoningConfig
📥 Resposta
curl -X POST \
'{BASE_URL}/api/externalAPIs/public/tolkyReasoning/callReasoning' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {seu-token}' \
-d '{
"hostId": "uuid-do-host",
"conversationId": "uuid-da-conversa",
"question": "Sua pergunta aqui",
"originalDialogue": [],
"contextData": "Dados de contexto",
"userData": {
"userName": "Nome do Usuário",
"email": "usuario@email.com"
}
}'
⚠️ Tratamento de Erros
⏱️ Timeout
Todas as requisições têm um timeout de 60 segundos. Se a requisição exceder este limite, será retornado um erro 408 (Request Timeout).
✨ Boas Práticas
🔄 Endpoints Relacionados
Criar ID de Conversa
Cria um novo ID de conversa para o processamento do Tolky Reasoning.
Endpoint: POST /api/externalAPIs/public/createConversationId
Listar Agentes
Retorna informações sobre os agentes disponíveis para um host específico.
Endpoint: POST /api/externalAPIs/public/tolkyReasoning/agents/list
Obter Templates de Fluxo Padrão
Retorna os templates de fluxo padrão disponíveis no sistema.
Endpoint: POST /api/externalAPIs/public/tolkyReasoning/decisions/listDefaultChains
Listar Fluxos
Retorna informações sobre os fluxos de um host específico.
Endpoint: POST /api/externalAPIs/public/tolkyReasoning/decisions/list
Salvar Fluxo
Salva um novo fluxo ou edita um fluxo existente.
Endpoint: POST /api/externalAPIs/public/tolkyReasoning/decisions/save
Listar Modelos
Retorna informações sobre os modelos disponíveis para processamento.
Endpoint: POST /api/externalAPIs/public/tolkyReasoning/decisions/listModels
Criar Chunk
Cria um novo chunk de conversa para processamento.
Endpoint: POST /api/externalAPIs/public/tolkyReasoning/createChunkHelper
Editar Chunk
Edita um chunk de conversa existente.
Endpoint: POST /api/externalAPIs/public/tolkyReasoning/chunks/create
Ler Chunks
Retorna os chunks de uma conversa específica.
Endpoint: POST /api/externalAPIs/public/tolkyReasoning/chunks/list
Criar Sub-avatar
Cria um novo sub-avatar para personalização de respostas.
Endpoint: POST /api/externalAPIs/public/tolkyReasoning/avatars/create
Listar Avatares
Retorna informações sobre os avatares disponíveis.
Endpoint: POST /api/externalAPIs/public/tolkyReasoning/avatars/list
Obter Informações da Conversa
Retorna informações detalhadas sobre uma conversa específica.
Endpoint: POST /api/externalAPIs/public/tolkyReasoning/conversations/info