प्रोजेक्ट बनाएं

कार्रवाइयां प्रोजेक्ट आपकी सभी कार्रवाइयों को एक कंटेनर में पैकेज करता है. आपने इस प्रोजेक्ट को Actions on Google पर पब्लिश किया है, ताकि Google Assistant को पता चल सके कि बातचीत का अनुभव कैसे खोजना और शुरू करना है.

ऐक्शन प्रोजेक्ट कॉम्पोनेंट
पहली इमेज. कार्रवाइयों से जुड़ा प्रोजेक्ट स्ट्रक्चर

अपना ऐक्शन प्रोजेक्ट बनाने के लिए, इन कम-लेवल कॉम्पोनेंट का इस्तेमाल किया जाता है:

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

  • इंटेंट ऐसे टास्क के बारे में बताते हैं जिन्हें पूरा करना है. उदाहरण के लिए, उपयोगकर्ता का कुछ इनपुट या ऐसा सिस्टम इवेंट जिसे प्रोसेस करने की ज़रूरत होती है. आम तौर पर, आप उपयोगकर्ता के इंटेंट का इस्तेमाल करेंगे. इन इंटेंट की मदद से, ट्रेनिंग के ऐसे वाक्यांशों का एलान किया जा सकता है जिन्हें एनएलयू (प्राकृतिक भाषा की समझ) इंजन के ज़रिए बढ़ाया जाता है. इसमें और भी मिलते-जुलते वाक्यांश शामिल होते हैं. एनएलयू, भाषा के ऐसे मॉडल को ट्रेनिंग देने के लिए इन वाक्यांशों के एग्रीगेशन का इस्तेमाल करता है जिसका इस्तेमाल Assistant, उपयोगकर्ता के इनपुट से मिलान करने के लिए करती है. बातचीत के दौरान, अगर उपयोगकर्ता का कोई इनपुट इंटेंट के भाषा मॉडल से मेल खाता है, तो Assistant रनटाइम आपकी सेट की गई कार्रवाई को इंटेंट भेजता है. इससे वह इसे प्रोसेस कर पाता है और उपयोगकर्ता को जवाब दे पाता है.

  • टाइप की मदद से, उपयोगकर्ता के इनपुट से स्ट्रक्चर्ड डेटा एक्सट्रैक्ट किया जा सकता है. ट्रेनिंग वाले वाक्यांशों को टाइप के साथ एनोटेट करके, एनएलयू आपके लिए काम का और स्ट्रक्चर्ड डेटा निकाल सकता है. इससे आपको ओपन-एंडेड इनपुट को पार्स करने की ज़रूरत नहीं पड़ेगी.

  • सीन प्रोसेस इंटेंट. ये आपकी कार्रवाइयों को प्रोसेस करने वाले मुख्य फ़ंक्शन होते हैं. वे स्लॉट भरने की सुविधा इस्तेमाल कर सकते हैं, शर्त के हिसाब से लॉजिक का आकलन कर सकते हैं, उपयोगकर्ता को अनुरोध लौटा सकते हैं, और बिज़नेस लॉजिक को लागू करने के लिए बाहरी वेब सेवाओं को कॉल भी कर सकते हैं. इंटेंट के साथ मिलकर, सीन आपको किसी खास उपयोगकर्ता इनपुट या सिस्टम इवेंट का पता लगाने और उससे जुड़े लॉजिक को लागू करने का असरदार तरीका देते हैं.

  • प्रॉम्प्ट से ऐसे स्टैटिक या डाइनैमिक रिस्पॉन्स मिलते हैं जिनका इस्तेमाल उपयोगकर्ताओं को जवाब देने के लिए किया जाता है.

  • वेबहुक की मदद से, आप वेब सेवाओं (उन्हें पूरा करने) के लिए ज़्यादा काम सौंप सकते हैं. जैसे, डेटा की पुष्टि करना या प्रॉम्प्ट जनरेट करना. आपकी सेट की गई कार्रवाइयां, JSON-आधारित वेबहुक प्रोटोकॉल के ज़रिए, ग्राहकों को आइटम भेजने में आपकी मदद करती हैं.

  • इंटरैक्टिव कैनवस की मदद से एचटीएमएल, सीएसएस, और JavaScript का इस्तेमाल करने वाले वेब ऐप्लिकेशन से, बेहतर और शानदार अनुभव बनाने में मदद मिलती है.

प्रोजेक्ट बनाना

