کنشها نقاط ورود به برنامه شما هستند که مدل فراخوانی و کشف را برای برنامه شما تعریف میکنند. شما Actions را در یک فایل JSON به نام بسته Action اعلام میکنید که بعداً زمانی که میخواهید پروژه Actions خود را آزمایش کنید یا برای تأیید ارسال کنید، آن را در پروژه توسعهدهنده خود آپلود میکنید. بسته Action یک فایل JSON است که Actions را در پروژه Actions شما تعریف می کند.
برای تعریف Actions در بسته Action خود، یک intent ایجاد میکنید که نحوه فراخوانی Action و نقطه پایان انجام مربوطه را برای زمانی که intent راهاندازی میشود، تعریف میکند. شما می توانید انواع زیر را ایجاد کنید:
- اقدام پیشفرض: هر پروژه Actions باید یک هدف خوشامدگویی داشته باشد که به عنوان نقطه ورود کاربران برای شروع مکالمه عمل میکند. هدف خوش آمد گویی زمانی ایجاد می شود که کاربران به صراحت یک Action را با بیان نام آن فراخوانی کنند (به عنوان مثال، "Hey Google, talk to ExampleAction" ). این هدف خوشامدگویی با نام intent
actions.intent.MAIN
مشخص می شود. - اقدامات اضافی برای پیوند عمیق: میتوانید با اهدافی که خودتان تعریف میکنید، اکشنهای اضافی را در بسته اکشن خود ایجاد کنید. این به کاربران اجازه میدهد تا با گفتن یک نام Action به همراه یک هدف، عملکرد خاصی را فراخوانی کنند (به عنوان مثال: "Hey Google, برای پیدا کردن کفش با ExampleAction صحبت کن" ).
برای اطلاعات بیشتر در مورد نحوه عملکرد این مدلهای فراخوانی ، Intent و Invocation را ببینید.
یک اکشن پیش فرض را تعریف کنید
هر بسته اکشن باید یک و تنها یک هدف داشته باشد که هدف actions.intent.MAIN
را مدیریت می کند. این هدف زمانی فعال می شود که کاربران اقدام شما را با نام فراخوانی کنند (به عنوان مثال، "Hey Google, talk to ExampleAction" ).
برای ایجاد یک فایل بسته Action boilerplate با نام action.json
، مراحل زیر را انجام دهید:
-
gactions
CLI را دانلود کنید. - یک دایرکتوری محلی برای فایل های منبع پروژه Action خود ایجاد کنید.
دستورات زیر را در ترمینال اجرا کنید:
$ cd PROJECT_DIRECTORY $ gactions init
هنگامی که فایل Action Package تولید شد، محتوای متغیر مکان را با مقادیر خود جایگزین کنید. در اینجا نمونه ای از action.json
با تغییرات ExampleAction
آورده شده است:
{ "actions": [ { "description": "Default welcome intent", "name": "MAIN", "fulfillment": { "conversationName": "ExampleAction" }, "intent": { "name": "actions.intent.MAIN", "trigger": { "queryPatterns": [ "talk to ExampleAction" ] } } } ], "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } }, "locale": "en" }
اقدامات اضافی را تعریف کنید
می توانید اقدامات اضافی را ارائه دهید که به عنوان نقاط ورودی عمل می کنند. این به کاربران اجازه میدهد با مشخص کردن جزئیات بیشتر در مورد کاری که میخواهند انجام دهند، هدف خود را ابهامزدایی کنند (به عنوان مثال، «Hey Google، با ExampleAction صحبت کن تا کفشهایی برای من پیدا کند.» ).
برای تعریف اقدامات اضافی:
در آرایه
به عنوان مثال، کد زیر یک اقدام "خرید" اضافی را نشان می دهد که تعریف می کند:actions
، برای هر نقطه ورودی یک Action مشخص کنید.- یک نام هدف از
com.example.ExampleAction.BUY
-
parameters
برای تجزیه از ورودی کاربر هنگام فعال شدن این هدف. زمانی که کاربران اکشن را فراخوانی میکنند، به دادههای خاصی از عبارت Action نیاز دارید. -
queryPatterns
که مشخص می کنند کاربران چه چیزی باید بگویند تا هدف را راه اندازی کنند. الگوهای پرس و جو می توانند شامل انواع Schema.org باشند که پارامترهایی را برای تجزیه تعریف می کنند.
{ "description": "Direct access", "name": "BUY", "fulfillment": { "conversationName": "ExampleAction" }, "intent": { "name": "com.example.ExampleAction.BUY", "parameters": [ { "name": "color", "type": "org.schema.type.Color" } ], "trigger": { "queryPatterns": [ "find some $org.schema.type.Color:color sneakers", "buy some blue suede shoes", "get running shoes" ] } } }
- یک نام هدف از
با تعیین یک
conversationName
که مربوط به یک مورد در شیconversations
است، تحقق این هدف را مشخص کنید.{ "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } } }
در اینجا یک نمونه از یک بسته کامل Action آورده شده است:
{ "actions": [ { "description": "Default welcome intent", "name": "MAIN", "fulfillment": { "conversationName": "ExampleAction" }, "intent": { "name": "actions.intent.MAIN", "trigger": { "queryPatterns": [ "talk to ExampleAction" ] } } }, { "description": "Direct access", "name": "BUY", "fulfillment": { "conversationName": "ExampleAction" }, "intent": { "name": "com.example.ExampleAction.BUY", "parameters": [ { "name": "color", "type": "org.schema.type.Color" } ], "trigger": { "queryPatterns": [ "find some $org.schema.type.Color:color sneakers", "buy some blue suede shoes", "get running shoes" ] } } } ], "conversations": { "ExampleAction": { "name": "ExampleAction", "url": "https://www.example.com/ExampleAction" } }, "locale": "en" }