बिल्ड फ़ुलफ़िलमेंट (Dialogflow)

पूरा करने की सुविधा से, आपके Actions प्रोजेक्ट के लिए बातचीत वाले इंटरफ़ेस के बारे में पता चलता है. उपयोगकर्ता इनपुट और इनपुट को प्रोसेस करने और कार्रवाई को पूरा करने के लिए लॉजिक.

खास जानकारी

ग्राहक को आइटम भेजने के बाद, उसे Assistant से अनुरोध मिलते हैं, वह इसे प्रोसेस करता है और जवाब. लगातार अनुरोध करने और जवाब देने की यह प्रोसेस, को तब तक आगे बढ़ाएं, जब तक आप उपयोगकर्ता के शुरुआती अनुरोध को पूरा न कर लें.

यहां दिए गए चरणों में बताया गया है कि कार्रवाइयों का इस्तेमाल करके, ग्राहक को आइटम भेजने की सुविधा कैसे दी जा सकती है Node.js या Java/Kotlin क्लाइंट लाइब्रेरी वाला SDK टूल:

  1. कार्रवाइयांSdkApp ऑब्जेक्ट शुरू करें.
  2. फ़ुलफ़िलमेंट लॉजिक में, अनुरोधों को मैनेज करने के लिए फ़ंक्शन बनाएं.

डायलॉग बॉक्स बनाए जा रहे हैं

ActionsSdkApp ऑब्जेक्ट शुरू करें

नीचे दिया गया कोड इंस्टैंशिएट करता है ActionsSdkApp साथ ही, यह Google Cloud Functions के लिए कुछ boilerplate Node.js को सेटअप करता है:

कार्रवाइयां SDK टूल (Node.js)
'use strict';

const {actionssdk} = require('actions-on-google');
const functions = require('firebase-functions');

const app = actionssdk({debug: true});

app.intent('actions.intent.MAIN', (conv) => {
  conv.ask('Hi!');
});

// More intent handling if needed
exports.myFunction = functions.https.onRequest(app);
कार्रवाइयां SDK टूल (Java)
ResponseBuilder responseBuilder = getResponseBuilder(request).add("Hi!");
return responseBuilder.build();
JSON
{
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "inputPrompt": {
        "richInitialPrompt": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "Hi!"
              }
            }
          ]
        }
      },
      "possibleIntents": [
        {
          "intent": "actions.intent.TEXT"
        }
      ]
    }
  ],
  "conversationToken": "{\"data\":{}}",
  "userStorage": "{\"data\":{}}"
}

अनुरोधों को मैनेज करने के लिए फ़ंक्शन बनाएं

जब उपयोगकर्ता कोई वाक्यांश बोलते हैं, तो आपको Google Assistant से अनुरोध मिलता है. यहां की यात्रा पर हूं अनुरोधों में आने वाले इंटेंट को पूरा करें, और ट्रिगर किया गया इंटेंट.

अनुरोधों को मैनेज करने के लिए:

  1. उपयोगकर्ता के इनपुट को प्रोसेस करने के लिए कोई भी ज़रूरी लॉजिक इस्तेमाल करें.

  2. आप जो जवाब दिखाना चाहते हैं उसे पास करने के लिए conv.ask() फ़ंक्शन को कॉल करें का इस्तेमाल करें.

नीचे दिया गया कोड आसान रिस्पॉन्स बनाने का तरीका बताता है:

कार्रवाइयां SDK टूल (Node.js)
conv.ask(`Hi! Say something, and I'll repeat it.`);
कार्रवाइयां SDK टूल (Java)
ResponseBuilder responseBuilder =
    getResponseBuilder(request).add("Hi! Say something, and I'll repeat it.");
return responseBuilder.build();
JSON
{
  "expectUserResponse": true,
  "expectedInputs": [
    {
      "inputPrompt": {
        "richInitialPrompt": {
          "items": [
            {
              "simpleResponse": {
                "textToSpeech": "Hi! Say something, and I'll repeat it."
              }
            }
          ]
        }
      },
      "possibleIntents": [
        {
          "intent": "actions.intent.TEXT"
        }
      ]
    }
  ],
  "conversationToken": "{\"data\":{}}",
  "userStorage": "{\"data\":{}}"
}