Google Assistant के लिए डेवलप करने से पहले, आपको Actions कंसोल में एक प्रोजेक्ट बनाना होगा. प्रोजेक्ट बनाने के लिए:

  1. Actions कंसोल पर जाएं.
  2. नया प्रोजेक्ट पर क्लिक करें.
  3. अपने प्रोजेक्ट का नाम डालें और प्रोजेक्ट बनाएं पर क्लिक करें.
  4. आपको किस तरह की कार्रवाई बनानी है? स्क्रीन में, अपने प्रोजेक्ट को सबसे सही तरीके से दिखाने वाली कैटगरी चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें.
  5. आपको इसे कैसे बनाना है स्क्रीन पर, बनाने का तरीका चुनें और बिल्डिंग शुरू करें पर क्लिक करें. उदाहरण के लिए, एक खाली प्रोजेक्ट या सैंपल से शुरुआत की जा सकती है.

स्थानीय कार्रवाइयां SDK टूल प्रोजेक्ट बनाना

Actions कंसोल में कार्रवाइयां प्रोजेक्ट बनाने के बाद, अपने लोकल डेवलपमेंट एनवायरमेंट में प्रोजेक्ट शुरू किया जा सकता है.

किसी मौजूदा Actions प्रोजेक्ट से Actions SDK प्रोजेक्ट शुरू करने के लिए, यह तरीका अपनाएं:

  1. अपने लोकल फ़ाइल सिस्टम में, Actions प्रोजेक्ट के लिए एक खाली डायरेक्ट्री बनाएं.
  2. इस खाली डायरेक्ट्री में, एक sdk डायरेक्ट्री बनाएं.
  3. अपनी वर्किंग डायरेक्ट्री को अपने टर्मिनल की sdk डायरेक्ट्री से बदलें.

एक खाली प्रोजेक्ट के साथ शुरू करें

अगर आप उस खाली प्रोजेक्ट से शुरुआत करना चाहते हैं जिसे आपने अभी कंसोल में बनाया है, तो gactions pull --project-id <my-project-id> चलाएं.

$ mkdir myAction
$ cd myAction
$ mkdir sdk
$ cd sdk
$ gactions pull --project-id my-project-id
Pulling your project files from Draft for a project id: "my-project-id"
✔ Done. You should see the files written in path/to/myAction/sdk

सैंपल प्रोजेक्ट से शुरू करें

अगर आपको सैंपल प्रोजेक्ट से शुरू करना है, तो gactions init <sample name> चलाएं.

$ mkdir actions-test
$ cd actions-test
$ mkdir sdk
$ cd sdk
$ gactions init question
Writing sample files for question.
✔ Done. Please checkout the following documentation - https://developers.google.com/assistant/conversational/build on the next steps on how to get started.

प्रोजेक्ट की जानकारी तय करना

आपके प्रोजेक्ट की सेटिंग और संसाधन, आपके प्रोजेक्ट के बारे में जानकारी तय करते हैं. जैसे, सुविधा और प्लैटफ़ॉर्म, इस्तेमाल की जा सकने वाली स्थान-भाषाएं, डिसप्ले नेम, ब्यौरा, लोगो वगैरह. नीचे दी गई टेबल में, मुख्य सेटिंग और संसाधनों के बारे में बताया गया है. Actions on Google इस जानकारी का इस्तेमाल आपके प्रोजेक्ट को Assistant डायरेक्ट्री में डिप्लॉय और पब्लिश करने के लिए करता है.

