Live API הוא API עם שמירת מצב שמשתמש ב-WebSockets. בקטע הזה מופיעים פרטים נוספים על WebSockets API.
סשנים
חיבור WebSocket יוצר סשן בין הלקוח לבין שרת Gemini. אחרי שהלקוח יוזם חיבור חדש, הסשן יכול להעביר הודעות עם השרת כדי:
- שליחת טקסט, אודיו או סרטון לשרת Gemini.
- לקבל בקשות לאודיו, לטקסט או לבקשות להפעלת פונקציה משרת Gemini.
חיבור WebSocket
כדי להתחיל סשן, מתחברים לנקודת הקצה הזו של websocket:
wss://generativelanguage.googleapis.com/ws/google.ai.generativelanguage.v1beta.GenerativeService.BidiGenerateContent
הגדרות הסשן
ההודעה הראשונית שנשלחת אחרי יצירת חיבור WebSocket מגדירה את הגדרות הסשן, שכוללות את המודל, פרמטרים של יצירה, הוראות מערכת וכלים.
אי אפשר לעדכן את ההגדרה כשהחיבור פתוח. עם זאת, אפשר לשנות את פרמטרים ההגדרה, למעט המודל, כשמשהים וממשיכים את השימוש באמצעות מנגנון חידוש הסשן.
דוגמה להגדרה: שימו לב שהאותיות הגדולות והקטנות בשמות ב-SDK עשויות להיות שונות. כאן אפשר למצוא את אפשרויות ההגדרה של Python SDK.
{
"model": string,
"generationConfig": {
"candidateCount": integer,
"maxOutputTokens": integer,
"temperature": number,
"topP": number,
"topK": integer,
"presencePenalty": number,
"frequencyPenalty": number,
"responseModalities": [string],
"speechConfig": object,
"mediaResolution": object,
"translationConfig": object
},
"systemInstruction": string,
"tools": [object]
}
מידע נוסף על שדה ה-API זמין במאמר בנושא generationConfig.
שליחת הודעות
כדי להחליף הודעות דרך חיבור WebSocket, הלקוח צריך לשלוח אובייקט JSON דרך חיבור WebSocket פתוח. אובייקט ה-JSON חייב להכיל בדיוק אחד מהשדות מתוך קבוצת האובייקטים הבאה:
{
"setup": BidiGenerateContentSetup,
"clientContent": BidiGenerateContentClientContent,
"realtimeInput": BidiGenerateContentRealtimeInput,
"toolResponse": BidiGenerateContentToolResponse
}
הודעות נתמכות לעסק
בטבלה הבאה מפורטות הודעות הלקוח הנתמכות:
| שליחת הודעה | תיאור |
|---|---|
BidiGenerateContentSetup |
הגדרת הסשן שתישלח בהודעה הראשונה |
BidiGenerateContentClientContent |
עדכון מצטבר של תוכן השיחה הנוכחית, שנשלח מהלקוח |
BidiGenerateContentRealtimeInput |
קלט אודיו, וידאו או טקסט בזמן אמת |
BidiGenerateContentToolResponse |
תגובה ל-ToolCallMessage שהתקבלה מהשרת |
קבלת הודעות
כדי לקבל הודעות מ-Gemini, צריך להאזין לאירוע 'message' של WebSocket, ואז לנתח את התוצאה בהתאם להגדרה של הודעות השרת הנתמכות.
תוכלו לעיין במקורות המידע הבאים:
async with client.aio.live.connect(model='...', config=config) as session:
await session.send(input='Hello world!', end_of_turn=True)
async for message in session.receive():
print(message)
יכול להיות שהודעות מהשרת יכללו את השדה usageMetadata, אבל הן יכללו בדיוק אחד מהשדות האחרים בהודעה BidiGenerateContentServerMessage. (האיחוד messageType לא מופיע ב-JSON, ולכן השדה יופיע ברמה העליונה של ההודעה).
הודעות ואירועים
ActivityEnd
בסוג הזה אין שדות.
מסמן את סוף פעילות המשתמש.
ActivityHandling
הדרכים השונות לטיפול בפעילות המשתמשים.
| טיפוסים בני מנייה (enum) | |
|---|---|
ACTIVITY_HANDLING_UNSPECIFIED |
אם לא מצוין ערך, ההתנהגות שמוגדרת כברירת מחדל היא START_OF_ACTIVITY_INTERRUPTS. |
START_OF_ACTIVITY_INTERRUPTS |
אם הערך הוא True, התחלת הפעילות תקטע את התשובה של המודל (נקרא גם "פריצה לשיחה"). התשובה הנוכחית של המודל תיקטע ברגע ההפרעה. זו התנהגות ברירת המחדל. |
NO_INTERRUPTION |
התשובה של המודל לא תיקטע. |
ActivityStart
בסוג הזה אין שדות.
סימון תחילת פעילות המשתמש.
AudioTranscriptionConfig
הגדרת תמלול האודיו.
| שדות | |
|---|---|
languageCodes[] |
אופציונלי. קודי שפה בתקן BCP-47 שמספקים רמזים לגבי השפות שמופיעות באודיו. אם לא מציינים שפה או אם השדה ריק, המערכת תבצע זיהוי שפה אוטומטי. |
customVocabulary[] |
אופציונלי. רשימה של ביטויים מותאמים אישית באוצר המילים, כדי להטות את מודל זיהוי הדיבור לזיהוי מונחים ספציפיים (שמות מוצרים, שמות עצם, ז'רגון). |
wordTimestamp |
אופציונלי. המדיניות מגדירה יצירה של חותמות זמן ברמת המילה. |
diarization |
אופציונלי. הגדרת חלוקת קובץ האודיו לפי דוברים. |
mode |
אופציונלי. ההגדרה קובעת את מצב התמלול. ערכים נתמכים: |
מצב
מצב תמלול.
| טיפוסים בני מנייה (enum) | |
|---|---|
MODE_UNSPECIFIED |
מצב תמלול לא מוגדר. |
VERBATIM |
מצב תמלול מילולי. |
SMART |
מצב תמלול חכם. |
AutomaticActivityDetection
ההגדרה קובעת את אפשרויות הזיהוי האוטומטי של פעילות.
| שדות | |
|---|---|
disabled |
אופציונלי. אם ההגדרה מופעלת (ברירת המחדל), דיבור וטקסט שזוהו נספרים כפעילות. אם ההגדרה מושבתת, הלקוח צריך לשלוח אותות פעילות. |
startOfSpeechSensitivity |
אופציונלי. קובע את הסבירות לזיהוי דיבור. |
prefixPaddingMs |
אופציונלי. המשך הנדרש של הדיבור שזוהה לפני שמתחילים לתמלל. ככל שהערך הזה נמוך יותר, כך זיהוי תחילת הדיבור רגיש יותר, ואפשר לזהות דיבור קצר יותר. עם זאת, זה גם מגדיל את הסבירות לתוצאות חיוביות כוזבות. |
endOfSpeechSensitivity |
אופציונלי. קובע את הסבירות לכך שהדיבור שזוהה הסתיים. |
silenceDurationMs |
אופציונלי. משך הזמן הנדרש של זיהוי קטע שאינו דיבור (למשל שקט) לפני שמתבצעת פעולה של סיום הדיבור. ככל שהערך הזה גדול יותר, כך יכולים להיות פערים ארוכים יותר בדיבור בלי להפריע לפעילות של המשתמש, אבל זה יגדיל את זמן האחזור של המודל. |
BidiGenerateContentClientContent
עדכון מצטבר של השיחה הנוכחית שמועבר מהלקוח. כל התוכן שמופיע כאן מצורף להיסטוריית השיחות ללא תנאי ומשמש כחלק מהפרומפט למודל ליצירת תוכן.
הודעה כאן תקטע כל יצירת תוכן נוכחית של מודל.
| שדות | |
|---|---|
turns[] |
אופציונלי. התוכן שמצורף לשיחה הנוכחית עם המודל. בשאלות עם תשובה אחת, מדובר במופע יחיד. בשאילתות מרובות, זהו שדה חוזר שמכיל את היסטוריית השיחות ואת הבקשה האחרונה. |
turnComplete |
אופציונלי. אם הערך הוא true, המשמעות היא שיצירת התוכן בשרת צריכה להתחיל עם ההנחיה שנצברה עד עכשיו. אחרת, השרת ימתין להודעות נוספות לפני שיתחיל ליצור את התוכן. |
BidiGenerateContentRealtimeInput
קלט מהמשתמש שנשלח בזמן אמת.
המודליות השונות (אודיו, וידאו וטקסט) מטופלות כזרמים מקבילים. אין ערובה לסדר של הנתונים בזרמים האלה.
יש כמה הבדלים בין BidiGenerateContentClientContent לבין:
- אפשר לשלוח אותם ברציפות בלי להפריע ליצירת המודל.
- אם יש צורך לשלב נתונים שמופיעים לסירוגין ב-
BidiGenerateContentClientContentוב-BidiGenerateContentRealtimeInput, השרת ינסה לבצע אופטימיזציה כדי להשיג את התגובה הטובה ביותר, אבל אין ערובה לכך. - סוף התור לא מצוין באופן מפורש, אלא נגזר מפעילות המשתמש (לדוגמה, סוף הדיבור).
- גם לפני סוף התור, הנתונים מעובדים באופן מצטבר כדי לייעל את תחילת התגובה של המודל.
| שדות | |
|---|---|
mediaChunks[] |
אופציונלי. נתוני בייטים מוטבעים לקלט מדיה. אין תמיכה בכמה ערכים של יצא משימוש: במקומה יש להשתמש ב- |
audio |
אופציונלי. הם יוצרים את זרם קלט האודיו בזמן אמת. |
video |
אופציונלי. הם יוצרים את זרם קלט הווידאו בזמן אמת. |
activityStart |
אופציונלי. סימון תחילת פעילות המשתמש. אפשר לשלוח את הנתונים האלה רק אם השבתתם את הזיהוי האוטומטי של פעילות (כלומר, בצד השרת). |
activityEnd |
אופציונלי. מסמן את סוף פעילות המשתמש. אפשר לשלוח את הנתונים האלה רק אם השבתתם את הזיהוי האוטומטי של פעילות (כלומר, בצד השרת). |
mediaResolution |
אופציונלי. הרזולוציה של המדיה שבה רוצים להשתמש. אם לא מציינים ערך, המערכת משתמשת ב- |
audioStreamEnd |
אופציונלי. מציין שסטרימינג האודיו הסתיים, למשל כי המיקרופון כובה. הנתונים האלה צריכים להישלח רק כשההגדרה 'זיהוי אוטומטי של פעילות' מופעלת (זו הגדרת ברירת המחדל). הלקוח יכול לפתוח מחדש את השיחה על ידי שליחת הודעה קולית. |
text |
אופציונלי. הם יוצרים את זרם הקלט של הטקסט בזמן אמת. |
BidiGenerateContentServerContent
עדכון מצטבר של השרת שנוצר על ידי המודל בתגובה להודעות מהלקוח.
התוכן נוצר במהירות האפשרית, ולא בזמן אמת. יכול להיות שהלקוחות יבחרו לשמור את הנתונים במאגר זמני ולהפעיל אותם בזמן אמת.
| שדות | |
|---|---|
generationComplete |
פלט בלבד. אם הערך הוא True, המשמעות היא שהמודל סיים את הגנרציה. אם המודל מופסק במהלך יצירה, לא תהיה הודעה מסוג 'generation_complete' בתור שהופסק, והוא יעבור דרך 'interrupted > turn_complete'. כשהמודל מניח הפעלה בזמן אמת, יהיה עיכוב בין generation_complete לבין turn_complete, כי המודל יחכה שההפעלה תסתיים. |
turnComplete |
פלט בלבד. אם הערך הוא True, המודל סיים את התור שלו. היצירה תתחיל רק בתגובה להודעות נוספות של הלקוח. הערה: כשמופעל דיווח על סטטוס ההפעלה, הנתון הזה מופק רק כשסטטוס ההפעלה מציין שההפעלה הסתיימה. המערכת תתעלם מסטטוס ההפעלה העתידי של אותה גנרציה. |
interrupted |
פלט בלבד. אם הערך הוא true, המשמעות היא שהודעה של לקוח קטעה את יצירת המודל הנוכחית. אם הלקוח מפעיל את התוכן בזמן אמת, זהו אות טוב להפסיק ולרוקן את תור ההפעלה הנוכחי. |
groundingMetadata |
פלט בלבד. מטא-נתונים של ביסוס התוכן שנוצר. |
inputTranscription |
פלט בלבד. תמלול קלט האודיו. התמלול נשלח בנפרד מההודעות האחרות בשרת, ואין הבטחה לגבי הסדר. |
interimInputTranscription |
פלט בלבד. תמלול עם זמן אחזור נמוך מתעדכן בזמן שהמשתמש מדבר. השדה הזה מתעדכן לעיתים קרובות. |
outputTranscription |
פלט בלבד. תמלול האודיו. התמלילים האלה הם חלק מהפלט של הדור בשרת. תמליל הפלט האחרון של התור הזה נשלח לפני |
urlContextMetadata |
|
waitingForInput |
פלט בלבד. אם הערך הוא true, המשמעות היא שהמודל לא יוצר תוכן כי הוא ממתין לקלט נוסף מהמשתמש, למשל כי הוא מצפה שהמשתמש ימשיך לדבר. |
interactionStatus |
פלט בלבד. הסטטוס הנוכחי של הפעילות בסשן הפעיל. תמיד נשלח לצד |
modelTurn |
פלט בלבד. התוכן שהמודל יצר כחלק מהשיחה הנוכחית עם המשתמש. |
BidiGenerateContentServerMessage
הודעת התגובה לקריאה של BidiGenerateContent.
| שדות | |
|---|---|
usageMetadata |
פלט בלבד. מטא-נתונים של השימוש לגבי התשובות. |
voiceActivity |
פלט בלבד. זוהתה פעילות קולית בזרם האודיו. |
שדה איחוד messageType. סוג ההודעה. הערך messageType יכול להיות רק אחד מהבאים: |
|
setupComplete |
פלט בלבד. ההודעה נשלחת בתגובה להודעה |
serverContent |
פלט בלבד. תוכן שנוצר על ידי המודל בתגובה להודעות של לקוחות. |
toolCall |
פלט בלבד. בקשה מהלקוח להפעיל את |
toolCallCancellation |
פלט בלבד. הודעה ללקוח שצריך לבטל את |
goAway |
פלט בלבד. הודעה שהשרת יתנתק בקרוב. |
sessionResumptionUpdate |
פלט בלבד. עדכון של מצב חידוש הסשן. |
BidiGenerateContentSetup
ההודעה שתישלח בBidiGenerateContentClientMessage הראשון (ורק בBidiGenerateContentClientMessage הראשון). מכיל הגדרה שתחול למשך ה-RPC של הסטרימינג.
הלקוחות צריכים להמתין להודעה BidiGenerateContentSetupComplete לפני שליחת הודעות נוספות.
| שדות | |
|---|---|
model |
חובה. שם המשאב של המודל. השם הזה משמש כמזהה לשימוש במודל. פורמט: |
generationConfig |
אופציונלי. הגדרות ליצירה. השדות הבאים לא נתמכים:
|
systemInstruction |
אופציונלי. ההוראות למודל שסופקו על ידי המשתמש. הערה: צריך להשתמש רק בטקסט בחלקים, והתוכן בכל חלק יהיה בפסקה נפרדת. |
tools[] |
אופציונלי. רשימה של
|
realtimeInputConfig |
אופציונלי. הגדרת הטיפול בקלט בזמן אמת. |
sessionResumption |
אופציונלי. הגדרת מנגנון לחידוש סשן. אם הוא כלול, השרת ישלח |
contextWindowCompression |
אופציונלי. הגדרה של מנגנון דחיסה של חלון הקשר. אם הוא נכלל, השרת יקטין אוטומטית את גודל ההקשר כשהוא יעלה על האורך שהוגדר. |
inputAudioTranscription |
אופציונלי. אם ההגדרה מופעלת, מתבצע תמלול של קלט קולי. התמלול מותאם לשפת האודיו של הקלט, אם היא מוגדרת. |
outputAudioTranscription |
אופציונלי. אם ההגדרה הזו מופעלת, מתבצע תמלול של פלט האודיו של המודל. התמליל מותאם לקוד השפה שצוין לאודיו של הפלט, אם הוא הוגדר. |
proactivity |
אופציונלי. הגדרת הפרואקטיביות של המודל. כך המודל יכול להגיב באופן יזום לקלט ולהתעלם מקלט לא רלוונטי. |
historyConfig |
אופציונלי. הגדרת חילופי ההיסטוריה בין הלקוח לבין השרת. |
labels |
אופציונלי. תוויות עם מטא-נתונים שהוגדרו על ידי המשתמש לבקשה. אופציונלי. התוויות צריכות לעמוד בדרישות התוויות המאוחדות הרגילות של Cloud: - המפתחות של התוויות צריכים להתחיל באות. – המפתחות והערכים של התוויות יכולים להכיל עד 63 תווים (נקודות קוד של Unicode) ומורכבים רק מאותיות קטנות, ספרות, קווים תחתונים ומקפים. – אפשר להשתמש בתווים בינלאומיים. שימוש: – מזהי בטיחות מצד צוברים: משתמשים במפתח |
BidiGenerateContentSetupComplete
בסוג הזה אין שדות.
נשלח בתגובה להודעה BidiGenerateContentSetup מהלקוח.
BidiGenerateContentToolCall
בקשה מהלקוח להפעיל את functionCalls ולהחזיר את התשובות עם הערכים התואמים של id.
| שדות | |
|---|---|
functionCalls[] |
פלט בלבד. הבקשה להפעלת הפונקציה שרוצים להריץ. |
BidiGenerateContentToolCallCancellation
הודעה ללקוח שToolCallMessage שהונפק בעבר עם ids שצוינו לא אמור היה להתבצע וצריך לבטל אותו. אם היו תופעות לוואי לקריאות הכלים האלה, יכול להיות שהלקוחות ינסו לבטל את קריאות הכלים. ההודעה הזו מופיעה רק במקרים שבהם הלקוחות קוטעים את תורות השרת.
| שדות | |
|---|---|
ids[] |
פלט בלבד. המזהים של קריאות הכלים שרוצים לבטל. |
BidiGenerateContentToolResponse
תגובה שנוצרה על ידי הלקוח לתגובה ToolCall שהתקבלה מהשרת. אובייקטים ספציפיים מסוג FunctionResponse מותאמים לאובייקטים המתאימים מסוג FunctionCall לפי השדה id.
שימו לב שבפונקציות של GenerateContent API מסוג unary ו-server-streaming, קריאה להפעלת פונקציות מתבצעת על ידי החלפת החלקים של Content, בעוד שבפונקציות של GenerateContent API מסוג bidi, קריאה להפעלת פונקציות מתבצעת באמצעות קבוצת ההודעות הייעודית הזו.
| שדות | |
|---|---|
functionResponses[] |
אופציונלי. התשובה לקריאות לפונקציות. |
BidiGenerateContentTranscription
תמלול של אודיו (קלט או פלט).
| שדות | |
|---|---|
text |
טקסט התמלול. |
languageCode |
קוד השפה של התמליל בתקן BCP-47. |
startOffset |
אופציונלי. ההיסט של התחלת התמלול ביחס להתחלת האודיו. |
endOffset |
אופציונלי. היסט הסיום בזמן של התמלול ביחס לתחילת האודיו. |
ContextWindowCompressionConfig
הפעלה של דחיסת חלון הקשר – מנגנון לניהול חלון הקשר של המודל כך שהוא לא יעלה על אורך נתון.
| שדות | |
|---|---|
שדה איחוד compressionMechanism. מנגנון הדחיסה של חלון ההקשר שבו נעשה שימוש. הערך compressionMechanism יכול להיות רק אחד מהבאים: |
|
slidingWindow |
מנגנון חלון הזזה. |
triggerTokens |
מספר הטוקנים (לפני הרצת תור) שנדרשים להפעלת דחיסה של חלון ההקשר. אפשר להשתמש בזה כדי לאזן בין איכות לבין זמן האחזור, כי חלונות הקשר קצרים יותר עשויים להוביל לתשובות מהירות יותר מהמודל. עם זאת, כל פעולת דחיסה תגרום לעלייה זמנית בחביון, ולכן לא מומלץ להפעיל אותן לעיתים קרובות. אם לא מגדירים את המדיניות, ברירת המחדל היא 80% ממגבלת חלון ההקשר של המודל. זה משאיר 20% לבקשת המשתמש הבאה או לתשובת המודל. |
EndSensitivity
קובע איך מזוהה סוף הדיבור.
| טיפוסים בני מנייה (enum) | |
|---|---|
END_SENSITIVITY_UNSPECIFIED |
ערך ברירת המחדל הוא END_SENSITIVITY_HIGH. |
END_SENSITIVITY_HIGH |
הזיהוי האוטומטי מסיים את הדיבור לעיתים קרובות יותר. |
END_SENSITIVITY_LOW |
הזיהוי האוטומטי מסיים את הדיבור בתדירות נמוכה יותר. |
GoAway
הודעה שהשרת יתנתק בקרוב.
| שדות | |
|---|---|
timeLeft |
הזמן שנותר עד שהחיבור יסתיים כ-ABORTED. המשך הזה אף פעם לא יהיה קצר יותר ממשך מינימלי ספציפי למודל, שייקבע יחד עם מגבלות הקצב של המודל. |
HistoryConfig
הגדרת ההיסטוריה.
ההודעה הזו כלולה בהגדרות הסשן כ-BidiGenerateContentSetup.historyConfig. הגדרת חילופי הודעות היסטוריה.
| שדות | |
|---|---|
initialHistoryInClientContent |
אופציונלי. אם הערך הוא True, אחרי שליחת |
InteractionStatus
מצבי הפעילות השונים של הסשן בזמן אמת. השדה הזה תמיד נשלח יחד עם turnComplete כדי לציין אם השרת סיים את כל העיבוד.
| טיפוסים בני מנייה (enum) | |
|---|---|
INTERACTION_STATUS_UNSPECIFIED |
לא צוין סטטוס האינטראקציה. |
IN_PROGRESS |
השרת עדיין מעבד באופן פעיל את קלט המשתמש או מריץ ניתוח רקע. יכול להיות שיוצג פלט נוסף מהמודל. |
REQUIRES_ACTION |
הוצא משימוש: במקומו צריך להשתמש ב-IDLE. |
IDLE |
השרת סיים את כל העיבוד וההסקה ברקע. |
ProactivityConfig
הגדרות לתכונות פרואקטיביות.
| שדות | |
|---|---|
proactiveAudio |
אופציונלי. אם ההגדרה הזו מופעלת, המודל יכול לסרב להגיב להנחיה האחרונה. לדוגמה, המודל יכול להתעלם מדיבור שלא בהקשר או לא להגיב אם המשתמש עדיין לא הגיש בקשה. |
RealtimeInputConfig
הגדרה של התנהגות הקלט בזמן אמת ב-BidiGenerateContent.
| שדות | |
|---|---|
automaticActivityDetection |
אופציונלי. אם לא מגדירים את ההגדרה הזו, זיהוי הפעילות האוטומטי מופעל כברירת מחדל. אם השבתתם את זיהוי הקול האוטומטי, הלקוח צריך לשלוח אותות פעילות. |
activityHandling |
אופציונלי. הגדרה של ההשפעה של הפעילות. |
turnCoverage |
אופציונלי. הגדרה של הקלט שייכלל בתור של המשתמש. |
interimTranscriptTimestampEnabled |
אופציונלי. הגדרת חותמות זמן לתמליל ביניים. |
SessionResumptionConfig
הגדרת חידוש הסשן.
ההודעה הזו כלולה בהגדרות הסשן כ-BidiGenerateContentSetup.sessionResumption. אם הוגדר, השרת ישלח הודעות SessionResumptionUpdate.
| שדות | |
|---|---|
handle |
הכינוי של סשן קודם. אם הוא לא קיים, נוצר סשן חדש. הערכים של ה-Session handle מגיעים מהערכים של |
SessionResumptionUpdate
עדכון של מצב חידוש הסשן.
הערך נשלח רק אם הוגדר BidiGenerateContentSetup.sessionResumption.
| שדות | |
|---|---|
newHandle |
כינוי חדש שמייצג מצב שאפשר להמשיך ממנו. השדה ריק אם הערך של |
resumable |
הערך הוא True אם אפשר לחדש את הסשן הנוכחי בשלב הזה. בנקודות מסוימות בסשן אי אפשר לחדש את הפעילות. לדוגמה, כשהמודל מבצע קריאה להפעלת פונקציות או יוצר תוכן. אם תנסו להמשיך את הסשן (באמצעות טוקן לסשן קודם) במצב כזה, חלק מהנתונים יאבדו. במקרים כאלה, |
SlidingWindow
השיטה SlidingWindow פועלת על ידי השמטת תוכן בתחילת חלון ההקשר. ההקשר שיתקבל תמיד יתחיל בתחילת תור של תפקיד המשתמש. ההוראות למערכת וכל BidiGenerateContentSetup.prefixTurns תמיד יישארו בתחילת התוצאה.
| שדות | |
|---|---|
targetTokens |
מספר הטוקנים שרוצים לשמור. ערך ברירת המחדל הוא trigger_tokens/2. השלכת חלקים מחלון ההקשר גורמת לעלייה זמנית בחביון, ולכן צריך לכייל את הערך הזה כדי להימנע מפעולות דחיסה תכופות. |
StartSensitivity
קובע איך מזוהה תחילת הדיבור.
| טיפוסים בני מנייה (enum) | |
|---|---|
START_SENSITIVITY_UNSPECIFIED |
ערך ברירת המחדל הוא START_SENSITIVITY_HIGH. |
START_SENSITIVITY_HIGH |
הזיהוי האוטומטי יזהה את תחילת הדיבור לעיתים קרובות יותר. |
START_SENSITIVITY_LOW |
הזיהוי האוטומטי יזהה את תחילת הדיבור בתדירות נמוכה יותר. |
TurnCoverage
אפשרויות לגבי הקלט שנכלל בתור של המשתמש.
| טיפוסים בני מנייה (enum) | |
|---|---|
TURN_COVERAGE_UNSPECIFIED |
אם לא מציינים התנהגות, המערכת בוחרת התנהגות שמוגדרת כברירת מחדל על סמך המודל. לדוגמה, ב-Gemini 2.5, ברירת המחדל היא TURN_INCLUDES_ONLY_ACTIVITY, וב-Gemini 3.1 ואילך, היא TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO. |
TURN_INCLUDES_ONLY_ACTIVITY |
כולל פעילות מאז התור האחרון, לא כולל חוסר פעילות (למשל, שקט בזרם האודיו). |
TURN_INCLUDES_ALL_INPUT |
כולל את כל הקלט בזמן אמת מאז התור האחרון, כולל חוסר פעילות (למשל שקט בזרם האודיו). |
TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO |
כולל את פעילות האודיו וכל הווידאו מאז התור האחרון. בזיהוי אוטומטי של פעילות, פעילות אודיו כוללת דיבור ולא כוללת שקט. |
TranslationConfig
הגדרות לתכונות התרגום.
| שדות | |
|---|---|
targetLanguageCode |
חובה. שפת היעד של התרגום. הערכים הנתמכים הם קודי שפה בתקן BCP-47 (למשל 'en', 'es', 'fr'). |
echoTargetLanguage |
אופציונלי. אם הערך הוא true, המודל ייצור אודיו כשהשפה הממוקדת מדוברת, כלומר הוא יחזור על הקלט. אם הערך הוא False, לא ניצור אודיו בשפת היעד. |
UrlContextMetadata
מטא-נתונים שקשורים לכלי לאחזור הקשר של כתובת URL.
| שדות | |
|---|---|
urlMetadata[] |
רשימה של כתובות URL בהקשר. |
UsageMetadata
מטא-נתונים של השימוש לגבי התשובות.
| שדות | |
|---|---|
promptTokenCount |
פלט בלבד. מספר הטוקנים בהנחיה. גם כשהערך של |
cachedContentTokenCount |
מספר הטוקנים בחלק של ההנחיה שנשמר במטמון (התוכן שנשמר במטמון) |
responseTokenCount |
פלט בלבד. המספר הכולל של הטוקנים בכל התשובות האפשריות שנוצרו. |
toolUsePromptTokenCount |
פלט בלבד. מספר הטוקנים בהנחיות לשימוש בכלי. |
thoughtsTokenCount |
פלט בלבד. מספר הטוקנים של המחשבות למודלים חושבים. |
totalTokenCount |
פלט בלבד. המספר הכולל של הטוקנים בבקשת היצירה (הנחיה + מועמדים לתגובה). |
promptTokensDetails[] |
פלט בלבד. רשימת אופנויות שעברו עיבוד בקלט של הבקשה. |
cacheTokensDetails[] |
פלט בלבד. רשימת אופנויות של התוכן שנשמר במטמון בקלט של הבקשה. |
responseTokensDetails[] |
פלט בלבד. רשימת המודאליות שהוחזרו בתשובה. |
toolUsePromptTokensDetails[] |
פלט בלבד. רשימה של אופנים שונים של קלט שעברו עיבוד לבקשות לשימוש בכלי. |
VoiceActivity
זוהתה פעילות קולית בזרם האודיו.
| שדות | |
|---|---|
type |
פלט בלבד. הסוג של אות ה-VAD(זיהוי דיבור). |
audioOffset |
פלט בלבד. הזמן שבו זוהה דיבור באודיו, ביחס לתחילת שידור האודיו. |
סוג
סוג אות ה-VAD.
| טיפוסים בני מנייה (enum) | |
|---|---|
TYPE_UNSPECIFIED |
ברירת המחדל היא UNSPECIFIED. |
ACTIVITY_START |
אות לתחילת משפט. |
ACTIVITY_END |
אות לסיום המשפט. |
טוקנים זמניים לאימות
אפשר לקבל אסימוני אימות זמניים על ידי קריאה ל-AuthTokenService.CreateToken ואז להשתמש בהם עם GenerativeService.BidiGenerateContentConstrained, על ידי העברת האסימון בפרמטר שאילתה access_token או בכותרת HTTP Authorization עם הקידומת Token.
CreateAuthTokenRequest
יצירת אסימון אימות זמני.
| שדות | |
|---|---|
authToken |
חובה. הטוקן שרוצים ליצור. |
AuthToken
בקשה ליצירת טוקן אימות זמני.
| שדות | |
|---|---|
name |
פלט בלבד. מזהה. הטוקן עצמו. |
expireTime |
אופציונלי. קלט בלבד. אי אפשר לשנות. זמן אופציונלי שאחריו, כשמשתמשים בטוקן שנוצר, הודעות בסשנים של BidiGenerateContent יידחו. (Gemini עשוי לסגור את הסשן לפני הזמן הזה). אם לא מגדירים את התדירות, ברירת המחדל היא 30 דקות. אם הוא מוגדר, הערך הזה צריך להיות פחות מ-20 שעות בעתיד. |
newSessionExpireTime |
אופציונלי. קלט בלבד. אי אפשר לשנות. הזמן שאחריו בקשות חדשות להפעלת Live API באמצעות הטוקן שנוצר מהבקשה הזו יידחו. אם לא מגדירים את ההגדרה הזו, ברירת המחדל בעתיד תהיה 60 שניות. אם הוא מוגדר, הערך הזה צריך להיות פחות מ-20 שעות בעתיד. |
fieldMask |
אופציונלי. קלט בלבד. אי אפשר לשנות. אם field_mask ריק, ו- אם field_mask ריק, ו- אם field_mask לא ריק, השדות התואמים מ- |
שדה איחוד config. ההגדרה הספציפית לשיטה של הטוקן שנוצר. הערך config יכול להיות רק אחד מהבאים: |
|
bidiGenerateContentSetup |
אופציונלי. קלט בלבד. אי אפשר לשנות. ההגדרה ספציפית ל- |
uses |
אופציונלי. קלט בלבד. אי אפשר לשנות. מספר הפעמים שאפשר להשתמש בטוקן. אם הערך הזה הוא אפס, לא חלה הגבלה. חידוש של סשן Live API לא נחשב כשימוש. אם לא מציינים ערך, ברירת המחדל היא 1. |
מידע נוסף על סוגים נפוצים
מידע נוסף על סוגי משאבי ה-API הנפוצים Blob,
Content, FunctionCall, FunctionResponse, GenerationConfig,
GroundingMetadata, ModalityTokenCount ו-Tool זמין במאמר בנושא יצירת תוכן.