शर्तें

डेटा मॉडल ऑब्जेक्ट की वैल्यू का इस्तेमाल करके, सीन में कंडिशनल लॉजिक को लागू किया जा सकता है. नीचे दिए सेक्शन में, शर्तों के लिए मान्य सिंटैक्स के बारे में बताया गया है.

लॉजिकल ऑपरेटर

ऑपरेटर ब्यौरा
&& तार्किक और. इनर एक्सप्रेशन का आकलन बार-बार किया जाता है. अगर कोई एक्सप्रेशन गलत के तौर पर नतीजा दिखाता है, तो आकलन को प्रोसेस नहीं किया जाता.
|| लॉजिकल OR. अंदरूनी एक्सप्रेशन का आकलन बार-बार किया जाता है. साथ ही, अगर किसी एक्सप्रेशन के सही होने का पता चलता है, तो आकलन को प्रोसेस नहीं किया जाता
! सही जवाब नहीं है. इंटरनल एक्सप्रेशन का आकलन नहीं किया जाता

न्यूमेरिक और स्ट्रिंग ऑपरेटर

इन संख्याओं वाले और स्ट्रिंग ऑपरेटर का इस्तेमाल किया जा सकता है:

ऑपरेटर ब्यौरा
+ संख्याओं या स्ट्रिंग को जोड़ने की प्रोसेस
- संख्याएं घटाना
* संख्याओं को गुणा करें
/ संख्याओं को विभाजित करें

बूलियन

नीचे दिए गए कॉन्सटेंट बूलियन का इस्तेमाल किया जा सकता है:

स्थिर ब्यौरा
true अंग्रेज़ी के छोटे अक्षरों में होना चाहिए
false अंग्रेज़ी के छोटे अक्षरों में होना चाहिए
!false true का आकलन करता है. अंग्रेज़ी के छोटे अक्षरों में होना चाहिए.

कंपैरिज़न ऑपरेटर

नीचे दिए गए कंपैरिज़न ऑपरेटर उपलब्ध हैं:

ऑपरेटर ब्यौरा
== Equals
!= बराबर नहीं है
< इससे कम
<= बराबर से कम
> इससे ज़्यादा
>= बराबर से बड़ा

सूचियां और मैप

session.params.myList नाम की सूची दी गई:

सिंटैक्स ब्यौरा
x in session.params.myList अगर x वैल्यू session.params.myList में है, तो 'सही' दिखाता है
myList[x] myList के इंडेक्स x पर मान लौटाता है
size(session.params.myList) सूची का साइज़ दिखाता है

session.params.myMap नाम का मैप दिया गया:

सिंटैक्स ब्यौरा
session.params.myMap == {"one": 1, "two":2} अगर मैप बराबर हैं, तो true दिखाता है
session['params']['myMap']['one'] बताई गई कुंजी वाली वैल्यू दिखाता है
size(session.params.myMap) मैप का साइज़ दिखाता है

डेटा मॉडल

सीन की स्थितियों में इन ऑब्जेक्ट का इस्तेमाल किया जा सकता है:

सिंटैक्स ब्यौरा
intent मैच होने वाले इंटेंट पैरामीटर का डेटा
scene स्लॉट-फ़िलिंग डेटा
session सेशन स्टोरेज का डेटा
user उपयोगकर्ता के स्टोरेज से जुड़ा डेटा
home होम स्टोरेज का डेटा
device डिवाइस की क्षमता और जगह की जानकारी का डेटा
canvas कैनवस की स्थिति का डेटा
resources स्थानीय भाषा में प्रोजेक्ट के संसाधन (ऑडियो, इमेज, स्ट्रिंग वगैरह) डेटा

नीचे JSON में पूरे डेटा मॉडल का एक उदाहरण स्निपेट दिया गया है:

{
  "intent": {
    "params": {
      "<param_name>": {
        "original": "five people",
        "resolved": 5
      }
    }
   },
  "session": {
    "params": {
      "<session_params_key>": "<session_params_value>"
    }
  },
  "scene": {
    "slots": {
      "status": "FINAL",
      "params": {
        "<slot_name>": "<slot_value>"
      }
    }
  },
  "user": {
    "params": {
      "<user_params_key>": "<user_params_value>"
    },
    "permissions": [
      "DEVICE_PRECISE_LOCATION"
    ],
    "accountLinkingStatus": "LINKED",
    "verificationStatus": "VERIFIED",
    "lastSeenTime": {
      "seconds": 123,
      "nanos": 456
    },
    "engagement": {
      "pushNotificationIntents": [
        "intent1",
        "intent2"
      ]
    }
  },
  "home": {
    "params": {
      "<home_params_key>": "<home_params_value>"
    }
  },
  "canvas": {
    "state": {
      "<canvas_state_key>": "<canvas_state_value>"
    }
  },
  "device": {
    "capabilities": [
      "SPEECH",
      "RICH_RESPONSE",
      "LONG_FORM_AUDIO",
      "INTERACTIVE_CANVAS"
    ],
    "currentLocation": {
      "coordinates": {
        "latitude": 37.422,
        "longitude": -122.084
      },
      "postalAddress": {
        "revision": 0,
        "regionCode": "US",
        "languageCode": "en",
        "postalCode": "94043",
        "sortingCode": "",
        "administrativeArea": "California",
        "locality": "Mountain View",
        "sublocality": "",
        "addressLines": ["1600 Amphitheatre Parkway"],
        "recipients": [],
        "organization": ""
      }
    }
  },
  "resources": {
    "strings": {
      "<resource_string_key>": "<resource_string_value>"
    },
    "images": {
      "<resource_image_key>": "<resource_image_value>"
    }
  }
}

इस्तेमाल से जुड़ी जानकारी

सिंटैक्स के ये उदाहरण मान लेते हैं कि आप session.params ऑब्जेक्ट के साथ काम कर रहे हैं:

session.params = {
  "flag": true,
  "count": 10,
  "name": "john smith",
  "myList": [1, 2, 3],
  "myMap": {"one": 1, "two":2}
}

आप नीचे दी गई शर्तें पूरी कर सकते हैं:

// numbers and boolean logic
session.params.count > 0 && session.params.count < 100    // AND
session.params.count == 0 || session.params.count != 5    // OR
!(session.params.count <= 0)         // NOT

// booleans
!false                      // true constant
session.params.flag         // boolean variable
session.params.flag == true // explicitly compare with true constant

// strings
session.params.name == "john smith"  // double quotes supported
session.params.name == 'john smith'  // single quotes supported
session.params.name.contains("john") // substring
session.params.name + "!!!" == "john smith!!!" // string concatenation
session.params.name < "abc"          // compares lexicographically
size(session.params.name) == 10      // length of string

// lists
1 in session.params.myList        // "contains in list" operator
session.params.myList[0] == 1     // "index into list" operator
size(session.params.myList) == 3  // returns number of elements in the list

// maps
session.params.myMap == {"one": 1, "two":2} // compare map with json
session['params']['myMap']['one'] == 1      // index using square brackets
size(session.params.myMap) == 2             // number of entries in the map