नाम ब्यौरा
डायरेक्ट्री की जानकारी जानकारी देता है, ताकि Actions on Google आपके प्रोजेक्ट को Assistant डायरेक्ट्री में प्रकाशित कर सके. इसमें आपके प्रोजेक्ट का मेटाडेटा और जानकारी से जुड़ी जानकारी शामिल नहीं होती है. साथ ही, इसमें लोगो और बैनर इमेज के लिए इमेज रिसॉर्स भी शामिल होते हैं.
जगह के हिसाब से टारगेटिंग यह नीति उन स्थान-भाषाओं को कॉन्फ़िगर करती है जिनमें आपकी सेट की गई कार्रवाइयां उपलब्ध होती हैं.
सतह की क्षमताएं यह नीति उन प्लैटफ़ॉर्म को कॉन्फ़िगर करती है जिन पर आपकी कार्रवाइयाँ उपलब्ध हैं.
कंपनी विवरण इसमें आपकी कंपनी की संपर्क जानकारी होती है.
ब्रैंड की पुष्टि करने वाला फ़ॉर्म ज़्यादा फ़ायदे पाने के लिए, अपने मालिकाना हक वाली वेबसाइट या Android ऐप्लिकेशन को कनेक्ट करें. उदाहरण के लिए, बोलकर दिए जाने वाले निर्देशों के नाम और कार्रवाइयों में शामिल वेबसाइट को लिंक करने की सुविधा.
रिलीज़ करें यह आपकी सेट की गई कार्रवाई की टेस्टिंग और प्रोडक्शन के लिए, अलग-अलग टेस्टिंग और प्रोडक्शन रिलीज़ कॉन्फ़िगर करती है.
Assistant लिंक उपयोगकर्ताओं को आपकी वेब प्रॉपर्टी से आपकी कार्रवाइयां शुरू करने की सुविधा दें.

प्रोजेक्ट की जानकारी देने के लिए:

  1. sdk/settings/settings.yaml में अपने Actions प्रोजेक्ट के लिए ग्लोबल सेटिंग तय करें. इस्तेमाल की जा सकने वाली वैल्यू जानने के लिए, सेटिंग से जुड़े रेफ़रंस दस्तावेज़ देखें.

    यहां दिए गए स्निपेट में, sdk/settings/settings.yaml फ़ाइल का उदाहरण दिया गया है:

    accountLinking:
      enableAccountCreation: true
      linkingType: GOOGLE_SIGN_IN
    category: GAMES_AND_TRIVIA
    projectId: my-project-id
    ...
    

  2. ऐसी सेटिंग तय करें जो उपयोगकर्ता के स्थान-भाषा के आधार पर अलग-अलग हो सकती हैं. (उदाहरण के लिए, अलग-अलग भाषाओं में, अलग-अलग भाषाओं में बोले जाने वाले वाक्यांश) किसी sdk/settings/<locale>/settings.yaml फ़ाइल में, स्थान-भाषा को अपनी टारगेट स्थान-भाषा के साथ बदलें.

    इस्तेमाल की जा सकने वाली वैल्यू के बारे में जानने के लिए, LocalizedSettings रेफ़रंस दस्तावेज़ देखें.

    यह स्निपेट, sdk/settings/en/settings.yaml फ़ाइल में तय की गई अंग्रेज़ी सेटिंग का एक उदाहरण है:

    localizedSettings:
      developerEmail: developer@developers.com
      developerName: Developer Name
      displayName: My Display Name
      fullDescription: full description of the action
      largeBannerImage: https://path/to/large/banner
      privacyPolicyUrl: http://path/to/privacy/policy
      sampleInvocations:
      - Talk to My Display Name
      shortDescription: short description of the action
      smallLogoImage: https://path/to/small/logo
      voice: female_1
    ...
    

संसाधन जोड़ें

अपने Actions प्रोजेक्ट में इमेज फ़ाइलें, ऑडियो फ़ाइलें, और स्ट्रिंग जैसे संसाधन सेव किए जा सकते हैं. साथ ही, सिस्टम के तय किए गए $resources वैरिएबल का इस्तेमाल करके, कॉन्फ़िगरेशन फ़ाइलों (जैसे कि प्रॉम्प्ट की परिभाषाएं या शर्तें) की मदद से उनका रेफ़रंस दिया जा सकता है.

प्रोजेक्ट के संसाधन resources/ में सेव किए जाते हैं और हर तरह के संसाधन को डायरेक्ट्री में एक फ़ोल्डर असाइन किया जाता है.

रिसॉर्स टाइप फ़ोल्डर में स्थान-भाषा के हिसाब से फ़ोल्डर बनाकर, संसाधनों को स्थानीय भाषा में बनाया जा सकता है. उदाहरण के लिए, अपनी स्ट्रिंग के स्पैनिश वर्शन को resources/strings/es/<filename>.yaml में सेव किया जा सकता है.

इमेज

इमेज फ़ाइलें resources/images/ में सेव की जाती हैं और आप $resources.images.<name of the image file without file extension> के साथ उनका रेफ़रंस दे सकते हैं. इन फ़ाइल एक्सटेंशन को इस्तेमाल करने की अनुमति है:

  • gif
  • png
  • jpg
  • jpeg

