वेबहुक कॉल में, होम ग्राफ़ के आधार पर एक ही होम में कई सेशन की पैरामीटर वैल्यू को होम स्टोरेज में सेव किया जा सकता है. आपकी सेट की गई कार्रवाई, सेव की गई उन वैल्यू को बाद में प्रॉम्प्ट और शर्तों में इस्तेमाल कर सकती है. साथ ही, ज़रूरत पड़ने पर आपका वेबहुक कोड, किसी खास होम के लिए होम स्टोरेज में मौजूद वैल्यू को ऐक्सेस कर सकता है.
होम स्टोरेज की स्थिति को app.handle()
अनुरोध में पास किया जाता है और उसे home
ऑब्जेक्ट में सेव किया जाता है.
सीमाएं
होम स्टोरेज का इस्तेमाल मोबाइल डिवाइसों के साथ नहीं किया जा सकता, क्योंकि वे होम ग्राफ़ का हिस्सा नहीं हैं. अपने वेबहुक कोड में, HOME_STORAGE
डिवाइस की क्षमता का इस्तेमाल करके
उपयोगकर्ता के डिवाइस की क्षमता के आधार पर कारोबारी नियम को ब्रांच में शामिल करें.
आपको होम स्टोरेज का इस्तेमाल करने के लिए ऑप्ट इन करना होगा:
- Actions कंसोल में, डिप्लॉय करें > डायरेक्ट्री की जानकारी पर जाएं.
- ज़्यादा जानकारी सेक्शन में, होम स्टोरेज वाला बॉक्स चुनें.
परिवार के किसी सदस्य का डेटा देखना और उसमें बदलाव करना
होम स्टोरेज में नई वैल्यू अपडेट या सेट करने के लिए, वेबहुक कॉल में home
ऑब्जेक्ट के params
फ़ील्ड में वैल्यू असाइन करें. नीचे दिए गए उदाहरण में, होम स्टोरेज में "exampleColor" को "लाल" पर सेट किया गया है:
Node.js
// Assign color to home storage app.handle('storeColor', conv => { let color = 'red'; conv.home.params.exampleColor = color; });
JSON
{ "responseJson": { "session": { "id": "1234567890123456789", "params": {} }, "prompt": { "override": false }, "home": { "params": { "exampleColor": "red" } } } }
होम स्टोरेज में सेव किए गए डेटा को ऐक्सेस करने के लिए, इसे वेबहुक कॉल में किसी वैरिएबल को असाइन करें. नीचे दिया गया उदाहरण, होम स्टोरेज में "exampleColor" से वैल्यू फ़ेच करता है:
Node.js
// Retrieve color from home storage app.handle('getStoredColor', conv => { let color = conv.home.params.exampleColor; });
JSON
{ "responseJson": { "session": { "id": "1234567890123456789", "params": {} }, "prompt": { "override": false }, "home": { "params": { "homeColor": "red" } } } }
पहले से सेव की गई वैल्यू को मिटाने के लिए, वेबहुक कॉल में वैल्यू को null
पर सेट करें.
नीचे दिए गए उदाहरण से, होम स्टोरेज में मौजूद "exampleColor" की वैल्यू हट गई है:
Node.js
// Clear color from home storage app.handle('clearStoredColor', conv => { conv.home.params.exampleColor = null; });
JSON
{ "responseJson": { "session": { "id": "1234567890123456789", "params": {} }, "prompt": { "override": false }, "home": { "params": {} } } }
प्रॉम्प्ट में सेव की गई वैल्यू का रेफ़रंस देना
किसी प्रॉम्प्ट का इस्तेमाल करके, होम स्टोरेज में सेव की गई वैल्यू का रेफ़रंस दिया जा सकता है. वैल्यू की जानकारी देने के लिए, $home.params.PARAMETER_NAME
सिंटैक्स का इस्तेमाल करें. इसमें PARAMETER_NAME
, पैरामीटर सेट किए जाने पर वेबहुक में दिया गया नाम होता है.
उदाहरण के लिए, आपने पहले होम स्टोरेज में पैरामीटर exampleColor
के तौर पर कलर वैल्यू सेव की थी. प्रॉम्प्ट में उस वैल्यू को ऐक्सेस करने के लिए, $home.params.exampleColor
का इस्तेमाल करके उस वैल्यू का रेफ़रंस दें:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $home.params.exampleColor." }] } }] }
शर्तों में सेव की गई वैल्यू का रेफ़रंस
होम स्टोरेज में सेव की गई वैल्यू को conditions सेक्शन में भी देखा जा सकता है. वैल्यू का रेफ़रंस देने के लिए, home.params.PARAMETER_NAME
सिंटैक्स का इस्तेमाल करें. इसमें PARAMETER_NAME
, पैरामीटर सेट किए जाने के दौरान वेबहुक में दिया गया नाम होता है.
उदाहरण के लिए, आपने पहले होम स्टोरेज में किसी कलर की वैल्यू को exampleColor
पैरामीटर के तौर पर सेव किया था और आपको उसे किसी शर्त में मौजूद "लाल" वैल्यू से मैच करना है. अपनी शर्त में, home.params.exampleColor
का इस्तेमाल करके स्टोर की गई वैल्यू का रेफ़रंस दिया जाता है. फिर आपका कंडिशन एक्सप्रेशन
ऐसा दिखता है:
शर्त का सिंटैक्स
home.params.exampleColor == "red"
होम के स्टोरेज में सेव किए गए डेटा की समयसीमा खत्म होने की तारीख
कार्रवाई का न्योता न मिलने पर, लगातार 90 दिनों तक होम स्टोरेज का डेटा वाइप कर दिया जाता है. होम ग्राफ़ से जुड़े किसी भी डिवाइस पर कार्रवाई शुरू करने से 90 दिनों का टाइमर रीसेट हो जाता है. अगर होम ग्राफ़ स्ट्रक्चर मिटा दिया जाता है, तो उससे जुड़ा होम ग्राफ़ डेटा मिटा दिया जाता है.
होम ग्राफ़ का इस्तेमाल करने वाली कार्रवाइयों के लिए, होम ग्राफ़ के मैनेजर Assistant की डायरेक्ट्री में मौजूद कार्रवाई के पेज से, उस स्ट्रक्चर का होम स्टोरेज खाली कर सकते हैं जिसे वे मैनेज करते हैं:
- वह कार्रवाई ढूंढें और चुनें जिसके लिए आपको उपयोगकर्ता का स्टोरेज खाली करना है या देखना है.
- स्क्रोल करके पेज पर सबसे नीचे जाएं:
- होम स्टोरेज में आपके सेव किए गए डेटा को हटाने के लिए, मुझे याद रखने से action_name बंद करें पर क्लिक करें.
जब किसी डिवाइस का मैनेजर डिवाइस से इसे अलग करता है, तो होम स्टोरेज भी अलग हो जाता है. होम स्टोरेज का डेटा किसी डिवाइस से जुड़ा रहता है, भले ही स्ट्रक्चर मैनेजर को बदल दिया जाए.
सिम्युलेटर में होम स्टोरेज का डेटा
Actions कंसोल में सिम्युलेटर का इस्तेमाल करके, आपकी सेट की गई कार्रवाई की जांच करते समय, होम स्टोरेज में सेव किया गया डेटा, किसी फ़िज़िकल डिवाइस से थोड़ा अलग तरीके से काम करता है. इस सिम्युलेटर को उसके होम ग्राफ़ का हिस्सा माना जाता है. इसलिए, डेटा आपके नेटवर्क में मौजूद दूसरे डिवाइस में मौजूद नहीं होता है. इसके अलावा, पुष्टि किए गए उपयोगकर्ता को सिम्युलेट करें सिम्युलेटर सेटिंग के चालू होने पर, होम स्टोरेज का डेटा सभी सेशन में नहीं रहता.
सैंपल इंटरैक्शन
यहां साइन-इन किए हुए उपयोगकर्ता के पहली बार कार्रवाई करने पर उसके इंटरैक्शन का सैंपल दिया गया है:
उपयोगकर्ता की क्वेरी | Ok Google, ExampleAction से बात करो. |
---|---|
Assistant का जवाब | ExampleAction जनरेट किया जा रहा है. |
Assistant का जवाब | आपकी जानकारी के लिए बता दूँ कि ExampleAction को हर बार चलाने पर वह सेव हो जाती है. इससे आपके परिवार के दूसरे लोग उसे वहीं से शुरू कर सकते हैं जहां आपने उसे छोड़ा था. |
ExampleAction का जवाब | नमस्ते, पुष्टि किए गए उपयोगकर्ता. आप लेवल 0 पर हैं. अगला बोलें, रीसेट करें या रद्द करें. |
उपयोगकर्ता की क्वेरी | अगला। |
ExampleAction का जवाब | आप लेवल 1 पर हैं. |
उपयोगकर्ता की क्वेरी | छोड़ें पर टैप करें. |
इसके बाद, जब वही पुष्टि किया गया उपयोगकर्ता कुछ समय बाद कार्रवाई पर वापस लौटता है, तो:
उपयोगकर्ता की क्वेरी | Ok Google, ExampleAction से बात करो. |
---|---|
Assistant का जवाब | ExampleAction जनरेट किया जा रहा है. |
ExampleAction का जवाब | नमस्ते, पुष्टि किए गए उपयोगकर्ता. आप लेवल 1 पर हैं. अगला बोलें, रीसेट करें या रद्द करें. |
उपयोगकर्ता की क्वेरी | अगला। |
ExampleAction का जवाब | आप लेवल 2 पर हैं. |
उपयोगकर्ता की क्वेरी | छोड़ें पर टैप करें. |
अगले दिन, एक ऐसा उपयोगकर्ता जिसकी पुष्टि नहीं हुई है, उसी होम में मौजूद किसी दूसरे डिवाइस पर कार्रवाई के साथ इंटरैक्ट करता है (जैसा कि होम ग्राफ़ पर बताया गया है).
उपयोगकर्ता की क्वेरी | Ok Google, ExampleAction से बात करो. |
---|---|
Assistant का जवाब | ExampleAction जनरेट किया जा रहा है. |
Assistant का जवाब | आपकी जानकारी के लिए बता दूँ कि ExampleAction को हर बार चलाने पर वह सेव हो जाती है. इससे आपके परिवार के दूसरे लोग उसे वहीं से शुरू कर सकते हैं जहां आपने उसे छोड़ा था. |
ExampleAction का जवाब | नमस्ते मेहमान उपयोगकर्ता. आप लेवल 2 पर हैं. अगला बोलें, रीसेट करें या रद्द करें. |
उपयोगकर्ता की क्वेरी | अगला। |
ExampleAction का जवाब | आप लेवल 3 पर हैं. |
उपयोगकर्ता की क्वेरी | छोड़ें पर टैप करें. |