API रेफ़रेंस

Widget API और REST एंडपॉइंट्स का पूर्ण रेफ़रेंस।

Widget API

ग्लोबल window.LaunchChatWidget ऑब्जेक्ट विजेट को प्रोग्रामेटिक रूप से नियंत्रित करने के मेथड्स प्रदान करता है।

मेथड्स

open()

चैट विंडो को प्रोग्रामेटिक रूप से खोलता है।

window.LaunchChatWidget.open();
close()

चैट विंडो बंद करता है।

window.LaunchChatWidget.close();
destroy()

विजेट को पेज से पूरी तरह हटाता है। SPA में नेविगेट करते समय उपयोगी।

window.LaunchChatWidget.destroy();
init(config)

नए कॉन्फ़िगरेशन के साथ विजेट को री-इनिशियलाइज़ करता है।

window.LaunchChatWidget.init({ widgetId: "new-widget-id" });
on(event, callback)

विजेट इवेंट्स को सब्सक्राइब करें।

window.LaunchChatWidget.on('message', (data) => {
  console.log('New message:', data);
});
off(event, callback)

विजेट इवेंट्स से अनसब्सक्राइब करें।

इवेंट्स

इवेंटपेलोडविवरण
open{ timestamp }चैट विंडो खुली
close{ timestamp }चैट विंडो बंद हुई
message{ content, role }संदेश भेजा या प्राप्त हुआ
escalate{ email, message }यूज़र ने ह्यूमन सपोर्ट का अनुरोध किया
feedback{ messageId, type }यूज़र ने फ़ीडबैक दिया (सकारात्मक/नकारात्मक)

REST API

POST /api/widget/chat

एक संदेश भेजें और AI-जनित प्रतिक्रिया प्राप्त करें।

रिक्वेस्ट बॉडी

{
  "widgetId": "string",      // Required
  "message": "string",       // Required - user's question
  "conversationId": "string", // Optional - for context
  "visitorId": "string",     // Optional - track visitor
  "pageUrl": "string"        // Optional - current page
}

रिस्पॉन्स

{
  "conversationId": "uuid",
  "messageId": "uuid",
  "answer": "string",
  "citations": [
    {
      "pageId": "string",
      "pageTitle": "string",
      "pageUrl": "string",
      "excerpt": "string"
    }
  ],
  "relatedArticles": [...],
  "confidenceScore": 0.85,
  "wasRefused": false
}

एरर कोड्स

कोडस्टेटसविवरण
400Bad Requestआवश्यक फ़ील्ड्स गायब हैं
403Forbiddenडोमेन अनुमति सूची में नहीं है
404Not Foundविजेट नहीं मिला या निष्क्रिय है
429Rate Limitedसंदेश कोटा पार हो गया
500Server Errorआंतरिक प्रोसेसिंग त्रुटि

TypeScript टाइप्स

पूर्ण टाइप सेफ़्टी के लिए इन टाइप्स को अपने प्रोजेक्ट में कॉपी करें:

interface LaunchChatConfig {
  widgetId: string;
  primaryColor?: string;
  greeting?: string;
  placeholder?: string;
  position?: 'bottom-right' | 'bottom-left';
  theme?: 'light' | 'dark' | 'auto';
}

interface WidgetAPI {
  open(): void;
  close(): void;
  destroy(): void;
  init(config: { widgetId: string }): Promise<void>;
  on<E extends keyof WidgetEvents>(
    event: E,
    callback: (data: WidgetEvents[E]) => void
  ): void;
  off<E extends keyof WidgetEvents>(
    event: E,
    callback: (data: WidgetEvents[E]) => void
  ): void;
}

interface WidgetEvents {
  open: { timestamp: number };
  close: { timestamp: number };
  message: { content: string; role: 'user' | 'assistant' };
  escalate: { email: string; message: string };
  feedback: { messageId: string; type: 'positive' | 'negative' };
}

declare global {
  interface Window {
    LaunchChatConfig?: LaunchChatConfig;
    LaunchChatWidget?: WidgetAPI;
  }
}