אחסון בבית

בקריאה לפעולה מאתר אחר אפשר לשמור ערכי פרמטרים בכמה סשנים משתמשים מאותו בית (על סמך Home Graph) באחסון הביתי. הפעולה יכולה הם משתמשים בערכים המאוחסנים האלה מאוחר יותר בהנחיות ובתנאים, יכול לגשת לערכים באחסון הביתי במקרה הצורך.

מצב האחסון בבית מועבר בבקשת app.handle() ונשמר באובייקט home.

מגבלות

לא ניתן להשתמש באחסון הביתי במכשירים ניידים, כי הם לא חלק מ'בית' תרשים. בקוד התגובה לפעולה מאתר אחר (webhook) צריך להשתמש ביכולת המכשיר של HOME_STORAGE להסתעף ללוגיקה עסקית שמבוססת על היכולות של המכשיר של המשתמש.

צריך להביע הסכמה לשימוש באחסון לבית:

  1. במסוף Actions, נכנסים אל Deploy > מידע על הספרייה
  2. בקטע מידע נוסף, מסמנים את התיבה של דף הבית אחסון נוסף.

קריאה וכתיבה של נתונים בבית

כדי לעדכן או להגדיר ערך חדש באחסון הביתי, צריך להקצות את הערך ל-params בשדה של האובייקט home בקריאת תגובה לפעולה מאתר אחר (webhook). הדוגמה הבאה מגדירה את "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"
      }
    }
  }
}
    

כדי לגשת לנתונים שמאוחסנים באחסון הביתי, יש להקצות אותם למשתנה ב-webhook שיחה. הדוגמה הבאה מאחזרת ערך מ-'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 בשיחת תגובה לפעולה מאתר אחר (webhook). הדוגמה הבאה מנקה את הערך של '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 הוא השם שניתן webhook כשהפרמטר הוגדר.

לדוגמה, אחסנתם בעבר ערך צבע באחסון הביתי הפרמטר exampleColor. כדי לגשת לערך הזה בהנחיה, אתם מפנים אל ערך באמצעות $home.params.exampleColor:

JSON

{
  "candidates": [{
    "first_simple": {
      "variants": [{
        "speech": "Your favorite color is $home.params.exampleColor."
      }]
    }
  }]
}
    

הפניה לערכים מאוחסנים בתוך תנאים

אפשר גם להפנות לערכים שמאוחסנים באחסון הביתי לפי תנאים. שפת תרגום בהפניה לערך, משתמשים בפונקציה home.params.PARAMETER_NAME כאשר PARAMETER_NAME הוא השם שניתן webhook כשהפרמטר הוגדר.

לדוגמה, אחסנתם בעבר ערך צבע באחסון הביתי הפרמטר exampleColor, וצריך להתאים אותו לערך "red" תוך שימוש תנאי. בתנאי שלכם, אתם מפנים לערך המאוחסן באמצעות home.params.exampleColor עכשיו ביטוי התנאי ייראה כך: הזה:

תחביר של תנאים

home.params.exampleColor == "red"
    

תפוגת התוקף של נתוני האחסון בבית

נתוני האחסון בבית נמחקים אחרי 90 ימים רצופים שבהם הפעולה לא נמחקה הופעלה. הפעלת הפעולה בכל מכשיר שמשויך ל-Home Graph מאפס את הטיימר ל-90 יום. אם מוחקים מבנה ב-Home Graph, הנתונים התואמים של האחסון בבית יימחקו.

עבור פעולות שמשתמשות באחסון הביתי, מנהלי המבנה ב-Home Graph יכולים לנקות את אחסון המבנים שהם מנהלים מדף הפעולה בספרייה של Assistant:

  1. מחפשים את הפעולה שרוצים להציג או לנקות את נפח האחסון של המשתמש ובוחרים בה.
  2. גוללים לתחתית הדף:
    • כדי להסיר נתונים ששמורים באחסון הביתי, לוחצים על הפסקת action_name לזכור אותי.

כשהמנהל של מכשיר מנתק אותו מהמבנה, האחסון הביתי גם התנתקו. נתוני האחסון בבית עדיין משויכים למכשיר גם אם מנהל המבנה משתנה, אלא אם מנהל המבנה מסיר אותו.

נתוני האחסון בבית בסימולטור

כשבודקים את הפעולה באמצעות הסימולטור במסוף הפעולות, אופן הפעולה של נתונים שמאוחסנים באחסון הביתי שונה מעט מזה של נתונים במכשיר. הסימולטור נחשב לחלק מתרשים הבית שלו, לכן הנתונים לא עקביים למכשירים אחרים שעשויים להיות מחוברים לרשת. בנוסף, בדף הבית נתוני האחסון אינם נשמרים בהפעלות שונות כאשר מומלץ לבצע סימולציה של לא מאומת ההגדרה של סימולטור המשתמש מופעלת.

אינטראקציה לדוגמה

הנה אינטראקציה לדוגמה של משתמש שנכנס לחשבון בהפעלה הראשונה של הפעולה:

שאילתת משתמש Ok Google, talk to ExampleAction.
תשובה מ-Assistant קבלת ExampleAction.
תשובה מ-Assistant לתשומת ליבכם, ExampleAction נשמרת בכל פעם שמשחקים אותה, כך אנשים אחרים באותו בית יכולים להמשיך מהמקום שבו הפסקת.
תגובת ExampleAction שלום, הגעת לרמה 0. אומרים 'הבא', 'איפוס' או 'ביטול'.
שאילתת משתמש הבא.
תגובת ExampleAction הגעת לרמה 1.
שאילתת משתמש יציאה.

לאחר מכן, כשאותו משתמש מאומת חוזר לפעולה אחרי זמן מה:

שאילתת משתמש Ok Google, talk to ExampleAction.
תשובה מ-Assistant קבלת ExampleAction.
תגובת ExampleAction שלום, הגעת לרמה 1. אומרים 'הבא', 'איפוס' או 'ביטול'.
שאילתת משתמש הבא.
תגובת ExampleAction הגעת לרמה 2.
שאילתת משתמש יציאה.

למחרת, משתמש לא מאומת יבצע אינטראקציה עם הפעולה במכשיר אחר באותו בית (כפי שצוין ב-Home Graph).

שאילתת משתמש Ok Google, talk to ExampleAction.
תשובה מ-Assistant קבלת ExampleAction.
תשובה מ-Assistant לתשומת ליבכם, ExampleAction נשמרת בכל פעם שמשחקים אותה, כך אנשים אחרים באותו בית יכולים להמשיך מהמקום שבו הפסקת.
תגובת ExampleAction שלום, הגעת לרמה 2. אומרים 'הבא', 'איפוס' או 'ביטול'.
שאילתת משתמש הבא.
תגובת ExampleAction הגעת לרמה 3.
שאילתת משתמש יציאה.