Utils
Crono Resolver (Utils)
Usa captura via LLM (schema) para normalizar campos de data/tempo a partir do diálogo e resolve a data absoluta ou recorrência com validações e timezone.
Crono Resolver (Utils)
Extrai e normaliza campos de data/tempo a partir do diálogo (via LLM/schema) e resolve para uma data absoluta ou recorrência, com validações (feriados) e consideração de timezone. A resposta inclui extração, resolução e uma instrução resumida em PT-BR para uso em realtime.
Endpoint
POST /api/externalAPIs/public/dateResolverFromDialogue
Corpo da Requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
dialogue | string | array de mensagens | sim | Diálogo completo em array de mensagens ou string única do usuário |
nowISO | string (date-time) | não | Data/hora de referência em ISO-8601 para resolver expressões relativas |
options.tz | string | não | Timezone, ex.: America/Sao_Paulo |
options.defaultTime | string | não | Horário padrão para datas sem hora, ex.: 09:00 |
options.holidaysCountry | string | não | País para validação de feriados, ex.: BR |
options.holidaysState | string | não | Estado/UF para validação de feriados, ex.: SP |
Se dialogue for um array, cada item deve seguir o formato abaixo:
{ "role": "system|user|assistant", "content": "texto da mensagem" }
Exemplo de Requisição
curl -X POST "{{{BASE_URL}}}/api/externalAPIs/public/dateResolverFromDialogue" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer {{seu-tolky-domain-token}}" \
-d '{
"dialogue": [
{ "role": "user", "content": "Vamos marcar para terça às 15h?" }
],
"nowISO": "2025-10-07T12:00:00-03:00",
"options": {
"tz": "America/Sao_Paulo",
"defaultTime": "09:00",
"holidaysCountry": "BR",
"holidaysState": "SP"
}
}'
Exemplo de Resposta
Estrutura de exemplo do
200 OK, contendo extração, resolução, insights, confiança e instrução para realtime.
{
"extraction": {
"intent": "schedule_meeting",
"relative": { "weekday": "tuesday", "time": "15:00" },
"explicit": null
},
"resolution": {
"start_local": "2025-10-14T15:00:00-03:00",
"start_utc": "2025-10-14T18:00:00Z",
"tz": "America/Sao_Paulo",
"recurrence": null
},
"insights": [
"Usuário sugeriu terça às 15h."
],
"trust": {
"score": 0.92,
"explain": "Extração clara de weekday/time; baixa ambiguidade."
},
"realtime_instruction": "Agende para terça-feira às 15:00 (hora local)."
}
Códigos de Erro
400: Payload inválido (ex.:dialogueausente, vazio ou mal formatado)
Observações
dialogueaceita string única ou array; se string for fornecida, ela é normalizada para um único item{ role: "user", content: "..." }.- Utilize
nowISOpara controlar a referência temporal de expressões relativas (“amanhã”, “terça”, etc.). - O resolvedor aplica validações (feriados, timezone) e pode retornar dados de recorrência quando aplicável.
- A resposta
200pode incluirrealtime_instruction(PT-BR) pronta para inserir emrealtimeInstructions.