פתרון בעיות ב-Gemini Live API

במסמך הזה מפורטים שלבים לפתרון בעיות שאתם עשויים להיתקל בהן במהלך השימוש ב-Gemini Live API.

החיבור מתנתק באופן לא צפוי

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

התנהגות

הסשן נותק עם קוד השגיאה 1000 או 1006.

סיבות אפשריות

  • דחיסת חלון ההקשר לא מופעלת, והטוקן של ההקשר חורג ממגבלת הטוקנים של ההקשר בסשן (עד 128k).
  • לא הוטמעה לוגיקה של חידוש סשן, או שהלוגיקה של חידוש הסשן לא הוטמעה בצורה נכונה.
  • חיבור מקוטע לאינטרנט.

סיבות ופתרונות

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

  • החיבור לסשן יפוג אחרי 10 דקות: כדאי לנהל את חידוש הסשן כדי לאפשר אינטראקציות ארוכות יותר. מידע נוסף זמין במאמר בנושא שיטות מומלצות לחידוש סשן.

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

המודל לא הבין את המשתמש

אם נראה שהמודל לא מבין את הקלט שלכם, ודאו שפורמט האודיו תקין, וקחו בחשבון את איכות המיקרופון ורעשי הרקע.

התנהגות

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

סיבות אפשריות

  • פורמט האודיו של הקלט לא תקין.
  • איכות המיקרופון לא טובה.
  • רעשי הרקע חזקים מדי.

סיבות ופתרונות

  • פורמט האודיו של הקלט לא תקין: צריך לוודא שאודיו הקלט הוא בפורמט PCM של 16 ביט, עם סדר בתים מסוג little-endian, קצב דגימה של 16kHz וערוץ מונו יחיד.

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

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

המודל לא מגיב

אם לא מתקבלת תשובה מהמודל, בודקים את האפשרויות לזיהוי פעילות קולית ואת חיבור ה-WebSocket.

התנהגות

אין תגובה מהמודל.

סיבות אפשריות

  • ההגדרות של VAD לא נקבעו בצורה נכונה.
  • החיבור ל-WebSocket נקטע.

סיבות ופתרונות

  • הגדרת VAD שגויה: המשתמש השבית את VAD. במקרה כזה, המודל ימשיך לחכות לדיבור של המשתמש ולא יגיב לו. אם ה-VAD מושבת, חשוב לשלוח את האירועים ActivityStart ו-ActivityEnd למודל.

  • החיבור ל-WebSocket נקטע: אם החיבור ל-WebSocket נקטע, לא תהיה תקשורת בין הלקוח לשרת. בודקים את סטטוס החיבור של WebSocket ומוודאים שהוא נוצר בצורה תקינה.

אי אפשר להפריע למודל

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

התנהגות

המודל ממשיך לדבר בלי הפרעה מהמשתמש.

סיבות אפשריות

  • ניקוי מאגר הנתונים הזמני של ההפעלה נכשל.
  • הייתה בעיה בסטרימינג של אודיו ל-Gemini Live API.
  • ההטמעה של VAD מותאם אישית לא תקינה.

סיבות ופתרונות

  • הניקוי של מאגר ההפעלה נכשל: הלקוח צריך לנקות את מאגר ההפעלה באופן מיידי כשמתקבל אות הפרעה מהמודל. אחרת, המודל ימשיך לדבר.

  • הייתה בעיה בהזרמת אודיו ל-Gemini Live API: הלקוח צריך להזרים אודיו ל-Gemini Live API במקטעים של 20 עד 40 אלפיות השנייה כדי למזער את זמן האחזור. אם הלקוח לא מצליח להזרים אודיו ל-Gemini Live API, המודל לא ישלח אות הפרעה ללקוח.

  • ההטמעה של VAD מותאם אישית לא תקינה: אם ה-VAD המותאם אישית לא מצליח לזהות את תחילת הדיבור או שהלקוח לא מצליח לשלוח אות ActivityStart למודל, המודל לא ישלח אות הפרעה ללקוח.

מגבלות ידועות

המגבלות הבאות חלות על Gemini Live API. כל פריט כולל פתרון, אם יש כזה.

אין תמיכה בתוכנית 'תשלום לפי שימוש' עם עדיפות בקבלת תמיכה

‫Gemini Live API לא תומך בתשלום לפי שימוש עם עדיפות כאפשרות צריכה.

הקול יכול להשתנות במהלך תור אחד

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

קצב הדיבור יכול לעלות במהלך תורות ארוכות

כשהמודל יוצר תשובה מדוברת ארוכה ורציפה, קצב הדיבור שלו יכול לעלות בהדרגה. אפשר להבחין בהתנהגות הזו בעיקר בשיחות שנמשכות יותר מ-60 שניות. כדי לשמור על קצב יציב, אפשר להשתמש בשיטות הבאות:

  • פיצול פלטים ארוכים: לא כדאי לבקש מהמודל לקרוא בלוקים ארוכים של טקסט בתור אחד. לפצל תשובות ארוכות לחלקים של פחות מ-100 מילים, או פחות מ-50 שניות של אודיו מדובר.

  • שימוש בשיחה לסירוגין: אימוץ דפוס של דיאלוג אינטראקטיבי שבו השליטה מוחזרת למשתמש בין פלחים.

המודל יכול לעבור בין שפות באופן בלתי צפוי

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

יכול להיות שרצפי ספרות יחזרו בצורה לא עקבית

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