1. סקירה כללית
פלטפורמת המפתח של Google Assistant מאפשרת ליצור תוכנה כדי להרחיב את הפונקציונליות של Google Assistant, עוזר אישי וירטואלי, ביותר ממיליארד מכשירים, כולל רמקולים חכמים, טלפונים, מכוניות, טלוויזיות, אוזניות ועוד. משתמשים מעורבים על ידי Assistant בשיחה כדי לבצע משימות כמו קניית מצרכים או הזמנת נסיעה. מפתחים יכולים להשתמש בפלטפורמת המפתחים של Assistant כדי ליצור ולנהל בקלות חוויות שיחה משעשעות ויעילות בין המשתמשים לשירות המשלוחים החיצוני.
שיעור קוד זה מקיף מושגים ברמת הביניים לפיתוח עם Google Assistant, ובונה על הפעולה שנוצרה במעבדת הקוד ברמה 1. מומלץ מאוד להשלים את שיעור הקוד של רמה 1 לפני שמתחילים בשיעור הזה.
הפעולה שאתם בונים במעבדת הקוד הזו מספרת למשתמשים על המזל שלהם במסע אחר במדינה מיתולוגית, גריפינברג, על סמך העזרה שהם בוחרים.
מה תפתחו
ב-codelab הזה תיצרו פעולה קבוצתית מתוחכמת עם הפונקציות הבאות:
- אוסף נתונים מהמשתמש, בהתאם לערך, משנה את ההודעות בשיחות
- מגיבה עם שאלות המשך כדי להמשיך את השיחה
- יצירת לולאה של משחק מאפשרת למשתמש לקיים אינטראקציה עם הפעולה שוב לאחר קבלת מזל
לפני שמתחילים לבנות תוכן, אפשר לקיים אינטראקציה עם פעולה פעילה במכשיר עם Google Assistant מובנית: אומרים "Hey Google, Talk to Fate and Fortune" . נתיב ברירת המחדל של הפעולה הזו עבור משתמש חוזר נראה כמו האינטראקציה הבאה:
מה תלמדו
- איך להשתמש במשבצות לאיסוף נתונים מהמשתמש
- איך להשתמש בתנאים כדי להוסיף לוגיקה לסצנה
- איך להוסיף לולאת משחקים
- איך מוסיפים נתיב תומך?
מה תצטרך להכין
הדרישות המוקדמות למעבדות האלה כוללות:
- דפדפן אינטרנט, כמו Google Chrome
- פרויקט הושלם ב-Actionlab ברמה 1 (Build Actions for Google Assistant באמצעות Action Builder רמה 1)
יש היכרות מעמיקה עם JavaScript (ES6) אך לא חובה, כדי להבין את קוד המימוש של קוד Lab זה.
2. המשך בניית ממשק השיחה
במעבדת הקוד הראשונה, יצרתם פעולה קולית פשוטה עם סצינה אחת, Start
.
במעבדת קוד זו, אתם מרחיבים את השיחה של Action' . בסעיפים הבאים תגדירו את הפעולה כך:
- מעבר לסצנה חדשה ב-
Fortune
כשהמשתמש רוצה לשמוע את מזלו - לשאול את המשתמש באיזה סיוע הוא רוצה לבחור במסע שלו
- לספק עתיד בהתאמה אישית על סמך בחירת המשתמש
יצירת סצנה אחת (Fortune
)
בקטע הזה, יוצרים את הסצנה ב-Fortune
ומגדירים איך המשתמש עובר אליה במהלך השיחה.
כדי ליצור סצנה חדשה בשם Fortune
, יש לבצע את הפעולות הבאות:
- פותחים את פרויקט הפעולות של Codelab 1.
- לוחצים על פיתוח בסרגל הניווט.
- בקטע תרחישים לוחצים על סצנת התחלה.
- לוחצים על כוונת הרכישה כן (התיבה כאשר כן מתאימה) כדי לפתוח את האפשרויות.
- מבטלים את ההגדרה שליחת הודעות כדי להסיר את הבקשה.
- בקטע מעבר, לוחצים על התפריט הנפתח, לוחצים על תיבת הטקסט ומקלידים
Fortune
. - לוחצים על הוספה. פעולה זו יוצרת סצנה חדשה בשם
Fortune
. הוא גם מוסיף מעבר מהסצנה ב-Start
לסצנה עםFortune
, כאשר המשתמש רוצה לשמוע על מזלו.
הגדרה של לוגיקת שיחה לסצנת Fortune
במעבדת הקוד הזו, מגדירים את הסצנה ב-Fortune
כדי לשאול את המשתמש "מה בוחרים כדי לעזור בקווסט, בדרקון, במתרגם או במצפן
ניתן להשתמש ביכולת שנקראת מילוי משבצת כדי לאסוף את המידע הנדרש מהמשתמש לפני שממשיכים.
הפעולה שלכם כוללת מזל לשלושה עזרים: דרקון, מתרגם ומצפן. כדי להגדיר את הפעולה שלך לזיהוי שלוש האפשרויות האלה בקלט של משתמש, עליך ליצור סוג חדש.
ניתן להשתמש בסוגים של שלב מילוי מיקום בסצנה כדי להגדיר את המידע הרצוי מהמשתמש. כאשר מנוע ה-NLU מזהה התאמת חריץ בקלט משתמש, הוא מחלץ את החריץ כפרמטר שמוקלד, כך שתוכלו לבצע איתו לוגיקה בסצנה.
יצירת סוג אחד (available_options
)
בקטע הזה, יוצרים סוג חדש בשם available_options
, המציין את שלוש האפשרויות שהמשתמשים יכולים לבחור (דרקון, מתרגם ומצפן) בתגובה להודעה. אתם מגדירים גם כמה מילים נרדפות של האפשרויות האלה, למקרה שמשתמש יאמר משהו דומה. בקטע מאוחר יותר, מוסיפים את הסוג available_options
למשבצת כדי לציין שרוצים לקבל את האפשרות של המשתמש.
כדי ליצור את סוג ה-available_options
, צריך לבצע את הפעולות הבאות:
- בסרגל הניווט, לוחצים על סוגים.
- לוחצים על + (סימן פלוס), מקלידים
available_options
ולוחצים עלEnter
. - לוחצים על
available_options
כדי לפתוח את האפשרויות.
סוגים מוגדרים כצמדים של מפתח/ערך, כאשר המפתח הוא שם הסוג והערכים הם מילים נרדפות של המפתח הזה. כשמגדירים את המפתח, הוא מתווסף באופן אוטומטי כערך.
כדי להוסיף את שלוש האפשרויות שהמשתמש יכול לבחור, מבצעים את השלבים הבאים:
- גוללים לקטע הוספת רשומות.
- בשדה רשומה חדשה, מקלידים
dragon
ומקישים עלEnter
. פעולה זו יוצרת מפתחdragon
. - מקלידים
hydra
בשדה הוספת ערכים ומקישים עלEnter
כדי להוסיף אותו כערך (מילה נרדפת). לאחר מכן, חוזרים על השלב הזה בערךlizard
. - מוסיפים את שאר המפתחות והערכים התואמים:
translator | translator
,communicator
,machine
,decoder
,translate
compass | compass
,direction
,guide
- לוחצים על Save.
הפעולה שלך עוזרת לנו להבין שהavailable_options
הוא דרקון, מתרגם ומצפן, ויכולה לזהות גם כמה מילים נרדפות תואמות.
הגדרת מילוי משבצת
בשלב הבא, עליך להגדיר מילוי משבצת בסצנה Fortune
. כדי להגדיר את הלוגיקה של מילוי המשבצת, יש לבצע את השלבים הבאים:
- בסרגל הניווט, בקטע תרחישים לוחצים על Fortune.
- בסצנה
Fortune
, לוחצים על + (סימן פלוס) עבור מילוי חריץ. - בשדה הזנת שם משבצת מוסיפים את
chosenOptions
בתור שם החריץ. - ברשימה הנפתחת בחירת סוג, בוחרים באפשרות
available_options
כסוג החריץ. - מסמנים את התיבה המשבצת הזאת נדרשת.
- בוחרים באפשרות שליחת הודעות ומוסיפים את הצ'יפים של ההודעות וההצעות הבאות:
candidates:
- first_simple:
variants:
- speech: >-
What do you choose to help you on your quest, a dragon, a
translator, or a compass?
suggestions:
- title: 'Dragon'
- title: 'Translator'
- title: 'Compass'
- לוחצים על Save.
עכשיו הוספת את הסוג available_options
למשבצת הזמן. הפעולה הזו מציינת לפעולה שלך את המידע שעליך לאסוף מהמשתמש (העזרה שלו) לפני המשך התהליך. גם הגדרתם בקשה בתוך המשבצת, שתתווסף לתור הבקשה כשהמשתמש מגיע לשלב מילוי המשבצת.
לתשומת ליבך: כשהשם שנתת למשבצת הזו הוא chosenOptions
, השדה התאמה אישית של ערך החריץ יעודכן עם אותו שם ($session.params.chosenOptions
). אפשר לגשת לפרמטר הזה לפי השם ב-Actions Builder ובמילוי ההזמנה דרך ספריית הלקוח.
הגדרת התנאי scene.slots.status == "FINAL"
כשמוסיפים משבצת, המצב scene.slots.status == "FINAL"
מתווסף באופן אוטומטי לרשימת התנאים.
התנאי scene.slots.status == "FINAL"
מחפש מילוי של משבצת הזמן. אחרי שכל המשבצות ימולאו, התנאי יוכל להפעיל webhook, לעבור לסצנה חדשה או להוסיף הודעות לתור הבקשה.
בקטע הזה, מגדירים את scene.slots.status == "FINAL"
להוספת בקשה לתור הבקשה ברגע שהמשבצות ימולאו.
כדי להוסיף את ההודעה הזו לתנאי FINAL
, יש לבצע את הפעולות הבאות:
- לוחצים על
scene.slots.status == "FINAL"
כדי לפתוח את חלון האפשרויות. - בוחרים באפשרות שליחת הודעות ומוסיפים את הבקשה הבאה:
candidates:
- first_simple:
variants:
- speech: You picked $session.params.chosenOptions.
- לוחצים על Save.
בדיקת הסימולטור על הפעולה שלך
בשלב זה הגדרת באילו אפשרויות המשתמש צריך לבחור כדי למלא את המשבצת. לאחר השגת המידע הזה מהמשתמש, על הפעולה להציג הודעה לגבי האפשרות הספציפית שהוא בחר.
כדי לבדוק את הפעולה שלך:
- בסרגל הניווט, לוחצים על בדיקה.
- לוחצים או מקלידים
Talk to my test app
בשדה קלט ומקישים עלEnter
. - מקלידים
Yes
בשדה קלט ומקישים עלEnter
. (לחלופין, אפשר ללחוץ על צ'יפ ההצעה כן.)
- לוחצים, מקלידים או אומרים
dragon
. אמורה להופיע ההודעה "אתם בחרתם דרקון.
בקטע הבא, תתאימו אישית את ההנחיות לכל סיוע שהמשתמש יכול לבחור.
התאמה אישית של הודעות באמצעות תנאים
בקטע הזה, מוסיפים תנאים לכל אפשרות שבה המשתמש יכול לבחור, ומוסיפים בקשה מותאמת אישית לכל תנאי.
התאמה אישית של מזל dragon
כדי לעדכן את התנאי ולהתאים אישית את הבקשה כאשר המשתמש בוחר את ה- "dragon"E; פועלים לפי השלבים הבאים:
- לוחצים על פיתוח בסרגל הניווט.
- בסרגל הניווט, לוחצים על סצנת המזל.
- לוחצים על
scene.slots.status == "FINAL"
כדי לפתוח את חלון האפשרויות. - יש לעדכן את הצהרת התנאי ל:
scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
- בוחרים באפשרות שליחת הודעות.
- יש לעדכן את ההודעה עם סימני המזל הבאים בעורך הקוד:
candidates:
- first_simple:
variants:
- speech: >-
The people of Gryffinberg will be awestruck by the beauty and power
of the ancient dragon. Much to your dismay, the townspeople fall
into dispute over who will receive the honor of riding the dragon
first. You return home from your quest without everlasting glory or
a dragon.
- לוחצים על Save.
עכשיו, כשמשתמש אומר "dragon" או משהו שנשמע דומה, הפעולה שלכם נותנת מזל על סמך הבחירה הזו. בשלב הבא, מוסיפים את שתי הבחירות הנותרות.
התאמה אישית של מזל translator
כדי להוסיף את התנאי ולהתאים אישית את הבקשה למועד שבו המשתמש בוחר "translate" פועלים לפי השלבים הבאים:
- לוחצים על + (סימן הפלוס) לצד מצב.
- מוסיפים
scene.slots.status == "FINAL" && session.params.chosenOptions == "translator"
לשדה אחר אם. - בוחרים באפשרות שליחת הודעות.
- צריך להוסיף את הבקשה הבאה לעורך הקוד:
candidates:
- first_simple:
variants:
- speech: >-
With the help of the translator, the rival factions in Gryffinberg
are finally able to communicate with each other and resolve their
disputes. You will complete your quest to restore peace in the town.
The translator will be used on many subsequent journeys across the
earth. After its work is done, it retires honorably to a premier
location in the Gryffinberg History Museum.
- לוחצים על Save.
התאמה אישית של מזל compass
כדי להוסיף את התנאי ולהתאים אישית את הבקשה למועד שבו המשתמש בוחר "compass" יש לבצע את הפעולות הבאות:
- לוחצים על + (סימן הפלוס) לצד מצב.
- מוסיפים
scene.slots.status == "FINAL" && session.params.chosenOptions == "compass"
לתיבת הטקסט אחר אם. - בוחרים באפשרות שליחת הודעות.
- צריך להוסיף את הבקשה הבאה בעורך הקוד:
candidates:
- first_simple:
variants:
- speech: >-
The compass will help you find the mystical and ancient Library of
Gryffinberg. Among its infinite stacks of dusty books, you find one
entitled "Wisdom of the Ages". By the time you've read the
50,000-page tome, the townspeople have forgotten their problems. You
will write a second edition of "Wisdom of the Ages", but have
limited commercial success.
- לוחצים על Save.
בדיקת הסימולטור על הפעולה שלך
בשלב זה, הפעולה צריכה לספק מזל בהתאמה אישית למשתמש על סמך האפשרות שהוא בחר.
כדי לבדוק את הפעולה שלך:
- בסרגל הניווט, לוחצים על בדיקה.
- מקלידים
Talk to my test app
בשדה קלט ומקישים עלEnter
. - מקלידים
Yes
בשדה קלט ומקישים עלEnter
. לחלופין, לוחצים על צ'יפ ההצעה כן. - לוחצים, מקלידים או אומרים
Translator
.
אמור להופיע פירוט של האפשרות "translate" .
3. הוספת לולאה של משחק
בקטע הזה, מגדירים את הפעולה כדי שהמשתמש יוכל לבחור אפשרות אחרת ולשמוע מזל אחר אחרי בחירה. שינוי זה דומה להודעה "האם ברצונך לשחק שוב?" לאחר סיום המשחק. כדי ליצור את הלולאה הזו, אפשר לעשות שימוש חוזר ב-yes
וב-no
אובייקטים שנוצרו קודם לכן, ולהוסיף אותם לסצנה חדשה שנקראת Again
.
יצירת סצנה אחת (Again
)
בקטע הזה, יוצרים סצנה חדשה ב-Again
ומוסיפים שאלה למשתמש אם הוא רוצה לבחור אפשרות אחרת.
כדי ליצור את הסצנה Again
, יש לבצע את הפעולות הבאות:
- לוחצים על פיתוח בסרגל הניווט.
- לוחצים על + (סימן הפלוס) בקטע תרחישים.
- יש להקליד
Again
ולהקיש עלEnter
. - לוחצים על סצנת
Again
בסרגל הניווט. - לוחצים על + (סימן החיבור) לצד Enter.
- בוחרים באפשרות שליחת הודעות ומוסיפים את הצ'יפים של ההצעות וההצעות הבאות:
candidates:
- first_simple:
variants:
- speech: >-
That is what I see for you. Would you like to choose a different option and
explore another future?
suggestions:
- title: 'Yes'
- title: 'No'
- לוחצים על Save.
הוספת המעבר מFortune
לסצנה אחת (Again
)
אחרי שהמשתמש יקבל את המזל, השיחה צריכה לעבור לסצנה החדשה ב-Again
.
כדי להוסיף מעבר מסצנת Fortune
לסצנה Again
, יש לבצע את הפעולות הבאות:
- לוחצים על סצנת מזל.
- לוחצים על התנאי הראשון (
scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
) כדי לפתוח את חלון האפשרויות. - גוללים ובוחרים באפשרות
Again
בקטע מעבר. - לוחצים על Save.
- לוחצים על התנאי השני כדי לפתוח את חלון האפשרויות.
- גוללים ובוחרים באפשרות
Again
בקטע מעבר. - לוחצים על Save.
- לוחצים על התנאי השלישי כדי לפתוח את חלון האפשרויות.
- גוללים ובוחרים באפשרות
Again
בקטע מעבר. - לוחצים על Save.
בדיקת הסימולטור על הפעולה שלך
בשלב זה, הפעולה שלכם צריכה לספק למשתמש את ההודעה הבאה אחרי שהוא קיבל את המזל: " זה מה שאני רואה עבורכם. רוצה לבחור אפשרות אחרת ולגלות תרומה נוספת בעתיד?
כדי לבדוק את הפעולה שלך:
- בסרגל הניווט, לוחצים על בדיקה.
- מקלידים
Talk to my test app
בשדה קלט ומקישים עלEnter
. - מקלידים
Yes
בשדה קלט ומקישים עלEnter
. לחלופין, לוחצים על צ'יפ ההצעה כן. - לוחצים, מקלידים או אומרים
dragon
.
אמור להופיע סמל של אפשרות דרקון ושל בקשת Again
.
הוספה של כוונות ומעבר לסצנה אחת (Again
)
בקטע הזה, מוסיפים את הכוונות yes
ו-no
לסצנה Again
כדי שהפעולה תבין אם המשתמש רוצה לבחור אפשרות חדשה או לא. יש להוסיף גם את המעברים המתאימים בין הכוונות yes
ו-no
. הכוונה של yes
עוברת לסצנת Fortune
, בעוד שהכוונת no
עוברת לסצנת המערכת End conversation
.
כדי להוסיף כוונות ומעברים לסצנת Again
, יש לפעול לפי השלבים הבאים:
- לוחצים על פיתוח בסרגל הניווט.
- לוחצים על סצנת
Again
. - לוחצים על + (סימן פלוס) לצד טיפול בכוונת משתמש.
- בוחרים באפשרות כן בתפריט הנפתח של כוונת הרכישה.
- בתפריט הנפתח מעבר בוחרים באפשרות
Fortune
. - לוחצים על Save.
- לוחצים על + (סימן פלוס) לצד טיפול בכוונת משתמש.
- בוחרים באפשרות לא מהתפריט הנפתח Intent.
- בתפריט הנפתח מעבר בוחרים באפשרות סיום השיחה.
- בוחרים באפשרות שליחת הודעות ומוסיפים את הבקשה הבאה בעורך הקוד:
candidates:
- first_simple:
variants:
- speech: >-
It pleases me that you are satisfied with your choice. Best of luck on your quest. Farewell.
- לוחצים על Save.
בדיקת הסימולטור על הפעולה שלך
מעכשיו, הפעולה צריכה להבין אם המשתמש רוצה לבחור אפשרות חדשה או לסיים את השיחה.
כדי לבדוק את כוונת המשתמשים: yes
:
- בסרגל הניווט, לוחצים על בדיקה.
- מקלידים
Talk to my test app
בשדה קלט ומקישים עלEnter
. - מקלידים
Yes
בשדה קלט ומקישים עלEnter
. לחלופין, לוחצים על צ'יפ ההצעה כן. - לוחצים, מקלידים או אומרים אחת מהאפשרויות.
- מקלידים
Yes
בשדה קלט ומקישים עלEnter
.
תקבלו את ההודעה, "במה בחרתם לעזור לכם בקווסט, דרקון, מתרגם או מצפן{3},
כדי לבדוק את כוונת המשתמשים: no
:
- לוחצים, מקלידים או אומרים אחת מהאפשרויות.
- מקלידים
No
בשדה הקלט ומקישים עלEnter
.
אתם אמורים לקבל את ההודעה End conversation
: "E; אני מרוצה מהבחירה שלך. בהצלחה בקווסט. להתראות."
4. הוספת נתיב תומך
סיימת להגדיר את הנתיב העיקרי שרוב המשתמשים עוברים בפעולה שלך. עם זאת, המשתמש יכול להגיב לבקשה מהסצנה ב-Fortune
, &מירכאות; במה אתם בוחרים כדי לעזור בקווסט, בדרקון, במתרגם או במצפן, בעזרת אפשרות שהיא לא אחת מהאפשרויות שמופיעות.
בקטע הזה, אתם מגדירים את הפעולה כך שתבינו מתי משתמש בוחר "magic", "money", "horse" או "phone" והצג בקשה למשתמש לבחור באחת משלוש האפשרויות המקוריות כשהוא בוחר באחת מהאפשרויות האלה. כדי להגדיר את הלוגיקה הזו, צריך ליצור type
חדש שיכלול את האפשרויות האלה וגם כוונה חדשה, other_option
, שהותאמו כשהמשתמש אומר אחת מהאפשרויות האלה. כמו כן, יש לציין הערות בהדרכות מתוך other_option
כוונת הרכישה כדי לזהות ולחלץ פרמטרים של כוונה.
כאשר המנוע לעיבוד שפה טבעית (NLU) של Assistant מזהה התאמה של פרמטר בקלט של המשתמשים, הוא מחלץ את הערך כפרמטר שמוקלד כדי שתוכלו לבצע איתו לוגיקה בסצנה. ב-codelab הזה אתם מגדירים את הפעולה כדי לחלץ את העזרה שהמשתמש בוחר, ומתייחסים לבחירה הזו בהודעה.
יצירת סוג אחד (unavailable_options
)
כעת ניתן ליצור סוג unavailable_options
המכיל מגוון של אפשרויות שונות כדי שהפעולה שלך תוכל לזהות את הנתונים האלה בקלט של משתמש.
כדי ליצור את סוג ה-unavailable_options
, צריך לבצע את הפעולות הבאות:
- לוחצים על פיתוח בסרגל הניווט.
- לוחצים על + (סימן הפלוס) בקטע סוגים.
- יש להקליד
unavailable_options
ולהקיש עלEnter
. - לוחצים על
unavailable_options
כדי לפתוח את האפשרויות. - מזינים את הערכים הבאים ואת הערכים שלהם בקטע הוספת ערכים:
|
|
|
|
|
|
|
|
טבלת המפתח/ערך צריכה להיראות כך:
- לוחצים על Save.
יצירת other_option
כוונה
בשלב הבא, יוצרים כוונה בשם other_option
ומוסיפים ביטויי הדרכה שכוללים את האפשרויות בסוג unavailable_options
. כוונה זו מותאמת כשהמשתמש בוחר אפשרות מסוג unavailable_options
.
כדי ליצור ולהגדיר את כוונת הרכישה ב-other_option
, יש לבצע את הפעולות הבאות:
- לוחצים על + (סימן הפלוס) בקטע אובייקטים מותאמים אישית Intent.
- יש להקליד
other_option
ולהקיש עלEnter
. - כדי לפתוח את החלון, לוחצים על
other_option
. - מוסיפים את הביטויים הבאים לאימון ולוחצים על
Enter
אחרי כל אחד:
I want to use spells
I really really want to use a phone
magic!
cash
I want to ride a horse
- בקטע הוספת פרמטרים של כוונת רכישה, מעדכנים את שם הפרמטר ל-
chosenUnavailableOption
. - לוחצים על Save.
כשמזינים את ביטויי האימון, הכלי Action Builder מזהה את spells
, phone
, magic
, cash
ואת horse
מהסוג unavailable_options
ומדגיש (מכיל הערות) באופן אוטומטי את המילים. הכלי Action Actions מוסיף באופן אוטומטי פרמטר Intent בקטע הוספת פרמטרים של Intent, כפי שמוצג בתמונה הבאה.
הפרמטר Intent מאפשר לכם לחלץ את שם האפשרות ולהשתמש באפשרות הזו בהודעה.
הוספה של כוונת other_option
לסצנה אחת (Fortune
)
עכשיו יש לך כוונה, other_option
, שיכולה לטפל למשתמש באפשרות שאינה אחת מהאפשרויות המקוריות. בקטע הזה מוסיפים את הכוונה של other_option
לסצנת Fortune
. אתם משתמשים בפרמטר Intent כדי להתאים אישית את הבקשה על סמך קלט המשתמש.
כדי להוסיף את כוונות other_option
לסצנה Fortune
, יש לבצע את הפעולות הבאות:
- לוחצים על סצנת מזל.
- לוחצים על + (סימן פלוס) לצד טיפול בכוונת משתמש.
- בוחרים באפשרות
other_option
בתפריט הנפתח של Intent. - בוחרים באפשרות שליחת הודעות ומוסיפים את הבקשה הבאה:
candidates:
- first_simple:
variants:
- speech: >-
I have seen the future and a $intent.params.chosenUnavailableOption.original
will not aid you on your journey.
הביטוי $intent.params.chosenUnavailableOption
מתייחס לאובייקט פרמטר Intent ו-$intent.params.chosenUnavailableOption.original
מתייחס לערך של אובייקט זה. original property
מתייחס לקלט הגולמי שהמשתמש מציין.
- לוחצים על Save.
כשמשתמש אומר אפשרות שמופיעה בסוג unavailable_options
במהלך הסצנה Fortune
, יש התאמה לכוונה של other_option
והוספה של בקשה לתור ההודעות. מאחר שלא צוין מעבר, לולאת ביצוע הסצנה נמשכת על ידי הערכה מחדש של שלב התנאים. המשבצת chosenOptions
מוסיפה את הבקשה שלה לתור הבקשה, ותור הבקשה מועבר למשתמש.
בדיקת הסימולטור על הפעולה שלך
הפעולה שלך צריכה עכשיו להגיב כראוי כאשר משתמש בוחר באחת מהאפשרויות המפורטות בסוג unavailable_options
ומציין את העזרה שהמשתמש בחר. לאחר מכן הפעולה צריכה לבקש מהמשתמש לבחור באחת מהאפשרויות המקוריות (דרקון, מתרגם או מצפן).
כדי לבדוק את הפעולה שלכם בסימולטור, מבצעים את השלבים הבאים:
- בסרגל הניווט, לוחצים על בדיקה.
- מקלידים
Talk to my test app
בשדה קלט ומקישים עלEnter
. - מקלידים
Yes
בשדה קלט ומקישים עלEnter
. לחלופין, לוחצים על צ'יפ ההצעה כן. - מקלידים
magic
בשדה קלט ומקישים עלEnter
.
ייתכן שתבחינו בכך שהבקשה לא נשמעת נכונה כשהמשתמש בוחר "magic" בזכות הכתבה "a" שהוצגה לפניה. ניתן לטפל בבעיה הזו בקטעים הבאים.
הוספת handler של unavailable_options
כדי למקם את הכתבה "a" לפני האפשרויות המתאימות מסוג unavailable_options
, אפשר להגדיר handler של אירוע בלוגיקת המילוי, כדי לבדוק אם האפשרות שהמשתמש בוחר דורשת "a" לפני כן. קודם כול, צריך להגדיר את הפעולה כך שהיא תקרא ל-handler שבמסוף.
כדי להוסיף את ה-handler של unavailable_options
, צריך לבצע את הפעולות הבאות:
- לוחצים על פיתוח בסרגל הניווט.
- לוחצים על סצנת
Fortune
. - בקטע טיפול בכוונת משתמש, לוחצים על כשנמצא התאמה מסוג other_option כדי לפתוח את החלון.
- מנקים את תיבת הסימון שליחת הודעות.
- מסמנים את התיבה התקשרות ל-webhook.
- מזינים
unavailable_options
בתיבת הטקסט של הגורם המטפל באירוע.
- לוחצים על שמירה.
עדכון ופריסה של מילוי הזמנות
עכשיו, לאחר שהגדרת את הפעולה כך שתתקשר ל-handler של האירוע unavailable_options
, תהיה לך אפשרות לעדכן את ה-handler בעת אספקת ההזמנה ולפרוס אותו.
כדי לעדכן את הגדרות ההזמנות, יש לבצע את השלבים הבאים:
- לוחצים על webhook בסרגל הניווט.
- מוסיפים את הקוד הבא ל-handler של
greeting
:
app.handle('unavailable_options', conv => {
const option = conv.intent.params.chosenUnavailableOption.original;
const optionKey = conv.intent.params.chosenUnavailableOption.resolved;
let message = 'I have seen the future and ';
if(optionsNeedA.has(optionKey)){
message = message + 'a ';
}
message = message + `${option} will not aid you on your journey. `;
conv.add(message);
});
- צריך להוסיף את הקוד הבא:
const app = conversation();
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
- לוחצים על שמירת האספקה.
- לוחצים על פריסת אספקה. בסיום הפריסה, ההודעה מעל העורך שלכם תופיע עם ההודעה פריסת הפונקציה ב-Cloud Functions מעודכנת.
הבנת הקוד
הטיפול של unavailable_options
:
- מקבל
option
נתונים מהאובייקטconv
ומקצה אתoption
לנכסoriginal
, שהוא הקלט הגולמי של המשתמש. - מקצה
optionKey
לנכסresolved
, שהוא המפתח לסוגunavailable_options
- בודקת אם
optionKey
היא אחת מהאפשרויות שצריך להשתמש בה &מירכאות;a" אם כן, היא יוצרת את ההודעה עם & "a" - הוספת ההודעה דרך
conv.add(message)
בדיקת הסימולטור על הפעולה שלך
הפעולה שלכם צריכה עכשיו לשנות את הבקשה, על סמך הבחירה של המשתמש מסוג unavailable_options
.
כדי לבדוק את הפעולה שלך:
- בסרגל הניווט, לוחצים על בדיקה.
- לוחצים או מקלידים
Talk to my test app
בשדה קלט ומקישים עלEnter
. - מקלידים
Yes
בשדה קלט ומקישים עלEnter
. לחלופין, לוחצים על צ'יפ ההצעה כן. - מקלידים
magic
בשדה קלט ומקישים עלEnter
. - מקלידים
horse
בשדה קלט ומקישים עלEnter
.
הפעולה צריכה להוסיף את המאמר "a" לפני "horse" בעת יצירת ההודעה ללא הבחירה &"a"
מנקים את הפרויקט [מומלץ]
כדי להימנע מחיוב אפשרי, מומלץ להסיר פרויקטים שלא התכוונתם להשתמש בהם. כדי למחוק את הפרויקטים שיצרתם במעבדה זו, יש לפעול לפי השלבים הבאים:
- כדי למחוק את הפרויקט בענן ואת המשאבים, יש להשלים את השלבים המפורטים בקטע כיבוי (מחיקה) של פרויקטים.
- אופציונלי: כדי להסיר באופן מיידי את הפרויקט ממסוף הפעולות, יש לעיין במחיקת פרויקט. אם השלב הזה לא יושלם, הפרויקט יוסר באופן אוטומטי לאחר כ-30 יום.
5. מעולה!
עברת על המיומנויות הביניים הדרושות ליצירת פעולות ב-Google Assistant.
מה כללת
- איך לפתח פעולות שיחה באמצעות ספריית המילוי של Node.js
- איך להשתמש במשבצות כדי לאסוף נתונים מהמשתמש
- איך להשתמש בתנאים כדי להוסיף לוגיקה לסצנה
- איך להוסיף לולאת משחקים
- איך מוסיפים נתיב תומך?
מידע נוסף
בקישורים הבאים תמצאו מידע נוסף על יצירת פעולות ב-Google Assistant:
- תיעוד לפיתוח Actions for Google Assistant
- פעולות בדף Google GitHub עבור קוד וספריות לדוגמה
- קהילת Reddit הרשמית למפתחים שעובדים עם Google Assistant
- הנחיות לעיצוב שיחות לשיטות מומלצות והנחיות בנוגע לפעולות שמיועדות לשיחות
אפשר לעקוב אחר @ActionsOnGoogle ב-Twitter כדי לעקוב אחר ההודעות האחרונות שלנו ולציץ ל- #AoGDevs כדי לשתף את מה שיצרתם.
סקר משוב
לפני שליחת הטופס, יש למלא סקר קצר לגבי החוויה שלך.