אפשר להשתמש ב-generateContent או ב-streamGenerateContent כדי ליצור תוכן באמצעות Gemini.
משפחת המודלים של Gemini כוללת מודלים שפועלים עם בקשות הנחיות מרובות-אופנים. המונח 'מולטימודאלי' מציין שאפשר להשתמש ביותר ממודאליות אחת, או סוג קלט אחד, בהנחיה. מודלים שהם לא מולטימודאליים מקבלים הנחיות רק עם טקסט. הקטגוריות יכולות לכלול טקסט, אודיו, וידאו ועוד.
קדימה, מתחילים
כדי להתחיל ליצור תוכן באמצעות Gemini:
במסמך הזה מוסבר על גוף הבקשה, על הפרמטרים ועל גוף התשובה של מודל Gemini. כדי לראות כמה דוגמאות לבקשות, אפשר לעיין בדוגמאות.
הוראות לשליחת בקשה ל-Gemini API ב-Vertex AI באמצעות SDK של שפת תכנות או API בארכיטקטורת REST מופיעות במדריך למתחילים עם Gemini API ב-Vertex AI.
מודלים נתמכים
כל המודלים של Gemini תומכים ביצירת תוכן.
רשימת פרמטרים
פרטים על ההטמעה מופיעים בדוגמאות.
גוף הבקשה
{ "cachedContent": string, "contents": [ { "role": string, "parts": [ { // Union field data can be only one of the following: "text": string, "inlineData": { "mimeType": string, "data": string }, "fileData": { "mimeType": string, "fileUri": string }, // End of list of possible types for union field data. "thought": boolean, "thoughtSignature": string, "videoMetadata": { "startOffset": { "seconds": integer, "nanos": integer }, "endOffset": { "seconds": integer, "nanos": integer }, "fps": double }, "mediaResolution": MediaResolution } ] } ], "systemInstruction": { "role": string, "parts": [ { "text": string } ] }, "tools": [ { "functionDeclarations": [ { "name": string, "description": string, "parameters": { object (OpenAPI Object Schema) } } ] } ], "safetySettings": [ { "category": enum (HarmCategory), "threshold": enum (HarmBlockThreshold) } ], "generationConfig": { "temperature": number, "topP": number, "topK": number, "candidateCount": integer, "maxOutputTokens": integer, "presencePenalty": float, "frequencyPenalty": float, "stopSequences": [ string ], "responseMimeType": string, "responseSchema": schema, "seed": integer, "responseLogprobs": boolean, "logprobs": integer, "audioTimestamp": boolean, "thinkingConfig": { "thinkingBudget": integer, "thinkingLevel": enum }, "mediaResolution": MediaResolution }, "labels": { string: string } }
גוף הבקשה מכיל נתונים עם הפרמטרים הבאים:
| פרמטרים | |
|---|---|
| אופציונלי:
השם של התוכן שנשמר במטמון ומשמש כהקשר להצגת התחזית. פורמט:
|
|
חובה: התוכן של השיחה הנוכחית עם המודל. בשביל שאילתות של תור יחיד, זהו מופע יחיד. בשביל שאילתות מרובות, זהו שדה חוזר שמכיל את היסטוריית השיחות ואת הבקשה האחרונה. |
|
זמין ב- הוראות למודל כדי לשפר את הביצועים. לדוגמה: "תענה בצורה תמציתית ככל האפשר" או "אל תשתמש במונחים טכניים בתשובה שלך". מחרוזות המערכת מתעלמת מהשדה |
|
זה שינוי אופציונלי. חלק קוד שמאפשר למערכת ליצור אינטראקציה עם מערכות חיצוניות כדי לבצע פעולה או סדרת פעולות, ללא ידיעה או היקף של המודל. מידע נוסף על בקשה להפעלת פונקציה |
|
זה שינוי אופציונלי. מידע נוסף על בקשה להפעלת פונקציה |
|
הגדרות לכל בקשה לחסימת תוכן לא בטוח. נאכפה בתאריך |
|
הגדרות התצורה של יצירת התמונות. |
|
מטא-נתונים שאפשר להוסיף לקריאה ל-API בפורמט של צמדי מפתח/ערך. |
contents
סוג הנתונים המובְנים הבסיסי שמכיל תוכן של הודעה שמורכב מכמה חלקים.
המחלקות האלה מורכבות משני מאפיינים עיקריים: role ו-parts. המאפיין role
מציין את האדם שיצר את התוכן, והמאפיין parts
מכיל כמה רכיבים, שכל אחד מהם מייצג פלח נתונים בהודעה.
| פרמטרים | |
|---|---|
|
הזהות של הישות שיצרה את ההודעה. יש תמיכה בערכים הבאים:
הערך |
|
רשימה של חלקים מסודרים שמרכיבים הודעה אחת. יכול להיות שלחלקים שונים יהיו סוגי MIME שונים של IANA. לגבי מגבלות על הקלט, כמו מספר הטוקנים המקסימלי או מספר התמונות, אפשר לעיין במפרט המודל בדף המודלים של Google. כדי לחשב את מספר הטוקנים בבקשה, אפשר לעיין במאמר בנושא קבלת מספר הטוקנים. |
parts
סוג נתונים שמכיל מדיה שהיא חלק מהודעה Content מרובת חלקים.
| פרמטרים | |
|---|---|
|
הנחיית טקסט או קטע קוד. |
|
נתונים מוטבעים בבייטים גולמיים. במקרה של |
|
נתונים שמאוחסנים בקובץ. |
|
אופציונלי: הוא מכיל מחרוזת שמייצגת את השדה |
|
אופציונלי: פלט התוצאה של |
|
מציין אם החלק מייצג את תהליך החשיבה או הנימוק של המודל. |
|
חתימה אטומה למחשבה, כדי שאפשר יהיה לעשות בה שימוש חוזר בבקשות הבאות. מחרוזת בקידוד Base64. |
|
במקרה של קלט של סרטון, צריך לציין את היסט ההתחלה והסיום של הסרטון בפורמט משך ואת קצב הפריימים של הסרטון . לדוגמה, כדי לציין קליפ באורך 10 שניות שמתחיל בדקה 1:00 עם קצב פריימים של 10 פריימים לשנייה, מגדירים את הערכים הבאים:
צריך לציין את המטא-נתונים רק בזמן הצגת נתוני הסרטון ב- |
|
רזולוציית המדיה לכל חלק של קלט המדיה. קובעת את אופן העיבוד של מדיה שמוזנת. אם מציינים את ההגדרה הזו, היא מבטלת את ההגדרה |
blob
בלוב תוכן. אם אפשר, עדיף לשלוח כטקסט ולא כבייטים גולמיים.
| פרמטרים | |
|---|---|
|
data או fileUri. הערכים הקבילים כוללים את האפשרויות הבאות:
לחיצה להרחבת סוגי MIME
ב- קובצי טקסט צריכים להיות בקידוד UTF-8. התוכן של קובץ הטקסט נספר במגבלת הטוקנים. אין הגבלה על רזולוציית התמונה. |
|
קידוד base64 של התמונה, קובץ ה-PDF או הסרטון שרוצים לכלול בהנחיה. כשמצרפים מדיה בתוך השורה, צריך לציין גם את סוג המדיה ( מגבלת גודל: 7MB לתמונות |
FileData
נתוני URI או כתובת URL של אתר.
| פרמטרים | |
|---|---|
|
|
|
כתובת ה-URI או כתובת ה-URL של הקובץ שרוצים לכלול בהנחיה. הערכים הקבילים כוללים את האפשרויות הבאות:
כשמציינים |
functionCall
תחזית functionCall שמוחזרת מהמודל ומכילה מחרוזת שמייצגת את functionDeclaration.name ואובייקט JSON מובנה שמכיל את הפרמטרים והערכים שלהם.
| פרמטרים | |
|---|---|
|
השם של הפונקציה שרוצים להפעיל. |
|
הפרמטרים והערכים של הפונקציה בפורמט אובייקט JSON. פרטים על הפרמטרים מופיעים במאמר בנושא קריאה לפונקציות. |
functionResponse
הפלט שמתקבל מ-FunctionCall שמכיל מחרוזת שמייצגת את FunctionDeclaration.name. הוא מכיל גם אובייקט JSON מובנה עם הפלט מהפונקציה (והוא משמש כהקשר למודל). התג הזה צריך להכיל את התוצאה של FunctionCall שנוצרה על סמך חיזוי של המודל.
| פרמטרים | |
|---|---|
|
השם של הפונקציה שרוצים להפעיל. |
|
התגובה של הפונקציה בפורמט אובייקט JSON. |
videoMetadata
מטא-נתונים שמתארים את תוכן סרטון הקלט.
| פרמטרים | |
|---|---|
|
ההיסט מתחילת הסרטון. |
|
ההיסט של סוף הסרטון. |
|
קצב הפריימים של הסרטון שנשלח למודל. אם לא מציינים ערך, ברירת המחדל היא |
safetySetting
הגדרות בטיחות.
| פרמטרים | |
|---|---|
|
קטגוריית הבטיחות שרוצים להגדיר לה סף. הערכים הקבילים כוללים את האפשרויות הבאות:
הרחבת קטגוריות הבטיחות
|
|
הסף לחסימת תשובות שעשויות להשתייך לקטגוריית הבטיחות שצוינה על סמך הסתברות.
|
|
מציינים אם הסף משמש לציון הסתברות או חומרה. אם לא מציינים ערך, נעשה שימוש בסף לציון הסתברות. |
harmCategory
קטגוריות של נזק שחוסמות תוכן.
| פרמטרים | |
|---|---|
|
לא צוינה קטגוריית הנזק. |
|
קטגוריית הנזק היא דברי שטנה. |
|
קטגוריית הנזק היא תוכן מסוכן. |
|
קטגוריית הנזק היא הטרדה. |
|
קטגוריית הנזק היא תוכן מיני בוטה. |
harmBlockThreshold
רמות הסבירות שמשמשות לחסימת תשובה.
| פרמטרים | |
|---|---|
|
סף לא מוגדר לחסימת תוכן מזיק. |
|
חסימה של סף נמוך ומעלה (כלומר, חסימה של יותר תוצאות). |
|
חסימה של סף בינוני ומעלה. |
|
חסימה רק של סף גבוה (כלומר, חסימה של פחות תוצאות). |
|
לא לחסום אף אחד. |
|
אם כל הקטגוריות מושבתות, ההגנה מושבתת |
harmBlockMethod
סף הסתברות שחוסם תגובה על סמך שילוב של הסתברות וחומרה.
| פרמטרים | |
|---|---|
|
לא צוינה שיטה לחסימת תוכן מזיק. |
|
שיטת החסימה של תוכן מזיק משתמשת גם בציון הסתברות וגם בציון חומרה. |
|
שיטת החסימה של תוכן מזיק מתבססת על ציון הסבירות. |
generationConfig
הגדרות התצורה שמשמשות ליצירת ההנחיה.
| פרמטרים | |
|---|---|
|
טווח הערכים וערך ברירת המחדל הם ספציפיים לכל מודל. טבלת טווחי הטמפרטורות וערכי ברירת המחדל
רמת האקראיות משמשת לדגימה במהלך יצירת התגובה, שמתרחשת כשמחילים את אם המודל מחזיר תשובה כללית מדי, קצרה מדי או תשובת ברירת מחדל, נסו להגדיל את רמת האקראיות. אם המודל נכנס ליצירה אינסופית, יכול להיות שהעלאת רמת האקראיות ל- 1.0 הוא ערך הטמפרטורה המומלץ להתחלה.
|
|
אם מציינים את הפרמטר הזה, המערכת משתמשת בדגימת גרעין. ההגדרה Top-P משנה את האופן שבו המודל בוחר אסימונים לפלט. האסימונים נבחרים מהסבירים ביותר (ראו top-K) עד לסבירים פחות, עד שסכום ההסתברויות שלהם שווה לערך top-P. לדוגמה, אם ההסתברות של האסימונים A, B ו-C היא 0.3, 0.2 ו-0.1, והערך של top-P הוא מציינים ערך נמוך יותר כדי לקבל תשובות פחות אקראיות, וערך גבוה יותר כדי לקבל תשובות יותר אקראיות.
|
|
מספר הווריאציות של התגובה שיוחזרו. בכל בקשה, אתם מחויבים על טוקני הפלט של כל המועמדים, אבל רק פעם אחת על טוקני הקלט. האפשרות לציין כמה מועמדים היא תכונת Preview שפועלת עם
|
|
אופציונלי: int מספר האסימונים המקסימלי שאפשר ליצור בתשובה. טוקן הוא בערך ארבעה תווים. 100 טוקנים תואמים בערך ל-60 עד 80 מילים. כדי לקבל תשובות קצרות יותר, מציינים ערך נמוך יותר, וכדי לקבל תשובות ארוכות יותר, מציינים ערך גבוה יותר. מידע נוסף זמין במאמר בנושא פרמטרים ליצירת תוכן. |
|
מציין רשימה של מחרוזות שאם אחת מהן מופיעה בתשובה, המודל מפסיק ליצור טקסט. אם מחרוזת מופיעה כמה פעמים בתשובה, התשובה תיחתך במקום שבו היא מופיעה בפעם הראשונה.
המחרוזות הן תלויות אותיות רישיות (case-sensitive).
אפשר להוסיף לרשימה עד 5 פריטים. מידע נוסף זמין במאמר בנושא פרמטרים ליצירת תוכן. |
|
עונשים חיוביים. ערכים חיוביים מענישים טוקנים שכבר מופיעים בטקסט שנוצר, ומגדילים את ההסתברות ליצירת תוכן מגוון יותר. הערך המקסימלי של |
|
ערכים חיוביים מענישים טוקנים שמופיעים שוב ושוב בטקסט שנוצר, ומקטינים את ההסתברות לחזרה על תוכן. הערך המקסימלי של |
|
סוג ה-MIME של תגובת הפלט של הטקסט המועמד שנוצר. סוגי ה-MIME הבאים נתמכים:
כדי למנוע התנהגויות לא רצויות, צריך לציין את סוג התגובה המתאים. לדוגמה, אם אתם רוצים לקבל תגובה בפורמט JSON, צריך לציין text/plain עם responseSchema. |
|
אופציונלי: סכימה צריך להקפיד על הסכימה שיוצרת את הטקסט המועמד. מידע נוסף זמין במאמר בנושא שליטה בפלט שנוצר. כדי להשתמש בפרמטר הזה, צריך לציין סוג MIME נתמך שאינו |
|
כשמגדירים ערך מסוים ל-seed, המודל עושה כמיטב יכולתו כדי לספק את אותה תשובה לבקשות חוזרות. אין ערובה לפלט דטרמיניסטי. בנוסף, שינוי של המודל או של הגדרות הפרמטרים, כמו רמת האקראיות, יכול לגרום לשינויים בתשובה גם כשמשתמשים באותו ערך בסיס. כברירת מחדל, נעשה שימוש בערך אקראי של seed. |
|
אם הערך הוא true, הפונקציה מחזירה את ההסתברויות הלוגריתמיות של הטוקנים שהמודל בחר בכל שלב. כברירת מחדל, הפרמטר הזה מוגדר כ- |
|
הפונקציה מחזירה את ההסתברויות הלוגריתמיות של הטוקנים המובילים בכל שלב של יצירה. יכול להיות שהטוקן שהמודל בחר לא יהיה זהה לטוקן המועמד המוביל בכל שלב. מציינים את מספר המועמדים להחזרה באמצעות ערך שלם בטווח כדי להשתמש בפרמטר הזה, צריך להפעיל את |
|
זמין במודלים הבאים:
מאפשרת להבין חותמות זמן בקבצים של אודיו בלבד. זו תכונה בגרסת טרום-השקה (Preview). |
|
הגדרה של תהליך החשיבה של המודל ב-Gemini 2.5 ומודלים מתקדמים יותר. אובייקט
|
|
קובעת את אופן העיבוד של מדיה שמוזנת. |
גוף התשובה
{ "candidates": [ { "content": { "parts": [ { "text": string } ] }, "finishReason": enum (FinishReason), "safetyRatings": [ { "category": enum (HarmCategory), "probability": enum (HarmProbability), "blocked": boolean } ], "citationMetadata": { "citations": [ { "startIndex": integer, "endIndex": integer, "uri": string, "title": string, "license": string, "publicationDate": { "year": integer, "month": integer, "day": integer } } ] }, "avgLogprobs": double, "logprobsResult": { "topCandidates": [ { "candidates": [ { "token": string, "logProbability": float } ] } ], "chosenCandidates": [ { "token": string, "logProbability": float } ] } } ], "usageMetadata": { "promptTokenCount": integer, "candidatesTokenCount": integer, "totalTokenCount": integer }, "modelVersion": string }
| רכיב התגובה | תיאור |
|---|---|
modelVersion |
המודל והגרסה שבהם נעשה שימוש ליצירה. לדוגמה:
gemini-2.0-flash-lite-001. |
text |
הטקסט שנוצר. |
finishReason |
הסיבה להפסקת יצירת הטוקנים על ידי המודל. אם השדה ריק, המודל לא הפסיק ליצור את הטוקנים. מכיוון שהתגובה משתמשת בהנחיה כדי לספק הקשר, אי אפשר לשנות את אופן הפעולה של המודל כשמפסיקים ליצור אסימונים.
|
category |
קטגוריית הבטיחות שרוצים להגדיר לה סף. הערכים הקבילים כוללים את האפשרויות הבאות:
הרחבת קטגוריות הבטיחות
|
probability |
רמות הסבירות לפגיעה בתוכן.
|
blocked |
תכונה ניסיונית בוליאנית שמשויכת למאפיין בטיחות ומציינת אם הקלט או הפלט של המודל נחסמו. |
startIndex |
מספר שלם שמציין איפה מתחיל ציטוט ב-content. הערך של startIndex הוא בבייטים ומחושב מתוך התגובה שמקודדת ב-UTF-8.
|
endIndex |
מספר שלם שמציין איפה מסתיים ציטוט ב-content. הערך של endIndex הוא בבייטים ומחושב מתוך התגובה שמקודדת ב-UTF-8.
|
url |
כתובת ה-URL של מקור הציטוט. דוגמאות למקורות של כתובות URL יכולות להיות אתר חדשות או מאגר ב-GitHub. |
title |
הכותרת של מקור הציטוט. דוגמאות לכותרים של מקורות: כותרת של מאמר חדשות או של ספר. |
license |
הרישיון שמשויך לציטוט. |
publicationDate |
התאריך שבו פורסם הציטוט. הפורמטים התקינים הם YYYY, YYYY-MM ו-YYYY-MM-DD.
|
avgLogprobs |
ההסתברות הממוצעת של הלוג של המועמד. |
logprobsResult |
מחזירה את הטוקנים המובילים האפשריים (topCandidates) ואת הטוקנים שנבחרו בפועל (chosenCandidates) בכל שלב. |
token |
מודלים של AI גנרטיבי מפרקים נתוני טקסט לטוקנים לצורך עיבוד, שיכולים להיות תווים, מילים או ביטויים. |
logProbability |
ערך הסתברות לוגריתמית שמציין את רמת הביטחון של המודל לגבי טוקן מסוים. |
promptTokenCount |
מספר האסימונים בבקשה. |
candidatesTokenCount |
מספר הטוקנים בתשובות. |
totalTokenCount |
מספר האסימונים בבקשה ובתגובות. |
דוגמאות
יצירת טקסט
ליצור תשובה שהיא טקסט מקלט טקסט.
Gen AI SDK ל-Python
Python (OpenAI)
אפשר להפעיל את Inference API באמצעות ספריית OpenAI. למידע נוסף, ראו קריאה למודלים של Vertex AI באמצעות ספריית OpenAI.
Go
שימוש בהנחיה מולטי-מודאלית
יצירת תשובה טקסטואלית מקלט מולטי-מודאלי, כמו טקסט ותמונה.
Gen AI SDK ל-Python
Python (OpenAI)
אפשר להפעיל את Inference API באמצעות ספריית OpenAI. למידע נוסף, ראו קריאה למודלים של Vertex AI באמצעות ספריית OpenAI.
Go
סטרימינג של תשובה בהודעת טקסט
יצירת תשובה של מודל סטרימינג מקלט טקסט.
Gen AI SDK ל-Python
Python (OpenAI)
אפשר להפעיל את Inference API באמצעות ספריית OpenAI. למידע נוסף, ראו קריאה למודלים של Vertex AI באמצעות ספריית OpenAI.
Go
גרסאות המודלים
כדי להשתמש בגרסה שעודכנה אוטומטית, צריך לציין את שם המודל בלי מספר הגרסה בסוף, למשל gemini-2.0-flash במקום gemini-2.0-flash-001.
מידע נוסף זמין במאמר גרסאות ומחזור חיים של מודלים של Gemini.
המאמרים הבאים
- מידע נוסף על Gemini API ב-Vertex AI
- מידע נוסף על קריאה לפונקציות
- מידע נוסף על ביסוס התשובות של מודלים של Gemini