Chat — anexe AI ao seu mapa
product="chat" monta o Kaleidr Control Tower — navegação orientada por chat,
resumos de POI e marcadores de lugares — sobre um mapa que você já renderiza.
O bundle de chat detecta automaticamente seu fornecedor de mapas (Mapbox, MapLibre, Google).
- Forma de integração:
attach— o painel é montado dentro da sua página e controla o objeto de mapa que você fornece. - Escopo necessário:
ai. - Plano mínimo: Pro — chaves Free não permitem o escopo
ai.
Antes de começar
- A origem da sua página deve estar na lista de origens permitidas da chave. Caso contrário, a troca de sessão
falha com 403
session_origin_mismatch.file://não envia nenhumOrigine sempre falha — use HTTP(S). Consulte Obter uma chave de API. - Sua CSP deve permitir o loader do SDK,
'wasm-unsafe-eval'do MapLibre e os hosts do seu fornecedor de mapas — consulte Content Security Policy.
Montagem
const handle = Kaleidr.mount('#chat-panel', {
product: 'chat',
publishableKey: 'kld_pk_live_…', // ai scope, Pro+
map: myMap, // your live map instance
contained: true, // dock inside #chat-panel, not on body
});
contained: true fixa o painel dentro do elemento de montagem. Sem isso,
o painel vai para document.body e parece quebrado sobre o layout.
O painel de chat plota lugares em myMap e enquadra a câmera à medida que
a conversa resolve localizações. O streaming usa o
SSE wire contract; o uso do escopo
ai é contabilizado na cota da sua organização.
Handle
handle.destroy(); // always available
handle.setTheme({ '--kd-accent': '#2da84a' }); // live theme update
handle.setCamera(...)em chat é um no-op. Chat não controla a câmera do mapa — use a API de câmera da sua própria instância do mapa.handle.setTheme(...)aceita um objeto JSON de tokens CSS; temas nomeados como string são ignorados com um aviso.
O modo headless (sem mapa) é suportado — omita map para um painel apenas de chat;
não haverá marcadores nem sobreposições de rotas.