Visão geral da Venddor Intelligence
Como funciona a assistente de IA do painel e o mapa das rotas de conversa: sessões, mensagens, confirmação de ações, anexos, voz e auditoria.
A Venddor Intelligence (VI) é a assistente de IA embutida na plataforma. O administrador da loja conversa com ela em linguagem natural: ela responde perguntas sobre os dados da loja e, quando o administrador confirma, executa alterações no painel (criar um cadastro, ajustar preços, desativar promoções em lote). Esta seção documenta o contrato das rotas de conversa, para quem precisa construir uma interface própria, automatizar um fluxo ou apenas entender o que a plataforma entrega.
O que a VI faz por dentro não faz parte deste contrato. Aqui estão as entradas, as saídas, as permissões e os limites.
Como funciona
O laço da conversa
- Abra uma sessão
POST /sessionscria a conversa e devolve oid(UUID). Opcionalmente informe um título e a tela em que o administrador está. - Envie a mensagem
POST /sessions/{id}/messagescom o texto. Comstream: truea resposta chega em eventos SSE; sem ele, em um JSON único. - Leia a respostaO campo
contenté Markdown. Ele pode conter blocos especiais entre cercas de código, como ovi:confirm. - Confirme (ou recuse) a açãoSe houver um bloco
vi:confirm, mostre a descrição ao administrador e chamePOST /agent-actions/confirmcom otokeneapproved. - Consulte o histórico
GET /sessions/{id}/messagesdevolve a conversa inteira, eGET /agent-actionslista o que foi (e o que não foi) executado.
O bloco de confirmação
Quando a VI propõe uma alteração, o content da resposta inclui um bloco assim:
{"token":"83a02587a9546e662ecac4df02acc928","description":"Desativar 12 promoções vencidas","risk":"sensitive"}| Campo | Tipo | Significado |
|---|---|---|
token | string | Identificador da ação pendente. Vale por 60 minutos e só pode ser usado uma vez. |
description | string | Texto para mostrar ao administrador antes do "sim". |
risk | string | safe (reversível), sensitive (reversível só com trabalho) ou destructive (irreversível). Use para escolher o destaque visual. |
O bloco pode trazer campos extras (por exemplo, o resumo de um lote). Ignore o que não conhece.
Conceitos-chave
Privilégios
Todas as rotas exigem um token de administrador e pelo menos um dos privilégios listados na própria rota. A maioria das rotas de conversa aceita intelligence_use_chat ou manage_settings. Um administrador total passa em qualquer verificação. Sem o privilégio, a resposta é 403 com a lista privilege_required_any.
Quem enxerga o quê
GET /sessions e a busca devolvem só as conversas de quem chama. As rotas que recebem o id da sessão (ler, arquivar, listar mensagens) não conferem o dono: guarde os ids como dados sensíveis. As memórias, a base de conhecimento e as configurações são da loja inteira.
Dinheiro, datas e ids
Ids são UUIDs em texto. Datas são RFC 3339 em UTC. Valores monetários, quando aparecem em campos próprios, são inteiros em centavos (4990 = R$ 49,90). Veja Ids, dinheiro e datas.
Idioma das respostas
A VI responde no idioma da conversa. Mensagens de erro desta API chegam em inglês ou em português conforme a rota, e as que vêm em português estão assim indicadas nas páginas.
Rotas
Todas exigem Authorization: Bearer $TOKEN de um administrador.
| Método | Caminho (após /api/v1/admin/intelligence) | Para que serve | Página |
|---|---|---|---|
| POST | /sessions | Abrir uma conversa | sessions |
| GET | /sessions | Listar as conversas de quem chama | sessions |
| GET | /sessions/search | Buscar conversas pelo texto das mensagens | sessions |
| GET | /sessions/{id} | Ler uma conversa | sessions |
| PATCH | /sessions/{id} | Arquivar uma conversa | sessions |
| GET | /sessions/{id}/messages | Listar as mensagens | messages |
| POST | /sessions/{id}/messages | Enviar uma mensagem | messages |
| POST | /sessions/{id}/truncate | Apagar a partir de uma mensagem | messages |
| POST | /sessions/{id}/bulk-continuation | Retomar a conversa após um lote | messages |
| PUT | /sessions/{id}/page-context | Informar a tela atual | page-context |
| POST | /sessions/{id}/snippets/{snippetId}/close | Recolher um trecho interativo | page-context |
| POST | /attachments | Converter um anexo | attachments |
| POST | /sessions/{id}/export | Exportar a conversa em DOCX | attachments |
| GET | /planilhas/{id} | Baixar uma planilha gerada | attachments |
| GET | /agent-actions | Listar ações executadas e não executadas | confirm |
| POST | /agent-actions/confirm | Confirmar ou recusar uma ação | confirm |
| POST | /sessions/{id}/selection | Responder a uma lista de opções | selection |
| POST | /sessions/{id}/selection/search | Buscar dentro de uma lista de opções | selection |
| GET | /sessions/{id}/selection/{selectionId} | Ler o estado de uma lista de opções | selection |
| GET | /sessions/{id}/fsm | Estado do pedido em montagem | order-draft |
| POST | /sessions/{id}/fsm/cancel | Cancelar o pedido em montagem | order-draft |
| POST | /sessions/{id}/order/add-item | Adicionar um item ao pedido em montagem | order-draft |
| POST | /voice-ask | Perguntar por voz ou transcrição | voice |
| POST | /voice/transcribe | Transcrever áudio | voice |
| POST | /voice/speak | Transformar texto em áudio | voice |
| GET | /audit | Registro de execuções da VI | audit |
Erros comuns
- Esperar a resposta com o timeout padrão do cliente. Um turno com várias consultas pode passar de um minuto. Use
stream: trueou um timeout de vários minutos. - Tratar a resposta como se a ação já tivesse sido feita. Enquanto houver um bloco
vi:confirmsem a chamada de confirmação, nada mudou na loja. - Reutilizar um
tokende confirmação. Ele é de uso único e vence em 60 minutos; depois disso a confirmação responde comstatus: 410dentro de um200. - Esquecer que o
200da confirmação não garante sucesso. O resultado real está no campostatusdo corpo. - Guardar o histórico por
GET /sessionse achar que é de todos. A lista é só do usuário do token. - Mandar
PUT /settingsparcial. A rota substitui o documento inteiro (veja Configurações).