Assistant को अपने प्रोजेक्ट में इंटिग्रेट करना (दूसरी भाषाएं)

Google Assistant को अपने प्रोजेक्ट में जोड़ने के लिए, नीचे दिए गए हर सेक्शन में दिए गए निर्देशों का पालन करें.

जीआरपीसी बाइंडिंग

Google Assistant सेवा को gRPC पर बनाया गया है. यह बेहतर परफ़ॉर्मेंस वाला ओपन सोर्स RPC फ़्रेमवर्क है. यह फ़्रेमवर्क दो-तरफ़ा ऑडियो स्ट्रीमिंग के लिए बहुत काम का है.

Python

अगर Python का इस्तेमाल किया जा रहा है, तो यह गाइड इस्तेमाल करें.

C++

GitHub पर हमारा C++ सैंपल देखें.

Node.js

GitHub पर हमारा Node.js सैंपल देखें.

Android Things

क्या आपको एम्बेड किए गए डिवाइसों में दिलचस्पी है? Android की चीज़ों के लिए, Assistant SDK टूल का सैंपल देखें.

अन्य भाषाएं

  • Google Assistant Service API के लिए प्रोटोकॉल बफ़र इंटरफ़ेस की परिभाषाएं पाने के लिए, googleapis रिपॉज़िटरी (डेटा स्टोर करने की जगह) को क्लोन करें.
  • अपनी पसंद की भाषा के लिए gRPC बाइंडिंग जनरेट करने के लिए, gRPC दस्तावेज़ फ़ॉलो करें
  • नीचे दिए गए सेक्शन में बताया गया तरीका अपनाएं.

अपने Google खाते को, Assistant के साथ काम करने के लिए अनुमति दें और उसकी पुष्टि करें

अगला क़दम है, अपने डिवाइस को Google खाते का इस्तेमाल करके Google Assistant से बात करने की अनुमति देना.

Assistant SDK टूल के स्कोप की मदद से OAuth टोकन पाना

आपके डिवाइस को Assistant से कनेक्ट करने की अनुमति देने के लिए, Assistant SDK टूल OAuth 2.0 ऐक्सेस टोकन का इस्तेमाल करता है.

प्रोटोटाइप करते समय, अपने डिवाइस मॉडल को रजिस्टर करते समय जनरेट की गई client_secret_<client-id>.json फ़ाइल से OAuth2.0 क्रेडेंशियल आसानी से जनरेट किए जा सकते हैं. इसके लिए, अनुमति देने वाले टूल का इस्तेमाल किया जा सकता है.

क्रेडेंशियल जनरेट करने के लिए, यह तरीका अपनाएं:

  1. अनुमति देने वाले टूल और उसकी डिपेंडेंसी को सिस्टम Python पैकेज से अलग करने के लिए, Python वर्चुअल एनवायरमेंट का इस्तेमाल करें.

    sudo apt-get update
    sudo apt-get install python3-dev python3-venv # Use python3.4-venv if the package cannot be found.
    python3 -m venv env
    env/bin/python -m pip install --upgrade pip setuptools wheel
    source env/bin/activate
    
  2. अनुमति देने वाला टूल इंस्टॉल करें:

    python -m pip install --upgrade google-auth-oauthlib[tool]
  3. टूल चलाएं. अगर इसे डिवाइस पर किसी टर्मिनल से चलाया जा रहा है (एसएसएच सेशन नहीं), तो --headless फ़्लैग हटाएं:

    google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
    

जब आप अपने डिवाइस के प्रावधान करने के तरीके के हिस्से के तौर पर, अनुमति देने के लिए तैयार हों, तब Google API ऐक्सेस करने के लिए OAuth 2.0 का इस्तेमाल करना के बारे में हमारी गाइड पढ़ें. इससे आपको, OAuth ऐक्सेस टोकन पाने, उन्हें बनाए रखने, और उन्हें इस्तेमाल करने का तरीका समझने में मदद मिलेगी. इससे, आपके डिवाइस को Assistant API से बात करने की अनुमति मिलेगी.

इन गाइड को इस्तेमाल करने के दौरान, इनका इस्तेमाल करें:

अपने डिवाइस को सुरक्षित करने के तरीके से जुड़े सुझाव पाने के लिए, निजता और सुरक्षा से जुड़े सबसे सही तरीके देखें.

अपने gRPC कनेक्शन की पुष्टि करने के लिए OAuth टोकन की मदद लेना

आखिर में, Assistant API से gRPC कनेक्शन की पुष्टि करने के लिए, Google के साथ टोकन पर आधारित पुष्टि करने की सुविधा को इस्तेमाल करने का तरीका जानें.

अपना डिवाइस रजिस्टर करें

अपने डिवाइस के मॉडल और इंस्टेंस को मैन्युअल तरीके या रजिस्ट्रेशन टूल (Python में उपलब्ध) की मदद से रजिस्टर करें.

