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 क्रेडेंशियल आसानी से जनरेट किए जा सकते हैं. इसके लिए, अनुमति देने वाले टूल का इस्तेमाल किया जा सकता है.
क्रेडेंशियल जनरेट करने के लिए, यह तरीका अपनाएं:
अनुमति देने वाले टूल और उसकी डिपेंडेंसी को सिस्टम 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
अनुमति देने वाला टूल इंस्टॉल करें:
python -m pip install --upgrade google-auth-oauthlib[tool]
टूल चलाएं. अगर इसे डिवाइस पर किसी टर्मिनल से चलाया जा रहा है (एसएसएच सेशन नहीं), तो
--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 से बात करने की अनुमति मिलेगी.
इन गाइड को इस्तेमाल करने के दौरान, इनका इस्तेमाल करें:
- OAuth स्कोप: https://www.googleapis.com/auth/assistant-sdk-prototype
काम करने वाले OAuth फ़्लो:
- (सुझाया गया) इंस्टॉल किए गए ऐप्लिकेशन
- वेब सर्वर ऐप्लिकेशन
अपने डिवाइस को सुरक्षित करने के तरीके से जुड़े सुझाव पाने के लिए, निजता और सुरक्षा से जुड़े सबसे सही तरीके देखें.
अपने gRPC कनेक्शन की पुष्टि करने के लिए OAuth टोकन की मदद लेना
आखिर में, Assistant API से gRPC कनेक्शन की पुष्टि करने के लिए, Google के साथ टोकन पर आधारित पुष्टि करने की सुविधा को इस्तेमाल करने का तरीका जानें.
अपना डिवाइस रजिस्टर करें
अपने डिवाइस के मॉडल और इंस्टेंस को मैन्युअल तरीके या रजिस्ट्रेशन टूल (Python में उपलब्ध) की मदद से रजिस्टर करें.
Assistant के साथ बातचीत की बुनियादी बातें लागू करना
- Google Assistant Service API के लिए, दो-तरफ़ा स्ट्रीमिंग gRPC क्लाइंट लागू करें.
- उपयोगकर्ता के नए अनुरोध को ट्रिगर करने का इंतज़ार करें (उदाहरण के लिए, बटन दबाने से GPIO रुकावट आने तक इंतज़ार करना).
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
देखें).
रिकॉर्डिंग शुरू करें.
audio_in
फ़ील्ड में, बोलकर दी गई क्वेरी के ऑडियो डेटा के साथ, एक से ज़्यादा आउटगोइंगAssistRequest
मैसेज भेजें.आने वाले
AssistResponse
मैसेज मैनेज करें.AssistResponse
मैसेज से बातचीत का मेटाडेटा निकालें. उदाहरण के लिए,dialog_state_out
से,conversation_state
औरvolume_percentage
पाएं (DialogStateOut
देखें).END_OF_UTTERANCE
केevent_type
वालेAssistResponse
मिलने पर रिकॉर्डिंग बंद करें.audio_out
फ़ील्ड से मिलने वाले ऑडियो डेटा की मदद से, Assistant के जवाब का ऑडियो चलाएं.पहले एक्सट्रैक्ट किए गए
conversation_state
को लें और अगलेAssistRequest
के लिए, उसेAssistConfig
में मौजूदDialogStateIn
मैसेज में कॉपी करें.
इससे, आप अपने डिवाइस से Google Assistant को पहला अनुरोध करने के लिए तैयार रहेंगे.
डिवाइस पर की जाने वाली कार्रवाइयों की मदद से, बातचीत के डायलॉग बॉक्स को बढ़ाएं
अपने खास डिवाइस की खास हार्डवेयर क्षमताओं को ट्रिगर करने के लिए, ऊपर दिए गए बेसिक बातचीत के डायलॉग बॉक्स को बढ़ाएं:
- आने वाले
AssistResponse
मैसेज में,device_action
फ़ील्ड को निकालें (DeviceAction
देखें). 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
फ़ील्ड को सेट न करें.
समस्या हल करना
अगर आपको कोई समस्या होती है, तो समस्या का हल पेज पर जाएं.