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

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

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

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

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

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

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

עריכה ישירה

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

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

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

הפעלה ופריסה של מילוי בקשות באמצעות Inline Editor

כדי להפעיל ולפרוס את קוד מילוי הבקשה שמוגדר כברירת מחדל באמצעות Inline Editor:

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

לכל כוונה שדורשת מילוי בקשה, צריך להפעיל את מילוי הבקשה לכוונה. כדי להפעיל מילוי בקשות ל-Default Welcome Intent:

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

  4. לוחצים על הלחצן Save וממתינים עד שמופיעה הודעה בתיבת הדו-שיח Agent Training שהאימון הסתיים.

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

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

יצירת handler מותאם אישית למילוי בקשות

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

  1. מפעילים את מילוי הבקשה ל-intent 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(). הקריאות האלה משייכות פונקציות טיפול ספציפיות ל-Intent לפי שם. לדוגמה, intentMap.set('Default Welcome Intent', welcome) משייך את ה-handler‏ welcome ל-intent בשם Default Welcome Intent.

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

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

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

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

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

כדי להוסיף את ה-handler:

  1. מפעילים את מילוי הבקשה (fulfillment) של ה-intent‏ set-language.
  2. בתפריט הצדדי מימין, לוחצים על Fulfillment (מילוי בקשות).
  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. לוחצים על Deploy.

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

כדי לנסות את זה, צריך להזין I know how to speak German בסימולטור.