Assistant के साथ बातचीत की बुनियादी बातें लागू करना

  1. Google Assistant Service API के लिए, दो-तरफ़ा स्ट्रीमिंग gRPC क्लाइंट लागू करें.
  2. उपयोगकर्ता के नए अनुरोध को ट्रिगर करने का इंतज़ार करें (उदाहरण के लिए, बटन दबाने से GPIO रुकावट आने तक इंतज़ार करना).
  3. config फ़ील्ड सेट के साथ AssistRequest मैसेज भेजें (AssistConfig देखें). पक्का करें कि config फ़ील्ड में यह जानकारी मौजूद हो:

    • audio_in_config फ़ील्ड, जो बताता है कि आगे के अनुरोधों में दिए जाने वाले audio_in डेटा को कैसे प्रोसेस किया जाए (AudioInConfig देखें).
    • audio_out_config फ़ील्ड, जो सर्वर को audio_out मैसेज दिखाने के लिए अपनी पसंद के फ़ॉर्मैट का इस्तेमाल करता है (AudioOutConfig देखें).
    • device_config फ़ील्ड, जो Assistant पर रजिस्टर किए गए डिवाइस की पहचान करता है (DeviceConfig देखें).
    • dialog_state_in फ़ील्ड, जिसमें अनुरोध से जुड़ा language_code शामिल होता है (DialogStateIn देखें).
  4. रिकॉर्डिंग शुरू करें.

  5. audio_in फ़ील्ड में, बोलकर दी गई क्वेरी के ऑडियो डेटा के साथ, एक से ज़्यादा आउटगोइंग AssistRequest मैसेज भेजें.

  6. आने वाले AssistResponse मैसेज मैनेज करें.

  7. AssistResponse मैसेज से बातचीत का मेटाडेटा निकालें. उदाहरण के लिए, dialog_state_out से, conversation_state और volume_percentage पाएं (DialogStateOut देखें).

  8. END_OF_UTTERANCE के event_type वाले AssistResponse मिलने पर रिकॉर्डिंग बंद करें.

  9. audio_out फ़ील्ड से मिलने वाले ऑडियो डेटा की मदद से, Assistant के जवाब का ऑडियो चलाएं.

  10. पहले एक्सट्रैक्ट किए गए conversation_state को लें और अगले AssistRequest के लिए, उसे AssistConfig में मौजूद DialogStateIn मैसेज में कॉपी करें.

इससे, आप अपने डिवाइस से Google Assistant को पहला अनुरोध करने के लिए तैयार रहेंगे.

डिवाइस पर की जाने वाली कार्रवाइयों की मदद से, बातचीत के डायलॉग बॉक्स को बढ़ाएं

अपने खास डिवाइस की खास हार्डवेयर क्षमताओं को ट्रिगर करने के लिए, ऊपर दिए गए बेसिक बातचीत के डायलॉग बॉक्स को बढ़ाएं:

  1. आने वाले AssistResponse मैसेज में, device_action फ़ील्ड को निकालें (DeviceAction देखें).
  2. device_request_json फ़ील्ड के JSON पेलोड को पार्स करें. इस्तेमाल किए जा सकने वाले Trait की सूची देखने के लिए, डिवाइस Traits पेज देखें. हर trait स्कीमा पेज, EXECUTE अनुरोध का एक नमूना दिखाता है. इसमें डिवाइस निर्देश और JSON पेलोड में दिए गए पैरामीटर शामिल होते हैं.

उपयोगकर्ता के अनुरोध की ट्रांसक्रिप्ट पाएं

अगर आपके डिवाइस से एक डिस्प्ले जुड़ा हुआ है, तो शायद आप उपयोगकर्ता का अनुरोध दिखाने के लिए उसका इस्तेमाल करना चाहें. इस ट्रांसक्रिप्ट को पाने के लिए, AssistResponse मैसेज में मौजूद speech_results फ़ील्ड को पार्स करें. बोली पहचान पूरी होने पर, इस सूची में एक आइटम होगा जिसमें stability को 1.0 पर सेट किया जाएगा.

Assistant से मिले जवाब का टेक्स्ट और/या विज़ुअल रेंडरिंग पाना

अगर आपके डिवाइस के साथ कोई डिसप्ले जुड़ा है, तो उपयोगकर्ता के अनुरोध का जवाब Assistant को सादा टेक्स्ट देने के लिए दिया जा सकता है. यह टेक्स्ट DialogStateOut.supplemental_display_text फ़ील्ड में होता है.

Assistant कुछ क्वेरी के लिए HTML5 के ज़रिए विज़ुअल रिस्पॉन्स देती है (माउंटेन व्यू में मौसम कैसा है? या क्या समय हो रहा है?). इसे चालू करने के लिए, screen_out_config फ़ील्ड को AssistConfig में सेट करें. ScreenOutConfig मैसेज में फ़ील्ड screen_mode है, जिसे PLAYING पर सेट किया जाना चाहिए.

इसके बाद, AssistResponse मैसेज में फ़ील्ड screen_out सेट होगा. data फ़ील्ड से HTML5 डेटा (अगर मौजूद हो) निकाला जा सकता है.

टेक्स्ट इनपुट के ज़रिए क्वेरी सबमिट करना

अगर आपके डिवाइस से कोई टेक्स्ट इंटरफ़ेस (उदाहरण के लिए, कोई कीबोर्ड) जुड़ा है, तो config फ़ील्ड में text_query फ़ील्ड को सेट करें (AssistConfig देखें). audio_in_config फ़ील्ड को सेट न करें.

समस्या हल करना

अगर आपको कोई समस्या होती है, तो समस्या का हल पेज पर जाएं.