ساخت پروژه ها

یک پروژه اکشن تمام اکشن های شما را در یک ظرف واحد بسته بندی می کند. شما این پروژه را در Actions on Google منتشر می‌کنید تا «دستیار Google» بداند چگونه تجربیات مکالمه‌ای شما را کشف و فراخوانی کند.

اجزای پروژه اقدامات
شکل 1 . ساختار پروژه اقدامات

شما از اجزای سطح پایین زیر برای ساخت پروژه Actions خود استفاده می کنید:

  • تنظیمات و منابع ابرداده پروژه و منابعی مانند نمادهای پروژه را تعریف می کنند. Google از این اطلاعات برای انتشار Actions شما در فهرست راهنمای Assistant استفاده می‌کند تا کاربران بتوانند آن‌ها را کشف کرده و فراخوانی کنند.

  • Intent ها وظیفه ای را نشان می دهند که باید انجام شود، مانند برخی از ورودی های کاربر یا یک رویداد سیستم که نیاز به پردازش دارد. متداول ترین نوع قصدی که استفاده می کنید، مقاصد کاربر است. این مقاصد به شما امکان می‌دهد عبارات آموزشی را که به طور طبیعی توسط موتور NLU (درک زبان طبیعی) گسترش می‌یابد تا عبارات مشابه بیشتری را شامل شود، اعلام کنید. NLU از تجمیع این عبارات برای آموزش یک مدل زبان استفاده می کند که دستیار برای مطابقت با ورودی کاربر استفاده می کند. در طول مکالمه، اگر برخی از ورودی های کاربر با مدل زبان intent مطابقت داشته باشد، Assistant runtime intent را به Action شما ارسال می کند تا بتواند آن را پردازش کرده و به کاربر پاسخ دهد.

  • انواع به شما امکان می دهد داده های ساخت یافته را از ورودی کاربر استخراج کنید. با حاشیه نویسی عبارات آموزشی با انواع، NLU می تواند داده های مرتبط و ساختار یافته را برای شما استخراج کند، بنابراین شما مجبور نیستید ورودی های باز را تجزیه کنید.

  • صحنه ها اهداف را پردازش می کنند و مجریان منطق اصلی برای Actions شما هستند. آنها می توانند پر کردن شکاف ها را انجام دهند، منطق شرطی را ارزیابی کنند، درخواست ها را به کاربر برگردانند، و حتی از خدمات وب خارجی برای اجرای منطق تجاری فراخوانی کنند. در ترکیب با مقاصد، صحنه ها راهی قدرتمند برای شناسایی ورودی های کاربر خاص یا رویدادهای سیستم و اجرای منطق مربوطه به شما می دهند.

  • درخواست‌ها پاسخ‌های ایستا یا پویا را تعریف می‌کنند که از آنها برای پاسخ دادن به کاربران استفاده می‌کنید.

  • Webhooks به شما امکان می‌دهد کار اضافی را به سرویس‌های وب واگذار کنید (تکمیل)، مانند اعتبارسنجی داده‌ها یا ایجاد درخواست‌ها. اقدامات شما از طریق یک پروتکل webhook مبتنی بر JSON با انجام شما ارتباط برقرار می کند.

  • بوم تعاملی به شما امکان می دهد با برنامه های وب که از HTML، CSS و جاوا اسکریپت استفاده می کنند، تجربیات غنی و همه جانبه ایجاد کنید.

یک پروژه ایجاد کنید

قبل از اینکه بتوانید برای Google Assistant توسعه دهید، باید یک پروژه در کنسول Actions ایجاد کنید. برای ایجاد یک پروژه:

  1. به کنسول Actions بروید.
  2. پروژه جدید را کلیک کنید.
  3. یک نام برای پروژه خود وارد کنید و روی ایجاد پروژه کلیک کنید.
  4. در چه نوع اکشنی می خواهید بسازید؟ در صفحه، دسته ای را انتخاب کنید که به بهترین شکل پروژه شما را نشان می دهد و روی Next کلیک کنید.
  5. در صفحه چگونه می خواهید آن را بسازید ، روشی را برای ساخت انتخاب کنید و روی Start building کلیک کنید. به عنوان مثال، می توانید با یک پروژه خالی یا با یک نمونه شروع کنید.

یک پروژه محلی Actions SDK ایجاد کنید

هنگامی که یک پروژه Actions را در کنسول Actions ایجاد کردید، می توانید یک پروژه را در محیط توسعه محلی خود مقداردهی اولیه کنید.

برای مقداردهی اولیه یک پروژه Actions SDK از یک پروژه Actions موجود، این مراحل را دنبال کنید:

  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 منتشر کند. شامل متادیتا و توضیحاتی در مورد پروژه شما و منابع تصویری برای لوگوها و تصاویر بنر است.
مکان یابی مناطقی را که Actions شما در آنها در دسترس هستند پیکربندی می کند.
قابلیت های سطحی سطوحی را که Actions شما در آنها در دسترس هستند پیکربندی می کند.
جزئیات شرکت اطلاعات تماس شرکت شما را مشخص می کند.
تایید برند وب‌سایت یا برنامه اندرویدی را که مالک آن هستید وصل کنید تا از مزایای اضافی مانند نام‌های فراخوان رزرو شده و پیوند وب‌سایت در Actions خود استفاده کنید.
رها کنید نسخه های مختلف آزمایش و تولید را برای Action شما برای آزمایش و تولید پیکربندی می کند.
پیوندهای دستیار به کاربران اجازه دهید تا Actions شما را از ویژگی های وب شما فراخوانی کنند.

برای تعریف اطلاعات پروژه:

  1. تنظیمات کلی را برای پروژه Actions خود در sdk/settings/settings.yaml تعریف کنید. برای مقادیر پشتیبانی شده به مستندات مرجع تنظیمات مراجعه کنید.

    قطعه زیر نمونه ای از فایل 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 یک شبیه‌ساز برای پیش‌نمایش اقدامات شما ارائه می‌کند. شبیه‌ساز به شما امکان می‌دهد اطلاعات اشکال‌زدایی را ببینید، قابلیت‌های دستگاه را تنظیم کنید، محلی را شبیه‌سازی کنید، و موارد دیگر.

شکل 3. قسمت های اصلی شبیه ساز: (1) ورودی کاربر، (2) نمای دستگاه، (3) گزینه ها و تنظیمات، و (4) گزارش مکالمه.

برای تست یک پروژه:

  1. اجرای gactions deploy preview .
  2. URL را در خروجی فرمان باز کنید تا به Simulator دسترسی پیدا کنید.
$ 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