Gemini API תומך בהעלאת קובצי מדיה בנפרד מקלט ההנחיה, כך שאפשר להשתמש מחדש במדיה בכמה בקשות וכמה הנחיות. פרטים נוספים זמינים במדריך בנושא יצירת הנחיות עם מדיה.
שיטה: media.upload
העלאת נתונים ל-ragStore, עיבוד מקדים וחלוקה לחלקים לפני אחסון ב-RagStore Document.
נקודת קצה
- URI להעלאה, לבקשות להעלאת מדיה:
https: / /generativelanguage.googleapis.com /upload /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
- URI של מטא-נתונים, לבקשות של מטא-נתונים בלבד:
https: / /generativelanguage.googleapis.com /v1beta /{ragStoreName=ragStores /*}:uploadToRagStore
פרמטרים של נתיב
ragStoreName
string
חובה. אי אפשר לשנות אותו. השם של RagStore
שאליו רוצים להעלות את הקובץ. דוגמה: ragStores/my-rag-store-123
התבנית היא ragStores/{ragstore}
.
גוף הבקשה
גוף הבקשה מכיל נתונים במבנה הבא:
displayName
string
אופציונלי. השם המוצג של המסמך שנוצר.
customMetadata[]
object (CustomMetadata
)
מטא-נתונים בהתאמה אישית שרוצים לשייך לנתונים.
chunkingConfig
object (ChunkingConfig
)
אופציונלי. הגדרות שמציינות לשירות איך לחלק את הנתונים לחלקים. אם לא מספקים פרמטרים, השירות ישתמש בפרמטרים שמוגדרים כברירת מחדל.
mimeType
string
אופציונלי. סוג ה-MIME של הנתונים. אם לא תציינו את השפה, המערכת תסיק אותה מהתוכן שהועלה.
גוף התשובה
זהו עותק של google.longrunning.Operation. אנחנו צריכים להעתיק אותו כי כדי ליצור אינטראקציה עם scotty, אנחנו צריכים להוסיף שדה ספציפי ל-scotty שלא ניתן להוסיף אותו ל-proto של הפעולה ברמה העליונה.
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל נתונים במבנה הבא:
name
string
השם שהוקצה על ידי השרת, שהוא ייחודי רק בתוך אותו שירות שהחזיר אותו במקור. אם משתמשים במיפוי HTTP שמוגדר כברירת מחדל, name
צריך להיות שם משאב שמסתיים ב-operations/{unique_id}
.
metadata
object
מטא-נתונים שספציפיים לשירות ומשויכים לפעולה. הוא בדרך כלל מכיל מידע על ההתקדמות ומטא-נתונים נפוצים כמו זמן היצירה. יכול להיות שחלק מהשירותים לא יספקו מטא-נתונים כאלה. בכל שיטה שמחזירה פעולה ממושכת צריך לתעד את סוג המטא-נתונים, אם יש כזה.
אובייקט שמכיל שדות מסוג שרירותי. שדה נוסף "@type"
מכיל URI שמזהה את הסוג. דוגמה: { "id": 1234, "@type": "types.example.com/standard/id" }
.
done
boolean
אם הערך הוא false
, המשמעות היא שהפעולה עדיין מתבצעת. אם הערך הוא true
, הפעולה הושלמה ואפשר להשתמש בערך error
או response
.
result
Union type
error
או response
חוקי. אם done
== false
, אף אחד מהערכים error
או response
לא מוגדר. אם done
== true
, אפשר להגדיר בדיוק אחד מהערכים error
או response
. יכול להיות שחלק מהשירותים לא יספקו את התוצאה. הערך result
יכול להיות רק אחד מהבאים:error
object (Status
)
תוצאת השגיאה של הפעולה במקרה של כשל או ביטול.
response
object
התגובה הרגילה והמוצלחת של הפעולה. אם השיטה המקורית לא מחזירה נתונים במקרה של הצלחה, כמו Delete
, התגובה היא google.protobuf.Empty
. אם השיטה המקורית היא סטנדרטית Get
/Create
/Update
, התגובה צריכה להיות המשאב. בשיטות אחרות, התשובה צריכה להיות מהסוג XxxResponse
, כאשר Xxx
הוא שם השיטה המקורי. לדוגמה, אם שם השיטה המקורי הוא TakeSnapshot()
, סוג התגובה שמוסק הוא TakeSnapshotResponse
.
אובייקט שמכיל שדות מסוג שרירותי. שדה נוסף "@type"
מכיל URI שמזהה את הסוג. דוגמה: { "id": 1234, "@type": "types.example.com/standard/id" }
.
ייצוג ב-JSON |
---|
{
"name": string,
"metadata": {
"@type": string,
field1: ...,
...
},
"done": boolean,
// result
"error": {
object ( |
ChunkingConfig
פרמטרים שמגדירים לשירות איך לחלק את הקובץ לחלקים. מבוסס על google3/cloud/ai/platform/extension/lib/retrieval/config/chunker_config.proto
config
Union type
config
יכול להיות רק אחד מהבאים:whiteSpaceConfig
object (WhiteSpaceConfig
)
הגדרת חלוקה לקטעים של רווחים לבנים.
ייצוג ב-JSON |
---|
{
// config
"whiteSpaceConfig": {
object ( |
WhiteSpaceConfig
הגדרה של אלגוריתם לחלוקה לקטעים של רווחים [מופרדים באמצעות רווחים].
maxTokensPerChunk
integer
מספר האסימונים המקסימלי לכל נתח. האסימונים מוגדרים כמילים באלגוריתם הזה של חלוקה לחלקים. הערה: אנחנו מגדירים אסימונים כמילים שמפוצלות על ידי רווחים, ולא כפלט של רכיב להמרת טקסט לאסימונים. חלון ההקשר של מודל ה-embedding העדכני של Gemini נכון ל-2025-04-17 הוא 8,192 טוקנים. אנחנו מניחים שאורך מילה ממוצע הוא 5 תווים. לכן, הגדרנו את המגבלה העליונה ל-2**9, כלומר 512 מילים או 2, 560 טוקנים, בהנחה שבמקרה הגרוע ביותר יש תו אחד לכל טוקן. זו הערכה שמרנית שמטרתה למנוע הצפה של חלון ההקשר.
maxOverlapTokens
integer
המספר המקסימלי של אסימונים חופפים בין שני נתחים סמוכים.
ייצוג ב-JSON |
---|
{ "maxTokensPerChunk": integer, "maxOverlapTokens": integer } |
שיטה: files.get
הפונקציה מחזירה את המטא-נתונים של File
שצוין.
נקודת קצה
gethttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
פרמטרים של נתיב
name
string
חובה. שם הFile
שרוצים לאחזר. דוגמה: files/abc-123
התוצאה תהיה files/{file}
.
גוף הבקשה
גוף הבקשה צריך להיות ריק.
דוגמה לבקשה
Python
Node.js
Go
קונכייה
גוף התשובה
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע של File
.
שיטה: files.list
מציג את המטא-נתונים של File
שבבעלות הפרויקט ששולח את הבקשה.
נקודת קצה
gethttps: / /generativelanguage.googleapis.com /v1beta /files
פרמטרים של שאילתה
pageSize
integer
אופציונלי. המספר המקסימלי של File
שיוחזרו בכל דף. אם לא מציינים ערך, ברירת המחדל היא 10. הערך המקסימלי של pageSize
הוא 100.
pageToken
string
אופציונלי. טוקן של דף מקריאה קודמת של files.list
.
גוף הבקשה
גוף הבקשה צריך להיות ריק.
דוגמה לבקשה
Python
Node.js
Go
קונכייה
שיטה: files.delete
מחיקת File
.
נקודת קצה
deletehttps: / /generativelanguage.googleapis.com /v1beta /{name=files /*}
פרמטרים של נתיב
name
string
חובה. השם של File
שרוצים למחוק. דוגמה: files/abc-123
התוצאה תהיה files/{file}
.
גוף הבקשה
גוף הבקשה צריך להיות ריק.
דוגמה לבקשה
Python
Node.js
Go
קונכייה
גוף התשובה
אם הפעולה בוצעה ללא שגיאות, גוף התגובה הוא אובייקט JSON ריק.
משאב REST: files
משאב: קובץ
קובץ הועלה ל-API. המזהה הבא: 15
name
string
אי אפשר לשנות אותו. מזהה. שם המשאב File
. המזהה (השם ללא הקידומת files/) יכול להכיל עד 40 תווים שהם אלפאנומריים באותיות קטנות או מקפים (-). המזהה לא יכול להתחיל או להסתיים במקף. אם השם ריק בזמן היצירה, ייווצר שם ייחודי. לדוגמה: files/123-456
displayName
string
אופציונלי. השם המוצג של File
שקריא לבני אדם. אורך השם המוצג מוגבל ל-512 תווים, כולל רווחים. דוגמה: "תמונת פתיחה"
mimeType
string
פלט בלבד. סוג ה-MIME של הקובץ.
sizeBytes
string (int64 format)
פלט בלבד. גודל הקובץ בבייטים.
createTime
string (Timestamp
format)
פלט בלבד. חותמת הזמן של מועד יצירת File
.
הפונקציה משתמשת ב-RFC 3339, והפלט שנוצר תמיד יהיה מנורמל ל-Z וישתמש ב-0, 3, 6 או 9 ספרות חלקיות. אפשר להשתמש גם בהיסטים אחרים חוץ מ-Z. דוגמאות: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
או "2014-10-02T15:01:23+05:30"
.
updateTime
string (Timestamp
format)
פלט בלבד. חותמת הזמן של העדכון האחרון של File
.
הפונקציה משתמשת ב-RFC 3339, והפלט שנוצר תמיד יהיה מנורמל ל-Z וישתמש ב-0, 3, 6 או 9 ספרות חלקיות. אפשר להשתמש גם בהיסטים אחרים חוץ מ-Z. דוגמאות: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
או "2014-10-02T15:01:23+05:30"
.
expirationTime
string (Timestamp
format)
פלט בלבד. חותמת הזמן שבה File
יימחק. ההגדרה הזו מוגדרת רק אם תוקף ה-File
אמור לפוג.
הפונקציה משתמשת ב-RFC 3339, והפלט שנוצר תמיד יהיה מנורמל ל-Z וישתמש ב-0, 3, 6 או 9 ספרות חלקיות. אפשר להשתמש גם בהיסטים אחרים חוץ מ-Z. דוגמאות: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
או "2014-10-02T15:01:23+05:30"
.
sha256Hash
string (bytes format)
פלט בלבד. גיבוב SHA-256 של הבייטים שהועלו.
מחרוזת בקידוד Base64.
uri
string
פלט בלבד. ה-URI של File
.
downloadUri
string
פלט בלבד. URI של ההורדה של File
.
state
enum (State
)
פלט בלבד. סטטוס העיבוד של הקובץ.
source
enum (Source
)
מקור הקובץ.
error
object (Status
)
פלט בלבד. סטטוס השגיאה אם עיבוד הקובץ נכשל.
metadata
Union type
metadata
יכול להיות רק אחד מהבאים:videoMetadata
object (VideoFileMetadata
)
פלט בלבד. מטא-נתונים של סרטון.
ייצוג ב-JSON |
---|
{ "name": string, "displayName": string, "mimeType": string, "sizeBytes": string, "createTime": string, "updateTime": string, "expirationTime": string, "sha256Hash": string, "uri": string, "downloadUri": string, "state": enum ( |
VideoFileMetadata
מטא-נתונים של סרטון File
.
videoDuration
string (Duration
format)
משך הסרטון.
משך זמן בשניות עם עד תשע ספרות אחרי הנקודה העשרונית, שמסתיים ב-'s
'. דוגמה: "3.5s"
.
ייצוג ב-JSON |
---|
{ "videoDuration": string } |
מדינה
מצבים של מחזור החיים של קובץ.
טיפוסים בני מנייה (enum) | |
---|---|
STATE_UNSPECIFIED |
ערך ברירת המחדל. הערך הזה משמש אם לא מציינים את המצב. |
PROCESSING |
הקובץ נמצא בתהליך עיבוד ועדיין אי אפשר להשתמש בו להסקת מסקנות. |
ACTIVE |
הקובץ עובר עיבוד וזמין להסקת מסקנות. |
FAILED |
עיבוד הקובץ נכשל. |
מקור
טיפוסים בני מנייה (enum) | |
---|---|
SOURCE_UNSPECIFIED |
המאפיין הזה משמש אם לא צוין מקור. |
UPLOADED |
מציין שהקובץ הועלה על ידי המשתמש. |
GENERATED |
מציין שהקובץ נוצר על ידי Google. |
REGISTERED |
מציין שהקובץ רשום, כלומר קובץ Google Cloud Storage. |
סטטוס
הסוג Status
מגדיר מודל שגיאות לוגי שמתאים לסביבות תכנות שונות, כולל ממשקי API ל-REST ול-RPC. היא משמשת את gRPC. כל הודעת Status
מכילה שלושה חלקי נתונים: קוד שגיאה, הודעת שגיאה ופרטי שגיאה.
מידע נוסף על מודל השגיאות הזה ועל אופן השימוש בו זמין ב-API Design Guide.
code
integer
קוד הסטטוס, שצריך להיות ערך enum של google.rpc.Code
.
message
string
הודעת שגיאה שמוצגת למפתח, שצריכה להיות באנגלית. כל הודעת שגיאה שמוצגת למשתמש צריכה להיות מותאמת לשפה המקומית ולהישלח בשדה google.rpc.Status.details
, או להיות מותאמת לשפה המקומית על ידי הלקוח.
details[]
object
רשימה של הודעות שכוללות את פרטי השגיאה. יש קבוצה משותפת של סוגי הודעות לשימוש בממשקי API.
אובייקט שמכיל שדות מסוג שרירותי. שדה נוסף "@type"
מכיל URI שמזהה את הסוג. דוגמה: { "id": 1234, "@type": "types.example.com/standard/id" }
.
ייצוג ב-JSON |
---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |