כדי לשלב את Google Assistant, פועלים לפי ההוראות בכל אחד מהסעיפים הבאים לפרויקט שלכם.
קישורי gRPC
שירות Google Assistant מבוסס על gRPC, ביצועים, במסגרת קוד פתוח של RPC. המסגרת הזו מתאימה במיוחד סטרימינג דו-כיווני של אודיו.
Python
אם משתמשים ב-Python, מתחילים להשתמש במדריך הזה.
C++
כדאי לעיין בדוגמה של C++ ב-GitHub.
Node.js
אתם מוזמנים לראות את דוגמה של Node.js ב-GitHub.
Android Things
רוצה להשתמש במכשירים מוטמעים? כדאי לבדוק את Assistant SDK sample עבור דברים ב-Android.
שפות אחרות
- שכפול המאגר googleapis כדי לקבל את ההגדרות של ממשק מאגר הנתונים הזמני של הפרוטוקולים Google Assistant Service API.
- פועלים לפי המסמכים בנושא gRPC כדי ליצור gRPC קישורים לשפה הרצויה
- צריך לפעול לפי השלבים שמפורטים בקטעים הבאים.
אישור ואימות של חשבון Google לצורך עבודה עם Assistant
בשלב הבא, עליך לתת למכשיר הרשאה לדבר עם Google Assistant באמצעות חשבון Google שלך.
קבלת אסימוני OAuth עם ההיקף של Assistant SDK
ב-Assistant SDK נעשה שימוש באסימוני גישה מסוג OAuth 2.0 כדי לאשר למכשיר שלך: להתחבר אל Assistant.
כשיוצרים אב טיפוס, אפשר להשתמש בכלי ההרשאות כדי ליצור בקלות OAuth2.0
פרטי כניסה מהקובץ client_secret_<client-id>.json
שנוצר כאשר
רישום דגם המכשיר.
כדי ליצור את פרטי הכניסה, מבצעים את הפעולות הבאות:
שימוש בסביבה וירטואלית של Python כדי לבודד את כלי ההרשאות ואת יחסי התלות שלו מחבילות ה-Python של המערכת.
sudo apt-get update
sudo apt-get install python3-dev python3-venv # Use python3.4-venv if the package cannot be found.
python3 -m venv env
env/bin/python -m pip install --upgrade pip setuptools wheel
source env/bin/activate
מתקינים את כלי ההרשאה:
python -m pip install --upgrade google-auth-oauthlib[tool]
מפעילים את הכלי. מסירים את הדגל
--headless
אם מפעילים את האפשרות הזו מטרמינל במכשיר (לא סשן SSH):google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
כשתהיו מוכנים לשלב את ההרשאה כחלק מהקצאת ההרשאות המנגנון של המכשיר שלך, קרא את המדריכים שלנו בנושא שימוש ב-OAuth 2.0 לגישה ל-Google APIs כדי להבין איך לקבל אסימוני גישה מסוג OAuth, להמשיך להשתמש בהם ולהשתמש בהם כדי לאפשר המכשיר כדי לדבר עם ה-API של Assistant.
במהלך העבודה במדריכים האלה, הקפידו לפעול לפי השלבים הבאים:
- היקף הרשאות OAuth: https://www.googleapis.com/auth/assistant-sdk-prototype
תהליכי OAuth נתמכים:
כדאי לקרוא את השיטות המומלצות בנושא פרטיות ואבטחה כדי לקבל המלצות לגבי אבטחת המכשיר.
אימות החיבור ל-gRPC באמצעות אסימוני OAuth
לסיום, מחברים את כל החלקים יחד. לשם כך, קוראים את המאמר שימוש באסימונים ביצוע אימות עם Google כדי לאמת את החיבור ל-gRPC ל-Assistant API.
רישום המכשיר שלך
רישום דגם המכשיר והמופע שלו באופן ידני או באמצעות כלי הרישום (זמין ב-Python).
הטמעת תיבת דו-שיח בסיסית של שיחה עם Assistant
- הטמעה של לקוח gRPC בסטרימינג דו-כיווני ל-Google Assistant Service API.
- להמתין שהמשתמש יפעיל בקשה חדשה (למשל, לחכות להפרעה ל-GPIO) בלחיצה על לחצן).
לשלוח
AssistRequest
הודעה עם שדה השדהconfig
(כפי שמפורט ב-AssistConfig
). חשוב לוודא שהשדהconfig
מכיל את הפרטים הבאים:- השדה
audio_in_config
, שמציין איך לעבד את נתוניaudio_in
שיסופקו בבקשות הבאות (למידע נוסף, ניתן לעיין ב-AudioInConfig
). - השדה
audio_out_config
, שמציין את הפורמט הרצוי עבור שבו יש להשתמש כאשר מוחזרaudio_out
הודעות (עיין ב-AudioOutConfig
). - השדה
device_config
, שמזהה את רשום ב-Assistant (ראוDeviceConfig
). - השדה
dialog_state_in
, שמכיל את הערךlanguage_code
שמשויכת לבקשה (מידע נוסף זמין בכתובתDialogStateIn
).
- השדה
מתחילים להקליט.
שליחה של כמה
AssistRequest
הודעות יוצאות הודעות עם נתוני אודיו מהשאילתה הקולית בשדהaudio_in
.טיפול בשיחות נכנסות
AssistResponse
הודעות.חילוץ מטא-נתונים של שיחות מתוך
AssistResponse
הודעה. לדוגמה, החל מ-dialog_state_out
, מקבלים אתconversation_state
ו-volume_percentage
(ראוDialogStateOut
).הפסקת ההקלטה כשמתקבלת
AssistResponse
עםevent_type
מתוךEND_OF_UTTERANCE
.השמעת אודיו מהתשובה של Assistant עם נתוני אודיו שמגיעים מ-
audio_out
השדה הזה.צריך לקחת את ה
conversation_state
שחילצת ולהעתיק קודם אלDialogStateIn
בAssistConfig
למשךAssistRequest
הבא.
במקרה כזה, אתם צריכים להיות מוכנים לשלוח את הבקשות הראשונות אל Google Assistant דרך המכשיר שלך.
הרחבת תיבת דו-שיח של שיחה עם 'פעולות במכשיר'
הרחבה של תיבת הדו-שיח הבסיסית של השיחה שלמעלה כדי להפעיל את החומרה הייחודית היכולות של המכשיר הספציפי:
- ב
AssistResponse
הנכנסות הודעות, צריך לחלץ את השדהdevice_action
(DeviceAction
). - ניתוח המטען הייעודי (payload) של JSON בשדה
device_request_json
. עיינו ב הדף תכונות מכשיר של של מאפיינים נתמכים. בכל דף של סכימת trait מוצג EXECUTE לדוגמה עם הפקודות והפרמטרים של המכשיר שמוחזרים מטען ייעודי (payload) של JSON.
קבלת התמליל של בקשת המשתמש
אם מצורף למכשיר צג, כדאי להשתמש בו כדי
מציגים את בקשת המשתמש. כדי לקבל את התמליל, צריך לנתח את השדה speech_results
בAssistResponse
הודעות. כשזיהוי הדיבור יסתיים, הרשימה הזו תכיל פריט אחד
עם stability
שמוגדר ל-1.0.
קבלת הטקסט או הרינדור החזותי של התשובה של Assistant
אם מצורף למכשיר צג, כדאי להשתמש בו כדי
להציג את התשובה של Assistant בטקסט פשוט לבקשה של המשתמש. הטקסט הזה נמצא
בDialogStateOut.supplemental_display_text
השדה הזה.
Assistant תומכת בתגובות חזותיות דרך HTML5 עבור שאילתות מסוימות (
האם מזג האוויר במאונטיין ויו? או מה השעה?). כדי להפעיל את האפשרות הזאת, צריך להגדיר
השדה screen_out_config
ב-AssistConfig
.
ScreenOutConfig
ההודעה מכילה את השדה screen_mode
שצריך להגדיר כ-PLAYING
.
AssistResponse
לאחר מכן הודעות יכילו את השדה screen_out
שהוגדר. אפשר לחלץ את נתוני ה-HTML5 (אם קיימים) מתוך
data
.
שליחת שאילתות באמצעות קלט טקסט
אם יש לכם ממשק טקסט (לדוגמה, מקלדת) שמחובר למכשיר,
מגדירים את השדה text_query
בשדה config
(ראו AssistConfig
).
אל תגדירו את השדה audio_in_config
.
פתרון בעיות
פתרון בעיות אם נתקלתם בבעיות.