یک پروژه اکشن تمام اکشن های شما را در یک ظرف واحد بسته بندی می کند. شما این پروژه را در Actions on Google منتشر میکنید تا «دستیار Google» بداند چگونه تجربیات مکالمهای شما را کشف و فراخوانی کند.
شما از اجزای سطح پایین زیر برای ساخت پروژه Actions خود استفاده می کنید:
تنظیمات و منابع ابرداده پروژه و منابعی مانند نمادهای پروژه را تعریف می کنند. Google از این اطلاعات برای انتشار Actions شما در فهرست راهنمای Assistant استفاده میکند تا کاربران بتوانند آنها را کشف کرده و فراخوانی کنند.
Intent ها وظیفه ای را نشان می دهند که باید انجام شود، مانند برخی از ورودی های کاربر یا یک رویداد سیستم که نیاز به پردازش دارد. متداول ترین نوع قصدی که استفاده می کنید، مقاصد کاربر است. این مقاصد به شما امکان میدهد عبارات آموزشی را که به طور طبیعی توسط موتور NLU (درک زبان طبیعی) گسترش مییابد تا عبارات مشابه بیشتری را شامل شود، اعلام کنید. NLU از تجمیع این عبارات برای آموزش یک مدل زبان استفاده می کند که دستیار برای مطابقت با ورودی کاربر استفاده می کند. در طول مکالمه، اگر برخی از ورودی های کاربر با مدل زبان intent مطابقت داشته باشد، Assistant runtime intent را به Action شما ارسال می کند تا بتواند آن را پردازش کرده و به کاربر پاسخ دهد.
انواع به شما امکان می دهد داده های ساخت یافته را از ورودی کاربر استخراج کنید. با حاشیه نویسی عبارات آموزشی با انواع، NLU می تواند داده های مرتبط و ساختار یافته را برای شما استخراج کند، بنابراین شما مجبور نیستید ورودی های باز را تجزیه کنید.
صحنه ها اهداف را پردازش می کنند و مجریان منطق اصلی برای Actions شما هستند. آنها می توانند پر کردن شکاف ها را انجام دهند، منطق شرطی را ارزیابی کنند، درخواست ها را به کاربر برگردانند، و حتی از خدمات وب خارجی برای اجرای منطق تجاری فراخوانی کنند. در ترکیب با مقاصد، صحنه ها راهی قدرتمند برای شناسایی ورودی های کاربر خاص یا رویدادهای سیستم و اجرای منطق مربوطه به شما می دهند.
درخواستها پاسخهای ایستا یا پویا را تعریف میکنند که از آنها برای پاسخ دادن به کاربران استفاده میکنید.
Webhooks به شما امکان میدهد کار اضافی را به سرویسهای وب واگذار کنید (تکمیل)، مانند اعتبارسنجی دادهها یا ایجاد درخواستها. اقدامات شما از طریق یک پروتکل webhook مبتنی بر JSON با انجام شما ارتباط برقرار می کند.
بوم تعاملی به شما امکان می دهد با برنامه های وب که از HTML، CSS و جاوا اسکریپت استفاده می کنند، تجربیات غنی و همه جانبه ایجاد کنید.
یک پروژه ایجاد کنید
قبل از اینکه بتوانید برای Google Assistant توسعه دهید، باید یک پروژه در کنسول Actions ایجاد کنید. برای ایجاد یک پروژه:
- به کنسول Actions بروید.
- پروژه جدید را کلیک کنید.
- یک نام برای پروژه خود وارد کنید و روی ایجاد پروژه کلیک کنید.
- در چه نوع اکشنی می خواهید بسازید؟ در صفحه، دسته ای را انتخاب کنید که به بهترین شکل پروژه شما را نشان می دهد و روی Next کلیک کنید.
- در صفحه چگونه می خواهید آن را بسازید ، روشی را برای ساخت انتخاب کنید و روی Start building کلیک کنید. به عنوان مثال، می توانید با یک پروژه خالی یا با یک نمونه شروع کنید.
یک پروژه محلی Actions SDK ایجاد کنید
هنگامی که یک پروژه Actions را در کنسول Actions ایجاد کردید، می توانید یک پروژه را در محیط توسعه محلی خود مقداردهی اولیه کنید.
برای مقداردهی اولیه یک پروژه Actions SDK از یک پروژه Actions موجود، این مراحل را دنبال کنید:
- یک دایرکتوری خالی برای پروژه Actions در سیستم فایل محلی خود ایجاد کنید.
- در این دایرکتوری خالی، یک دایرکتوری
sdk
ایجاد کنید. - دایرکتوری کاری خود را به دایرکتوری
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 شما را از ویژگی های وب شما فراخوانی کنند. |
برای تعریف اطلاعات پروژه:
تنظیمات کلی را برای پروژه Actions خود در
sdk/settings/settings.yaml
تعریف کنید. برای مقادیر پشتیبانی شده به مستندات مرجع تنظیمات مراجعه کنید.قطعه زیر نمونه ای از فایل
sdk/settings/settings.yaml
را نشان می دهد:accountLinking: enableAccountCreation: true linkingType: GOOGLE_SIGN_IN category: GAMES_AND_TRIVIA projectId: my-project-id ...
تنظیماتی را که میتوانند بر اساس محلی کاربر (مثلاً عبارات فراخوانی در زبانهای مختلف) متفاوت باشند در یک فایل
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 یک شبیهساز برای پیشنمایش اقدامات شما ارائه میکند. شبیهساز به شما امکان میدهد اطلاعات اشکالزدایی را ببینید، قابلیتهای دستگاه را تنظیم کنید، محلی را شبیهسازی کنید، و موارد دیگر.
برای تست یک پروژه:
- اجرای
gactions deploy preview
. - 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