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

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

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

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

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

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

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

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

  1. מורידים את ה-CLI של gactions.
  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 to find me find me נעליים.").

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

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

    לדוגמה, הקוד הבא מציג ערך נוסף של "buy" [קנייה] הפעולה שמגדירה:
    • שם Intent של com.example.ExampleAction.BUY
    • parameters כדי לנתח מהקלט של המשתמש כשה-Intent הזה מופעל. האפשרות הזאת שימושית אם אתם צריכים נתונים ספציפיים מהביטוי 'פעולה', משתמשים יפעילו את הפעולה.
    • 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"
}