הגדרת פעולות (Dialogflow)

הפעולות הן נקודות כניסה לאפליקציה, שמגדירות את מודל ההפעלה והגילוי של האפליקציה. צריך להצהיר על פעולות בקובץ JSON שנקרא חבילת פעולות. לאחר מכן, מעלים את הקבצים לפרויקט הפיתוח כשרוצים לבדוק או לשלוח את פרויקט Actions לאישור. חבילת Action היא קובץ JSON שמגדיר את הפעולות בפרויקט Actions.

כדי להגדיר פעולות בחבילת Action, צריך ליצור אובייקט Intent שמגדיר את אופן ההפעלה של הפעולה ואת נקודת הקצה המתאימה למילוי הבקשה, למועד שבו מופעלת הכוונה. אפשר ליצור פעולות מהסוגים הבאים:

  • פעולת ברירת מחדל: לכל פרויקט פעולות צריכה להיות כוונת הצטרפות המשמשת כנקודת כניסה למשתמשים להתחלת שיחות. כוונת קבלת הפנים מופעלת כשהמשתמשים מפעילים פעולה באופן מפורש באמצעות אמירת השם שלה (לדוגמה, "Ok Google, talk to ExampleAction). Intent קבלת הפנים הזה מזוהה באמצעות שם ה-Intent actions.intent.MAIN.
  • פעולות נוספות לקישור עומק: תוכלו ליצור פעולות נוספות בחבילת הפעולות עם אובייקטים שאתם מגדירים בעצמכם. כך המשתמשים יכולים להפעיל פונקציונליות ספציפית על ידי אמירת שם Action יחד עם Intent (לדוגמה: "Ok Google, talk to ExampleAction to find some shoes").

מידע נוסף על אופן הפעולה של המודלים האלה מופיע בקטע אובייקטים מסוג Intent והפעלה.

הגדרה של פעולת ברירת מחדל

לכל חבילת פעולות צריכה להיות רק Intent אחד שמטפל ב-Intent actions.intent.MAIN. הכוונה הזו מופעלת כשמשתמשים מפעילים את הפעולה לפי השם (לדוגמה, "Ok Google, Talk to ExampleAction").

כדי ליצור קובץ חבילה של נתונים סטנדרטיים בשם action.json, צריך לבצע את השלבים הבאים:

  1. מורידים את gactions CLI.
  2. יוצרים ספרייה מקומית לקובצי המקור של פרויקט הפעולה.
  3. מריצים את הפקודות הבאות בטרמינל:

    $ cd PROJECT_DIRECTORY
    $ gactions init

אחרי שיוצרים את קובץ חבילת הפעולות, מחליפים את תוכן ה-placeholder בערכים שלך. הנה דוגמה של 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"
}

הגדרת פעולות נוספות

אתם יכולים לספק פעולות נוספות שמשמשות כנקודות כניסה. כך המשתמשים יכולים לציין את כוונתם על ידי מתן פרטים נוספים על מה שהם רוצים לעשות (לדוגמה, "Ok Google, Talk to ExampleAction כדי למצוא לי נעליים.").

כדי להגדיר פעולות נוספות:

  1. במערך actions מציינים פעולה לכל נקודת כניסה.

    לדוגמה, הקוד הבא מציג פעולת 'קנייה' נוספת שמגדירה:
    • שם Intent של 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"
          ]
        }
      }
    }
          
  2. יש לציין את מילוי הבקשה של ה-Intent הזה על ידי ציון conversationName שתואם לפריט באובייקט conversations.

    {
      "conversations": {
        "ExampleAction": {
          "name": "ExampleAction",
          "url": "https://www.example.com/ExampleAction"
        }
      }
    }
        

דוגמה לחבילת פעולות מלאה:

{
  "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"
}