מדריך למתחילים: ניהול משלוחים

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

לפני שמתחילים

אם אתם לא מתכננים להשתמש בניהול הזמנות, אתם יכולים לדלג על המדריך למתחילים הזה.

בשלבים האלה נעשה שימוש ב-Cloud Functions, והם מבוססים על ידע בסיסי ב-Node.js. אם אתם רוצים ליצור מילוי הזמנות באמצעות השרת שלכם או בשפה אחרת, תוכלו לעיין במסמכי התיעוד המפורטים יותר בנושא מילוי הזמנות.

לפני שתקראו את המדריך הזה:

  1. מידע בסיסי על Dialogflow
  2. לבצע את השלבים להגדרה.
  3. פועלים לפי השלבים במדריך למתחילים בנושא יצירת סוכן. השלבים שבהמשך מתייחסים לאותו Agent. אם אין לכם יותר את הסוכן הזה, אתם יכולים להוריד את build-agent-quickstart.zip ואז לייבא את הקובץ.

העורך במקום

במסוף Dialogflow יש עורך קוד מובנה שנקרא עורך מוטבע. אפשר להשתמש בו כדי ליצור קוד לביצוע בקשות משתמשים ולפרוס את הקוד ל-Cloud Functions. יש חיובים שמשויכים ל-Cloud Functions, אבל השירות זמין ללא תשלום עד מספר משמעותי של הפעלות בחודש. חשוב לזכור שעדיין צריך להירשם ולספק חשבון חיוב תקין. תמיד אפשר לבטל.

כשמפעילים את העורך המוטבע בפעם הראשונה, קוד המילוי של Node.js מאוכלס מראש ב-handlers שמוגדרים כברירת מחדל עבור default intents שכלולים בכל הסוכנים. הקוד כולל גם הוראות עם הערות להוספת handlers ל-intents שהוגדרו על ידי המפתחים.

העורך המוטמע מיועד לבדיקות פשוטות של ביצוע בקשות ולבניית אב טיפוס. כשמוכנים ליצור אפליקציה לייצור, צריך ליצור שירות webhook.

הפעלה ופריסה של מילוי הזמנות באמצעות העורך המוטמע

כדי להפעיל ולפרוס את קוד ברירת המחדל של מילוי הפרטים באמצעות העורך המוטבע:

  1. בתפריט הצדדי הימני, לוחצים על הזמנות.
  2. מעבירים את המתג של עורך מוטבע למצב מופעל.
  3. אם לא הפעלתם את החיוב בשלבי ההגדרה, תתבקשו להפעיל אותו עכשיו. יש חיובים שמשויכים ל-Cloud Functions, אבל השירות זמין ללא תשלום עד מספר משמעותי של הפעלות חודשיות. חשוב לזכור שעדיין צריך להירשם ולספק חשבון לחיוב. תמיד אפשר לבטל.
  4. בתחתית הטופס, לוחצים על Deploy (פריסה) ומחכים עד שיופיעו תיבות דו-שיח שמציינות שהפריסה הושלמה.

לכל כוונת משתמש שדורשת מילוי הזמנה, צריך להפעיל את מילוי ההזמנה. כדי להפעיל את התכונה 'ביצוע' עבור כוונת ברירת המחדל 'הודעת פתיחה':

  1. בתפריט הצדדי הימני, לוחצים על כוונות.
  2. לוחצים על Default Welcome Intent (כוונת הפתיחה שמוגדרת כברירת מחדל).
  3. גוללים למטה לקטע Fulfillment (השלמת בקשה) ומפעילים את המתג Enable webhook call for this intent (הפעלת קריאת webhook לכוונת המשתמש הזו).

  4. לוחצים על הלחצן שמירה ומחכים עד שתיבת הדו-שיח Agent Training (אימון הסוכן) מציינת שהאימון הושלם.

