भावात्मक संवाद

भावात्मक संवाद एजेंट को भावनाओं के प्रति जागरूक बनाता है: यह उपयोगकर्ता की आवाज़ से उसके लहजे — निराशा, उत्साह, झिझक — को समझता है और अपनी प्रतिक्रिया को उसी के अनुरूप ढालता है। निराश ग्राहक को अधिक शांत और सावधान एजेंट सुनाई देता है; खुश ग्राहक को बदले में गर्मजोशी सुनाई देती है। यह स्क्रिप्ट और बातचीत के बीच का अंतर है।

इसे सक्षम करना

RealtimeConfig पर एक बिल्डर कॉल:

let config = RealtimeConfig::default()
    .with_instruction("You are a warm, empathetic support agent.")
    .with_voice("Kore")
    .with_audio_only()
    .with_vad(VadConfig::server_vad())
    .with_transcription()
    .with_affective_dialog(true);   // ← emotion-aware responses

आवश्यकताएँ (इसे पढ़ें)

भावात्मक संवाद केवल Gemini के लिए उपलब्ध सुविधा है, जिसकी दो अनिवार्य आवश्यकताएँ हैं:

  1. एक native-audio मॉडल। यह half-cascade gemini-3.1-flash-live-preview पर समर्थित नहीं है। जैसे किसी native-audio मॉडल का उपयोग करें: models/gemini-live-2.5-flash-native-audio
  2. v1alpha endpoint। क्रेट का GeminiLiveBackend::studio(...) पहले से ही v1alpha के माध्यम से कनेक्ट होता है, इसलिए यह आपके लिए संभाल लिया जाता है।

यदि आप ऐसे मॉडल पर with_affective_dialog(true) सेट करते हैं जो इसका समर्थन नहीं करता, तो Gemini सेटअप "Unknown name enableAffectiveDialog" के साथ अस्वीकार कर दिया जाता है और सत्र बंद हो जाता है। इसलिए इसे सक्षम करते समय मॉडल बदलें:

let (default_model, voice) = if affective {
    ("models/gemini-live-2.5-flash-native-audio", "Kore")
} else {
    ("models/gemini-3.1-flash-live-preview", "Kore")
};

OpenAI (और गैर-native Gemini मॉडलों) पर with_affective_dialog(true) एक no-op है — हानिरहित, बस इसे अनदेखा कर दिया जाता है — इसलिए इसे बिना शर्त सेट करना सुरक्षित है और provider को निर्णय लेने दें।

समझौता

Native-audio मॉडल सबसे स्वाभाविक, अभिव्यंजक आवाज़ और भाव-अनुकूलन देते हैं, लेकिन वे half-cascade मॉडल की तुलना में टूल कम विश्वसनीय ढंग से कॉल करते हैं। इसलिए यह वास्तविक विकल्प है:

  • टूल-प्रधान एजेंट (रिफंड, खोज, कार्रवाइयाँ) → half-cascade (gemini-3.1-flash-live-preview), बिना भावात्मक संवाद के।
  • सहानुभूति-प्रथम एजेंट (सहायता के दौरान तनाव कम करना, साथ देना, कोचिंग) → native-audio + भावात्मक संवाद।

customer_service उदाहरण इसी कारण इसे opt-in बनाता है: CS_AFFECTIVE=1 Gemini को native-audio मॉडल पर स्विच करता है और फ़्लैग को चालू करता है; अन्यथा यह टूल के लिए विश्वसनीय मॉडल को बनाए रखता है।

अंदर की कार्यप्रणाली

with_affective_dialog(true), RealtimeConfig.affective_dialog को सेट करता है, और Gemini सेटअप enableAffectiveDialog: true को generationConfig के अंदर उत्सर्जित करता है (सेटअप के शीर्ष स्तर पर नहीं — v1alpha endpoint उसे वहाँ अस्वीकार कर देता है)। इसे उपयोग करने के लिए आपको यह जानना आवश्यक नहीं है, लेकिन यही कारण है कि model + endpoint की आवश्यकताएँ सख्त हैं।

फ़्लैग के बिना भी सहानुभूति। OpenAI या half-cascade model पर भी, एक अच्छी तरह लिखा गया निर्देश ("उपयोगकर्ता की भावनात्मक स्थिति पर ध्यान दें और उसे ईमानदारी से स्वीकार करें") सार्थक रूप से सहानुभूतिपूर्ण व्यवहार उत्पन्न करता है। Affective dialogue, Gemini native-audio पर, इसके अतिरिक्त वास्तविक ध्वनिक टोन-मिलान प्रदान करता है।

अगला: मेमोरी →

भावात्मक संवाद - ADK-Rust दस्तावेज़ीकरण | ADK-Rust