Chat — 지도에 AI 연결
product="chat"은 Kaleidr Control Tower — 채팅 기반
탐색, POI 요약, 장소 핀 — 를 사용자가 이미 렌더링하는 지도 위에 마운트합니다.
chat bundle은 지도 공급자(Mapbox, MapLibre, Google)를 자동 감지합니다.
- 통합 방식:
attach— 패널이 페이지 내부에 마운트되고 전달한 지도 객체를 제어합니다. - 필수 범위:
ai. - 최소 플랜: Pro — Free 키는
ai범위를 허용하지 않습니다.
시작하기 전에
- 페이지 origin이 키의 origin allowlist에 포함되어 있어야 합니다. 그렇지 않으면 세션 교환이
403
session_origin_mismatch로 실패합니다.file://은Origin을 보내지 않으므로 항상 실패합니다 — HTTP(S)로 제공하세요. API 키 받기를 참조하세요. - CSP는 SDK loader, MapLibre의
'wasm-unsafe-eval', 지도 공급자 host를 허용해야 합니다 — Content Security Policy를 참조하세요.
마운트
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는 패널을 마운트 요소 내부에 고정합니다. 이 옵션이 없으면
패널이 document.body로 이동하여 레이아웃 위에서 깨진 것처럼 보입니다.
chat 패널은 myMap에 장소를 표시하고 대화가
위치를 해석함에 따라 카메라 프레임을 조정합니다. 스트리밍에는
SSE wire contract를 사용하며, ai 범위 사용량은
조직의 quota에 청구됩니다.
Handle
handle.destroy(); // always available
handle.setTheme({ '--kd-accent': '#2da84a' }); // live theme update
- chat에서
handle.setCamera(...)는 no-op입니다. Chat은 지도 카메라를 제어하지 않습니다 — 지도 인스턴스 자체의 카메라 API를 사용하세요. handle.setTheme(...)은 JSON CSS-token 객체를 받습니다. 이름이 지정된 문자열 theme은 경고와 함께 무시됩니다.
Headless(지도 없음) 모드를 지원합니다 — chat 전용 패널에는 map을 생략하세요.
핀이나 경로 오버레이는 표시되지 않습니다.