उदाहरण के लिए, अगर छोटे लोगो का अंग्रेज़ी वर्शन resources/images/en/square.png में और बड़े बैनर का अंग्रेज़ी वर्शन, resources/images/en/landscape.jpg में सेव किया जाता है, तो पिछले उदाहरण से sdk/settings/en/settings.yaml यह दिखेगा:

localizedSettings:
  developerEmail: developer@developers.com
  developerName: Developer Name
  displayName: My Display Name
  fullDescription: full description of the action

  largeBannerImage: $resources.images.landscape
  privacyPolicyUrl: http://path/to/privacy/policy
  sampleInvocations:
  - Talk to My Display Name
  shortDescription: short description of the action

  smallLogoImage: $resources.images.square
  voice: female_1
...

ऑडियो फ़ाइलें

ऑडियो फ़ाइलें resources/audio/ में सेव की जाती हैं और आप $resources.audio.<name of the audio file without file extension> की मदद से उनका रेफ़रंस दे सकते हैं.

इन फ़ाइल एक्सटेंशन को इस्तेमाल करने की अनुमति है:

  • mp3
  • mpeg

उदाहरण के लिए, प्रॉम्प्ट से ऑडियो रिकॉर्डिंग का रेफ़रंस दिया जा सकता है:

candidates:
  - first_simple:
      variants:
        - speech: your speech response
    content:
      media:
        mediaType: audio
        mediaObjects:
          - name: media name
            description: media description
            url: $resources.audio.intro

स्ट्रिंग

स्ट्रिंग, resources/strings/ में .yaml फ़ाइलों के तौर पर सेव की जाती हैं. हर फ़ाइल में स्ट्रिंग कुंजियों और उनसे जुड़ी वैल्यू का एक मैप होता है. ये सिंगल स्ट्रिंग या स्ट्रिंग की सूचियां हो सकती हैं. सिंगल स्ट्रिंग वैल्यू के लिए या किसी सूची से कोई रैंडम वैल्यू पाने के लिए, $resources.strings.<name of the image file without file extension>.<key> और सूची में किसी स्ट्रिंग की वैल्यू के लिए $resources.strings.<name of the image file without file extension>.<key>.<numerical index> का इस्तेमाल करें.

उदाहरण के लिए, स्ट्रिंग स्थानीय भाषा के लिए संसाधन स्ट्रिंग का इस्तेमाल करने पर, पिछले उदाहरण में दिया गया sdk/settings/en/settings.yaml यह बन सकता है:

localizedSettings:
  developerEmail: developer@developers.com
  developerName: $resources.strings.appinfo.developerName
  displayName: $resources.strings.appinfo.displayName
  fullDescription: $resources.strings.appinfo.fullDescription
  largeBannerImage: $resources.images.landscape
  privacyPolicyUrl: $resources.strings.appinfo.privacyPolicyUrl
  sampleInvocations:
  - $resources.strings.invocations.sample
  shortDescription: $resources.strings.appinfo.shortDescription
  smallLogoImage: $resources.images.square
  voice: female_1
...

सिम्युलेटर में प्रोजेक्ट की जांच करना

Actions कंसोल में, कार्रवाइयों की झलक देखने के लिए एक सिम्युलेटर मिलता है. सिम्युलेटर की मदद से, डीबग करने की जानकारी देखी जा सकती है, डिवाइस की सुविधाएं सेट की जा सकती हैं, जगह की जानकारी को सिम्युलेट किया जा सकता है, और कई दूसरे काम किए जा सकते हैं.

तीसरी इमेज. सिम्युलेटर के मुख्य हिस्से: (1) उपयोगकर्ता का इनपुट, (2) डिवाइस व्यू, (3) विकल्प और सेटिंग, और (4) बातचीत का लॉग.

प्रोजेक्ट की जांच करने के लिए:

  1. अपनी सेट की गई कार्रवाई को "झलक देखें" पर डिप्लॉय करने और सिम्युलेटर में टेस्टिंग चालू करने के लिए, gactions deploy preview चलाएं.
  2. सिम्युलेटर को ऐक्सेस करने के लिए, कमांड आउटपुट में यूआरएल खोलें.
$ gactions deploy preview
Deploying your project files to your Actions console preview for a project id: "my-project". This may take a few minutes.
Sending configuration files
Waiting for server to respond.
✔ Done. You can now navigate to the Actions Console simulator to test your changes: http://console.actions.google.com/project/my-project/simulator?disableAutoPreview