क्लाइंट से सर्वर इवेंट्स

कन्वर्सेशनल ऐप्लिकेशन को रीयल-टाइम में बेहतर बनाने के लिए क्लाइंट से प्रासंगिक जानकारी भेजें।

क्लाइंट-से-सर्वर इवेंट्स ऐसे संदेश हैं जिन्हें आपका ऐप्लिकेशन बातचीत के दौरान अतिरिक्त संदर्भ देने के लिए सक्रिय रूप से सर्वर को भेजता है। इन इवेंट्स से आप बातचीत के फ्लो में रुकावट डाले बिना उसे प्रासंगिक जानकारी से बेहतर बना सकते हैं।

सर्वर द्वारा क्लाइंट को भेजे जाने वाले इवेंट्स की जानकारी के लिए क्लाइंट इवेंट्स दस्तावेज़ देखें।

ओवरव्यू

आपका ऐप्लिकेशन बातचीत की गुणवत्ता और प्रासंगिकता बेहतर करने के लिए, बातचीत के किसी भी समय सर्वर को प्रासंगिक जानकारी भेज सकता है। यह सर्वर से मिले किसी क्लाइंट इवेंट के जवाब में होना ज़रूरी नहीं है। यह खास तौर पर UI स्टेट, यूज़र की गतिविधियों या अन्य पर्यावरणीय डेटा को शेयर करने के लिए उपयोगी है, जो सीधे आवाज़ के ज़रिए संप्रेषित नहीं हो सकता।

हमारे SDK इन इवेंट्स को भेजने के लिए हेल्पर मेथड्स देते हैं, लेकिन कस्टम इम्प्लीमेंटेशन और उन्नत इस्तेमाल के मामलों के लिए अंतर्निहित प्रोटोकॉल को समझना उपयोगी है।

इवेंट के प्रकार

प्रासंगिक अपडेट्स

प्रासंगिक अपडेट्स आपके ऐप्लिकेशन को बातचीत में बिना रुकावट डाले बैकग्राउंड जानकारी भेजने देते हैं।

मुख्य विशेषताएं:

  • अपडेट्स को बातचीत में बैकग्राउंड जानकारी के रूप में शामिल किया जाता है।
  • मौजूदा बातचीत के फ्लो में रुकावट नहीं डालते।
  • UI स्टेट, यूज़र की गतिविधियां या पर्यावरणीय डेटा भेजने के लिए उपयोगी।
// Contextual update event structure
{
"type": "contextual_update",
"text": "User appears to be looking at pricing page"
}
// Example sending contextual updates
function sendContextUpdate(information) {
websocket.send(
JSON.stringify({
type: "contextual_update",
text: information,
})
);
}
// Usage examples
sendContextUpdate("Customer status: Premium tier");
sendContextUpdate("User navigated to Help section");
sendContextUpdate("Shopping cart contains 3 items");

यूज़र संदेश

यूज़र संदेशों से आप टेक्स्ट को सीधे बातचीत में भेज सकते हैं, जैसे यूज़र ने उसे बोला हो। यह टेक्स्ट-आधारित इंटरैक्शन के लिए या बातचीत के फ्लो में कोई खास टेक्स्ट शामिल करने के लिए उपयोगी है।

मुख्य विशेषताएं:

  • टेक्स्ट को बातचीत के लिए यूज़र इनपुट के रूप में प्रोसेस किया जाता है।
  • बोले गए यूज़र इनपुट जैसा ही रिस्पॉन्स फ्लो ट्रिगर करता है।
  • टेक्स्ट-आधारित इंटरफ़ेस या प्रोग्रामेटिक यूज़र इनपुट के लिए उपयोगी।
// User message event structure
{
"type": "user_message",
"text": "I would like to upgrade my account"
}
// Example sending user messages
function sendUserMessage(text) {
websocket.send(
JSON.stringify({
type: "user_message",
text: text,
})
);
}
// Usage examples
sendUserMessage("I need help with billing");
sendUserMessage("What are your pricing options?");
sendUserMessage("Cancel my subscription");

यूज़र गतिविधि

यूज़र गतिविधि इवेंट्स एजेंट द्वारा होने वाली रुकावटों को रोकने के संकेत के रूप में काम करते हैं।

मुख्य विशेषताएं:

  • टर्न टाइमआउट टाइमर रीसेट करता है।
  • बातचीत के कंटेंट या फ्लो को प्रभावित नहीं करता।
  • चुप्पी के दौरान लंबे समय तक चलने वाली बातचीत बनाए रखने के लिए उपयोगी।
// User activity event structure
{
"type": "user_activity"
}
// Example sending user activity
function sendUserActivity() {
websocket.send(
JSON.stringify({
type: "user_activity",
})
);
}
// Usage example - send activity ping every 30 seconds
setInterval(sendUserActivity, 30000);

बेहतरीन तरीके

  1. प्रासंगिक अपडेट्स

    • प्रासंगिक लेकिन संक्षिप्त जानकारी भेजें।
    • बहुत ज़्यादा अपडेट्स भेजकर LLM को ओवरलोड न करें।
    • ऐसी जानकारी पर ध्यान दें जो बातचीत के फ्लो को प्रभावित करती हो या ऐसे UI में गतिविधि से मिला महत्वपूर्ण संदर्भ हो जो वॉइस एजेंट के लिए सुलभ न हो।
  2. यूज़र संदेश

    • जब ऑडियो उपलब्ध या उपयुक्त न हो, तब टेक्स्ट-आधारित यूज़र इनपुट के लिए इस्तेमाल करें।
    • सुनिश्चित करें कि टेक्स्ट कंटेंट स्पष्ट और सही फ़ॉर्मैट में हो।
    • प्रोग्रामेटिक संदेश शामिल करते समय बातचीत के संदर्भ पर विचार करें।
  3. यूज़र गतिविधि

    • सेशन बनाए रखने के लिए यूज़र इंटरैक्शन के दौरान गतिविधि पिंग भेजें।
    • गैर-ज़रूरी नेटवर्क ट्रैफ़िक से बचने के लिए उचित अंतराल (जैसे, 30-60 सेकंड) इस्तेमाल करें।
    • वास्तविक यूज़र एंगेजमेंट (माउस मूवमेंट, टाइपिंग आदि) के आधार पर गतिविधि पहचान लागू करें।
  4. टाइमिंग पर विचार

    • उचित समय पर अपडेट्स भेजें।
    • कई प्रासंगिक अपडेट्स को एक ही अपडेट में समूहित करने पर विचार करें (हर छोटे बदलाव को अलग-अलग भेजने के बजाय)।
    • सेशन सक्रिय रखने और बहुत ज़्यादा संदेश भेजने से बचने के बीच संतुलन बनाएं।

विस्तृत इम्प्लीमेंटेशन उदाहरणों के लिए हमारा SDK दस्तावेज़ देखें।