इसके बाद, अपने डिवाइस पर कस्टम कोड चलाने के लिए, इन निर्देशों का पालन करें Google Assistant से मिलने वाले निर्देशों का जवाब देता है.
सैंपल चलाएं
अब आपने एक विशेषता तय की है और मॉडल को अपडेट किया है, तो पक्का करें कि Google Assistant सही जवाब के लिए चालू/बंद निर्देश वापस भेज रही है क्वेरी.
googlesamples-assistant-hotword --device-model-id my-model
यह क्वेरी करके देखें:
Ok Google, चालू करो.
आपको कंसोल आउटपुट में ये स्टेटमेंट दिखेंगे. अगर नहीं, तो समस्या हल करने के निर्देश दिए गए हैं.
ON_RECOGNIZING_SPEECH_FINISHED:
{'text': 'turn on'}
ON_DEVICE_ACTION:
{'inputs': [{'payload': {'commands': [{'execution': [{'command': 'action.devices.commands.OnOff',
'params': {'on': True}}], 'devices': [{'id': 'E56D39D894C2704108758EA748C71255'}]}]},
'intent': 'action.devices.EXECUTE'}], 'requestId': '4785538375947649081'}
Do command action.devices.commands.OnOff with params {'on': True}
आपको सोर्स कोड में ये स्टेटमेंट कहां प्रिंट होंगे.
सोर्स कोड पाना
अब आप अपना प्रोजेक्ट शुरू करने के लिए तैयार हैं:
git clone https://github.com/googlesamples/assistant-sdk-python
कमांड हैंडलर ढूंढना
सैंपल कोड में मौजूद hotword.py
फ़ाइल, अनुरोध भेजने के लिए SDK टूल का इस्तेमाल करती है और
Google Assistant से जवाब पा सकें.
cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library
nano hotword.py
इस हैंडलर परिभाषा को खोजें:
def process_event(event):
फ़िलहाल, यह फ़ंक्शन हर डिवाइस कार्रवाई इवेंट के नाम और सभी पैरामीटर में नीचे दी गई लाइन शामिल है:
print('Do command', command, 'with params', str(params))
यह कोड action.devices.commands.OnOff
निर्देश को हैंडल करता है. यह
कमांड, OnOff का हिस्सा है
Trait स्कीमा. फ़िलहाल, यह कोड सिर्फ़ आउटपुट को कंसोल पर प्रिंट करता है. आप
इस कोड को अपने
प्रोजेक्ट. process_event()
में print
निर्देश के तहत, इस ब्लॉक को जोड़ें.
print('Do command', command, 'with params', str(params)) # Add the following: if command == "action.devices.commands.OnOff": if params['on']: print('Turning the LED on.') else: print('Turning the LED off.')
आउटपुट देखने के लिए, बदले गए सोर्स कोड को सीधे चलाएं.
python hotword.py --device-model-id my-model
पहले की तरह ही क्वेरी का इस्तेमाल करें:
Ok Google, चालू करो.
अगर आपने एलईडी कनेक्ट किया है Raspberry Pi के ज़रिए, यह जानने के लिए पढ़ना जारी रखें कि आपके सवाल को ध्यान में रखकर LED को कैसे जलाया जाता है OnOff आदेश. अगर आपने ऐसा नहीं किया है, तो अगले सेक्शन में जाकर ज़्यादा एट्रिब्यूट और हैंडलर जोड़ना.
अगले चरण - Raspberry Pi
अब आपको पता है कि इनकमिंग कमांड को कैसे मैनेज करना है, तो सैंपल कोड में बदलाव करें का इस्तेमाल करना होगा. अगर आपको इस एक्सटेंशन का इस्तेमाल करना है, तो रैज़बेरी पाई.
GPIO पैकेज इंपोर्ट करें
चालू करें पर जनरल पर्पज़ इनपुट/आउटपुट (GPIO) पिन के लिए सॉफ़्टवेयर एक्सेस को आसान बनाने के लिए Raspberry Pi, RPi.GPIO इंस्टॉल करो पैकेज को वर्चुअल एनवायरमेंट में इकट्ठा करने की सुविधा मिलती है.
pip install RPi.GPIO
सैंपल में बदलाव करना
hotword.py
फ़ाइल खोलें.
nano hotword.py
hotword.py
फ़ाइल में, RPi.GPIO इंपोर्ट करें
Pi पर GPIO पिन को कंट्रोल करने के लिए मॉड्यूल. नीचे दिए गए स्टेटमेंट को
import
के अन्य स्टेटमेंट:
import RPi.GPIO as GPIO
आउटपुट पिन को शुरुआत में, लो लॉजिक पर सेट करने के लिए, कोड में बदलाव करें. यह करें
इवेंट प्रोसेस करने से पहले, main()
फ़ंक्शन में:
with Assistant(credentials, device_model_id) as assistant: events = assistant.start() device_id = assistant.device_id print('device_model_id:', device_model_id) print('device_id:', device_id + '\n') GPIO.setmode(GPIO.BCM) GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW) ...अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
process_event()
में जोड़े गए कोड में बदलाव करें. जब आदेश मिलता है,
पिन को हाई लॉजिक स्थिति पर सेट करें. जब बंद आदेश प्राप्त हो, तो
लो लॉजिक स्टेट पर पिन करें.
if command == "action.devices.commands.OnOff": if params['on']: print('Turning the LED on.') GPIO.output(25, 1) else: print('Turning the LED off.') GPIO.output(25, 0)
अपने बदलावों को सेव करें और फ़ाइल बंद करें.
सैंपल चलाएं
बदला गया सैंपल कोड चलाएं.
python hotword.py --device-model-id my-model
पहले वाली क्वेरी का इस्तेमाल करें. एलईडी चालू होनी चाहिए.
यह तो बस शुरुआत है. ज़्यादा एट्रिब्यूट और हैंडलर जोड़ने का तरीका जानें.