تحديد الإجراءات (Dialogflow)

تمثّل الإجراءات نقاط دخول إلى تطبيقك تحدّد عملية الاستدعاء والاكتشاف الأمثل لتطبيقك. تشير إلى "الإجراءات" في ملف JSON يُعرف باسم حزمة الإجراءات. والذي تقوم بتحميله لاحقًا إلى مشروع المطور لديك عندما تريد اختبار أو إرسال مشروع المهام للموافقة عليه. حزمة الإجراءات عبارة عن ملف جسون وتحدِّد الإجراءات في مشروع "المهام" لديك.

لتحديد الإجراءات في حزمة الإجراءات، يجب إنشاء هدف يحدد مدى يتم استدعاء الإجراء ونقطة نهاية التنفيذ المقابلة عند الغرض من إجراء الطلب. يمكنك إنشاء الأنواع التالية من الإجراءات:

  • الإجراء التلقائي: يجب أن يتضمن كل مشروع من مشاريع المهام هدفًا ترحيبيًا يعمل كنقطة دخول للمستخدمين لبدء المحادثات. الغرض من الترحيب هو يتم تشغيله عندما يستدعي المستخدمون إجراءً صريحًا من خلال لفظ اسمه (لـ على سبيل المثال، "Ok Google، أريد التحدّث إلى ExampleAction"). ويتم تحديد نية الترحيب هذه باستخدام اسم الغرض actions.intent.MAIN.
  • إجراءات إضافية للربط بصفحات معيّنة: يمكنك إنشاء إجراءات إضافية في حزمة الإجراءات ذات النوايا التي تحددها بنفسك. هذا يسمح للمستخدمين لاستدعاء وظائف معينة عن طريق قول اسم إجراء مع عبارة (على سبيل المثال: "Ok Google، أريد التحدّث إلى ExampleAction للعثور على بعض الأحذية").

يمكنك الاطّلاع على الأهداف والاستدعاءات للحصول على مزيد من المعلومات حول كيفية عمل نماذج الاستدعاء هذه.

تحديد إجراء تلقائي

يجب أن تتضمن كل حزمة إجراءات هدفًا واحدًا فقط يعالج هدف واحد (actions.intent.MAIN). تظهر هذه النية عندما يستدعي المستخدمون الإجراء حسب الاسم (على سبيل المثال، "Ok Google، أريد التحدّث إلى ExampleAction").

لإنشاء ملف حزمة إجراءات نموذجي باسم action.json، اتّبِع الخطوات التالية: الخطوات التالية:

  1. نزِّل واجهة سطر الأوامر gactions.
  2. أنشِئ دليلاً محليًا لملفات المصدر لمشروع الإجراء الخاص بك.
  3. شغِّل الأوامر التالية في الوحدة الطرفية:

    $ cd PROJECT_DIRECTORY
    $ gactions init

وبمجرد إنشاء ملف حزمة الإجراءات، استبدل محتوى العنصر النائب القيم. في ما يلي مثال على 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، أريد التحدّث إلى ExampleAction للعثور على بعض المساعدة". الأحذية.").

لتحديد إجراءات إضافية:

  1. في المصفوفة actions، حدِّد إجراءً لكل نقطة إدخال.

    على سبيل المثال، تعرض التعليمة البرمجية التالية قيمة إضافية "شراء" إجراء يعرّف:
    • اسم الغرض من com.example.ExampleAction.BUY
    • parameters للتحليل من البيانات التي أدخلها المستخدم عند تفعيل هذا الغرض. ويكون هذا مفيدًا إذا كنت بحاجة إلى بيانات محددة من عبارة الإجراء عند يستدعي المستخدمون الإجراء.
    • 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. حدِّد التنفيذ لهذا الغرض من خلال تحديد 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"
}