इंटेंट हैंडल करना

जब ट्रिगर किए गए इंटेंट को हैंडल करने के लिए आपके सभी फ़ंक्शन मिल जाएं, तब app.intent का इस्तेमाल करके इंटेंट के लिए हैंडलर असाइन करें.

कार्रवाइयां SDK टूल (Node.js)
app.intent('actions.intent.TEXT', (conv) => {
  // handle text intent.
});
app.intent('actions.intent.MAIN', (conv) => {
  // handle main intent.
});
कार्रवाइयां SDK टूल (Java)
@ForIntent("actions.intent.MAIN")
public ActionResponse main(ActionRequest request) {
  // handle main intent
  // ...
}

@ForIntent("actions.intent.TEXT")
public ActionResponse text(ActionRequest request) {
  // handle text intent
  // ...
}

बातचीत का सेशन खत्म किया जा रहा है

अगर आपको बातचीत के बदले, किसी उपयोगकर्ता से कोई इनपुट नहीं लेना है, लेकिन उसे बंद करना है, तो conv.close() फ़ंक्शन को कॉल करें. इस फ़ंक्शन की मदद से Google Assistant, माइक्रोफ़ोन को बंद करके उपयोगकर्ता को टेक्स्ट पढ़कर सुनाती है. साथ ही, बातचीत खत्म करती है.

कॉल करने के मुख्य इंटेंट को मैनेज करना

जब उपयोगकर्ता app.intent.action.MAIN इंटेंट को ट्रिगर करते हैं, तो आम तौर पर आप ऐसा नहीं करते हैं को उपयोगकर्ता के इनपुट की प्रोसेस करनी होगी. अगर आपके ऐक्शन पैकेज में कई कार्रवाइयों के साथ-साथ उपयोग के कई उदाहरणों को शामिल करता है, तो उपयोगकर्ता को उसके ओरिएंटेशन के बारे में बताकर कुछ ऐसी चीज़ें हैं जो वे कर सकते हैं.

  1. अपना जवाब तर्क के रूप में भेजने के लिए conv.ask() फ़ंक्शन को कॉल करें. Google Assistant उपयोगकर्ता को आपका जवाब देती है और फिर उपयोगकर्ता के बताए गए किसी इंटेंट को ट्रिगर किए जाने का इंतज़ार करता है.

नीचे दिया गया स्निपेट दिखाता है कि किसी सामान्य वेलकम इंटेंट को कैसे मैनेज किया जाए:

कार्रवाइयां SDK टूल (Node.js)
// handle the initialTrigger
function handleMainIntent(conv, input) {
  conv.ask(input);
}
कार्रवाइयां SDK टूल (Java)
private ActionResponse handleMainIntent(ResponseBuilder rb, String input) {
  return rb.add(input).build();
}

बातचीत की स्थिति

अगर बातचीत एचटीटीपी/JSON वेबहुक एपीआई का इस्तेमाल किया जा रहा है, तो JSON फ़ॉर्मैट वाले ऑब्जेक्ट (conversationToken) के साथ आपकी बातचीत की स्थिति जिसे आपके और Google Assistant के बीच बार-बार भेजा जाता है. अगर आप Node.js क्लाइंट लाइब्रेरी का इस्तेमाल करके सीधे conv.data फ़ील्ड में लिखा जा सकता है और वहीं से पढ़ा जा सकता है. यह फ़ील्ड अनुरोधों और जवाबों के बीच अपने-आप भेजा जाता है.

कार्रवाइयां SDK टूल (Node.js)
conv.data = {something: 10};
let value = conv.data.something;
कार्रवाइयां SDK टूल (Java)
ResponseBuilder rb = getResponseBuilder(request);
rb.getConversationData().put("something", 10);
Object value = rb.getConversationData().get("something");