עכשיו אפשר לבדוק את תהליך השלמת ההזמנה בסימולטור. אם מזינים Hi בסימולטור, הוא מגיב עם Welcome to my agent!. התשובה הזו נשלחת מ-webhook של ביצוע הזמנות שפרסת. התשובה התקבלה מהקוד הזה:

function welcome(agent) {
  agent.add(`Welcome to my agent!`);
}

יצירת רכיב handler מותאם אישית לניהול משלוחים

השלבים שלמעלה משתמשים ב-handler שסופק על ידי קוד ברירת המחדל של העורך הישיר. כדי ליצור רכיב handler בהתאמה אישית:

  1. מפעילים את התכונה 'ביצוע הזמנה' עבור כוונת המשתמש get-agent-name שיצרתם בשלבים הקודמים.
  2. בתפריט הצדדי הימני, לוחצים על Fulfillment (השלמת בקשות) ובודקים את הקוד בעורך המוטבע.
  3. מחפשים את השורה הזו:

    exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
    

    הפונקציה onRequest מטפלת בכל הבקשות מ-Dialogflow. בגוף הפונקציה הזו מוגדרות פונקציות ספציפיות של handler. הפונקציות האלה מופעלות כשהמערכת מזהה כוונות משויכות. לדוגמה, הפונקציה שבה השתמשנו בקטע הקודם היא function welcome(agent).

  4. מתחת ל-handlers הקיימים, מוסיפים את הפונקציה הזו ל-intent‏ get-agent-name:

    function getAgentNameHandler(agent) {
      agent.add('From fulfillment: My name is Dialogflow!');
    }
    
  5. מתחת להגדרות של פונקציות ה-handler, יש intentMap.set() קריאות. הקריאות האלה משייכות מטפלים ספציפיים לכוונות לפי שם. לדוגמה, intentMap.set('Default Welcome Intent', welcome) משייך את ה-handler‏ welcome ל-intent בשם Default Welcome Intent.

  6. מתחת לקריאות הקיימות של intentMap.set, מוסיפים את השורה הזו לכוונת get-agent-name:

    intentMap.set('get-agent-name', getAgentNameHandler);
    
  7. לוחצים על פריסה בתחתית הטופס.

  8. מזינים What's your name? בסימולטור. התשובה From fulfillment: My name is Dialogflow! נשלחת מהמטפל החדש.

גישה לערכי פרמטרים

בשלבים הקודמים יצרתם set-language כוונה לזיהוי שפות אנושיות ושפות תכנות. הכוונה משתמשת בפרמטרים language ו-language-programming. בקטע הזה מוסבר איך לגשת לערכים של הפרמטרים האלה ב-fulfillment handler.

כדי להוסיף את המטפל:

  1. מפעילים את ההשלמה של כוונת המשתמש set-language.
  2. בתפריט הצדדי הימני, לוחצים על הזמנות.
  3. בדומה לשלבים שלמעלה, מוסיפים את ה-handler הבא ואת הקריאה intentMap:

    function languageHandler(agent) {
        const language = agent.parameters.language;
        const programmingLanguage = agent.parameters['language-programming'];
        if (language) {
            agent.add(`From fulfillment: Wow! I didn't know you knew ${language}`);
        } else if (programmingLanguage) {
            agent.add(`From fulfillment: ${programmingLanguage} is cool`);
        } else {
            agent.add(`From fulfillment: What language do you know?`);
        }
    }
    
    intentMap.set('set-language', languageHandler);
    
  4. לוחצים על פריסה.

פונקציית ה-handler הזו מאחזרת את הפרמטרים language ו-language-programming ומאחסנת אותם במשתנים. הערכים האלה מאוחזרים מהמאפיין agent.parameters, שהוא אובייקט שמכיל את כל שמות הפרמטרים והערכים שמשתמשי הקצה מציינים בבקשות שלהם.

כדי לנסות, מזינים I know how to speak German בסימולטור.