שילוב של Assistant בפרויקט (בשפות אחרות)

כדי לשלב את 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 שנוצר כאשר רישום דגם המכשיר.

כדי ליצור את פרטי הכניסה, מבצעים את הפעולות הבאות:

  1. שימוש בסביבה וירטואלית של 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
    
  2. מתקינים את כלי ההרשאה:

    python -m pip install --upgrade google-auth-oauthlib[tool]
  3. מפעילים את הכלי. מסירים את הדגל --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.

במהלך העבודה במדריכים האלה, הקפידו לפעול לפי השלבים הבאים:

כדאי לקרוא את השיטות המומלצות בנושא פרטיות ואבטחה כדי לקבל המלצות לגבי אבטחת המכשיר.

אימות החיבור ל-gRPC באמצעות אסימוני OAuth

לסיום, מחברים את כל החלקים יחד. לשם כך, קוראים את המאמר שימוש באסימונים ביצוע אימות עם Google כדי לאמת את החיבור ל-gRPC ל-Assistant API.

רישום המכשיר שלך

רישום דגם המכשיר והמופע שלו באופן ידני או באמצעות כלי הרישום (זמין ב-Python).

הטמעת תיבת דו-שיח בסיסית של שיחה עם Assistant

  1. הטמעה של לקוח gRPC בסטרימינג דו-כיווני ל-Google Assistant Service API.
  2. להמתין שהמשתמש יפעיל בקשה חדשה (למשל, לחכות להפרעה ל-GPIO) בלחיצה על לחצן).
  3. לשלוח 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).
  4. מתחילים להקליט.

  5. שליחה של כמה AssistRequest הודעות יוצאות הודעות עם נתוני אודיו מהשאילתה הקולית בשדה audio_in.

  6. טיפול בשיחות נכנסות AssistResponse הודעות.

  7. חילוץ מטא-נתונים של שיחות מתוך AssistResponse הודעה. לדוגמה, החל מ-dialog_state_out, מקבלים את conversation_state ו-volume_percentage (ראו DialogStateOut).

  8. הפסקת ההקלטה כשמתקבלת AssistResponse עם event_type מתוך END_OF_UTTERANCE.

  9. השמעת אודיו מהתשובה של Assistant עם נתוני אודיו שמגיעים מ-audio_out השדה הזה.

  10. צריך לקחת את הconversation_state שחילצת ולהעתיק קודם אל DialogStateIn בAssistConfig למשך AssistRequest הבא.

במקרה כזה, אתם צריכים להיות מוכנים לשלוח את הבקשות הראשונות אל Google Assistant דרך המכשיר שלך.

הרחבת תיבת דו-שיח של שיחה עם 'פעולות במכשיר'

הרחבה של תיבת הדו-שיח הבסיסית של השיחה שלמעלה כדי להפעיל את החומרה הייחודית היכולות של המכשיר הספציפי:

  1. בAssistResponse הנכנסות הודעות, צריך לחלץ את השדה device_action ( DeviceAction).
  2. ניתוח המטען הייעודי (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.

פתרון בעיות

פתרון בעיות אם נתקלתם בבעיות.