OpenAI compatibility

אפשר לגשת למודלים של Gemini באמצעות ספריות OpenAI ‏ (Python ו-TypeScript‏ / Javascript) יחד עם ה-API ל-REST, על ידי עדכון שלוש שורות קוד ושימוש במפתח ה-API של Gemini. מידע נוסף על התכונה הזו זמין במדריך התאימות.

שיטה: chatCompletions

יצירת קבוצה של תשובות מהמודל על סמך קלט של היסטוריית צ'אט.

נקודת קצה

פוסט https://generativelanguage.googleapis.com/v1beta:chatCompletions

כתובת ה-URL משתמשת בתחביר של Transcoding של gRPC.

גוף הבקשה

גוף הבקשה מכיל נתונים במבנה הבא:

שדות
model string

חובה. השם של Model שמשמש ליצירת ההשלמה. אם לא מופיע קו נטוי בשם המודל, התחילית שלו תהיה 'models/‎'.

messages[] object (Struct format)

חובה. היסטוריית הצ'אט שתשמש ליצירת ההשלמה. תמיכה בשאילתות חד-פעמיות ובשאילתות עם שרשור. הערה: זהו שדה פולימורפיים, והוא עובר דה-סריאליזציה ל-InternalChatMessage.

stream boolean

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

אם הערך הוא true, השדה 'object' בתגובה יהיה 'chat.completion.chunk'. אחרת, הוא יהיה 'chat.completion'.

streamOptions object (StreamOptions)

זה שינוי אופציונלי. אפשרויות לבקשות סטרימינג.

tools[] object (ChatTool)

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

toolChoice value (Value format)

זה שינוי אופציונלי. קובעת אם המודל ישתמש בכלי או לא, ובאיזה כלי. יכול להיות: - המחרוזת 'none', כדי להשבית את הכלים. - המחרוזת 'auto', כדי לאפשר למודל להחליט. - המחרוזת 'required', כדי לאלץ את המודל להשתמש בכלי. - אובייקט של מתאר שם פונקציה, שמציין את הכלי שבו צריך להשתמש. האפשרות האחרונה תואמת להסכימה הבאה: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

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

stop value (Value format)

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

maxCompletionTokens integer

זה שינוי אופציונלי. המספר המקסימלי של אסימונים שאפשר לכלול באפשרות לתשובה. חייב להיות מספר שלם חיובי.

maxTokens integer

זה שינוי אופציונלי. המספר המקסימלי של אסימונים שאפשר לכלול באפשרות לתשובה. חייב להיות מספר שלם חיובי. השדה הזה הוצא משימוש על ידי ה-SDK.

temperature number

זה שינוי אופציונלי. קובעת את מידת הרנדומיזציה של הפלט.

topP number

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

responseFormat object (ResponseFormat)

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

גוף התשובה

אם הפעולה בוצעה ללא שגיאות, התשובה היא תגובה גנרית של HTTP שהפורמט שלה מוגדר על ידי השיטה.

שיטה: הטמעות (embeddings)

יצירת הטמעות (embeddings) מהמודל על סמך קלט.

נקודת קצה

פוסט https://generativelanguage.googleapis.com/v1beta/embeddings

כתובת ה-URL משתמשת בתחביר של Transcoding של gRPC.

גוף הבקשה

גוף הבקשה מכיל נתונים במבנה הבא:

שדות
input value (Value format)

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

model string

חובה. המודל שעבורו רוצים ליצור את הטמעות הנתונים.

encodingFormat string

זה שינוי אופציונלי. הפורמט של הקידוד. הערך חייב להיות 'float' או 'base64'.

dimensions integer

זה שינוי אופציונלי. גודל המאפיינים של מאפייני ההטמעה שנוצרו.

גוף התשובה

אם הפעולה מצליחה, גוף התגובה מכיל מופע של GenerateEmbeddingsResponse.

שיטה: listModels

רשימה של הדגמים הזמינים כרגע.

נקודת קצה

get https://generativelanguage.googleapis.com/v1beta/listModels

כתובת ה-URL משתמשת בתחביר של Transcoding של gRPC.

גוף הבקשה

גוף הבקשה חייב להיות ריק.

גוף התשובה

אם הפעולה מצליחה, גוף התגובה מכיל מופע של SdkListModelsResponse.

שיטה: chat.completions

יצירת קבוצה של תשובות מהמודל על סמך קלט של היסטוריית צ'אט.

נקודת קצה

פוסט https://generativelanguage.googleapis.com/v1beta/chat/completions

כתובת ה-URL משתמשת בתחביר של Transcoding של gRPC.

גוף הבקשה

גוף הבקשה מכיל נתונים במבנה הבא:

שדות
model string

חובה. השם של Model שמשמש ליצירת ההשלמה. אם לא מופיע קו נטוי בשם המודל, התחילית שלו תהיה 'models/‎'.

messages[] object (Struct format)

חובה. היסטוריית הצ'אט שתשמש ליצירת ההשלמה. תמיכה בשאילתות חד-פעמיות ובשאילתות עם שרשור. הערה: זהו שדה פולימורפיים, והוא עובר דה-סריאליזציה ל-InternalChatMessage.

stream boolean

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

אם הערך הוא true, השדה 'object' בתגובה יהיה 'chat.completion.chunk'. אחרת, הוא יהיה 'chat.completion'.

streamOptions object (StreamOptions)

זה שינוי אופציונלי. אפשרויות לבקשות סטרימינג.

tools[] object (ChatTool)

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

toolChoice value (Value format)

זה שינוי אופציונלי. קובעת אם המודל ישתמש בכלי או לא, ובאיזה כלי. יכול להיות: - המחרוזת 'none', כדי להשבית את הכלים. - המחרוזת 'auto', כדי לאפשר למודל להחליט. - המחרוזת 'required', כדי לאלץ את המודל להשתמש בכלי. - אובייקט של מתאר שם פונקציה, שמציין את הכלי שבו צריך להשתמש. האפשרות האחרונה תואמת להסכימה הבאה: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

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

stop value (Value format)

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

maxCompletionTokens integer

זה שינוי אופציונלי. המספר המקסימלי של אסימונים שאפשר לכלול באפשרות לתשובה. חייב להיות מספר שלם חיובי.

maxTokens integer

זה שינוי אופציונלי. המספר המקסימלי של אסימונים שאפשר לכלול באפשרות לתשובה. חייב להיות מספר שלם חיובי. השדה הזה הוצא משימוש על ידי ה-SDK.

temperature number

זה שינוי אופציונלי. קובעת את מידת הרנדומיזציה של הפלט.

topP number

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

responseFormat object (ResponseFormat)

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

גוף התשובה

אם הפעולה בוצעה ללא שגיאות, התשובה היא תגובה גנרית של HTTP שהפורמט שלה מוגדר על ידי השיטה.

שיטה: embeddings.generate

יצירת הטמעות (embeddings) מהמודל על סמך קלט.

נקודת קצה

פוסט https://generativelanguage.googleapis.com/v1beta/embeddings:generate

כתובת ה-URL משתמשת בתחביר של Transcoding של gRPC.

גוף הבקשה

גוף הבקשה מכיל נתונים במבנה הבא:

שדות
input value (Value format)

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

model string

חובה. המודל שעבורו רוצים ליצור את הטמעות הנתונים.

encodingFormat string

זה שינוי אופציונלי. הפורמט של הקידוד. הערך חייב להיות 'float' או 'base64'.

dimensions integer

זה שינוי אופציונלי. גודל המאפיינים של מאפייני ההטמעה שנוצרו.

גוף התשובה

אם הפעולה מצליחה, גוף התגובה מכיל מופע של GenerateEmbeddingsResponse.

שיטה: openai.chat.completions

יצירת קבוצה של תשובות מהמודל על סמך קלט של היסטוריית צ'אט.

נקודת קצה

פוסט https://generativelanguage.googleapis.com/v1beta/openai/chat/completions

כתובת ה-URL משתמשת בתחביר של Transcoding של gRPC.

גוף הבקשה

גוף הבקשה מכיל נתונים במבנה הבא:

שדות
model string

חובה. השם של Model שמשמש ליצירת ההשלמה. אם לא מופיע קו נטוי בשם המודל, התחילית שלו תהיה 'models/‎'.

messages[] object (Struct format)

חובה. היסטוריית הצ'אט שתשמש ליצירת ההשלמה. תמיכה בשאילתות חד-פעמיות ובשאילתות עם שרשור. הערה: זהו שדה פולימורפיים, והוא עובר דה-סריאליזציה ל-InternalChatMessage.

stream boolean

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

אם הערך הוא true, השדה 'object' בתגובה יהיה 'chat.completion.chunk'. אחרת, הוא יהיה 'chat.completion'.

streamOptions object (StreamOptions)

זה שינוי אופציונלי. אפשרויות לבקשות סטרימינג.

tools[] object (ChatTool)

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

toolChoice value (Value format)

זה שינוי אופציונלי. קובעת אם המודל ישתמש בכלי או לא, ובאיזה כלי. יכול להיות: - המחרוזת 'none', כדי להשבית את הכלים. - המחרוזת 'auto', כדי לאפשר למודל להחליט. - המחרוזת 'required', כדי לאלץ את המודל להשתמש בכלי. - אובייקט של מתאר שם פונקציה, שמציין את הכלי שבו צריך להשתמש. האפשרות האחרונה תואמת להסכימה הבאה: { "type": "function", "function": {"name" : "the_function_name"} }

n integer

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

stop value (Value format)

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

maxCompletionTokens integer

זה שינוי אופציונלי. המספר המקסימלי של אסימונים שאפשר לכלול באפשרות לתשובה. חייב להיות מספר שלם חיובי.

maxTokens integer

זה שינוי אופציונלי. המספר המקסימלי של אסימונים שאפשר לכלול באפשרות לתשובה. חייב להיות מספר שלם חיובי. השדה הזה הוצא משימוש על ידי ה-SDK.

temperature number

זה שינוי אופציונלי. קובעת את מידת הרנדומיזציה של הפלט.

topP number

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

responseFormat object (ResponseFormat)

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

גוף התשובה

אם הפעולה בוצעה ללא שגיאות, התשובה היא תגובה גנרית של HTTP שהפורמט שלה מוגדר על ידי השיטה.

שיטה: openai.embeddings

יצירת הטמעות (embeddings) מהמודל על סמך קלט.

נקודת קצה

פוסט https://generativelanguage.googleapis.com/v1beta/openai/embeddings

כתובת ה-URL משתמשת בתחביר של Transcoding של gRPC.

גוף הבקשה

גוף הבקשה מכיל נתונים במבנה הבא:

שדות
input value (Value format)

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

model string

חובה. המודל שעבורו רוצים ליצור את הטמעות הנתונים.

encodingFormat string

זה שינוי אופציונלי. הפורמט של הקידוד. הערך חייב להיות 'float' או 'base64'.

dimensions integer

זה שינוי אופציונלי. גודל המאפיינים של מאפייני ההטמעה שנוצרו.

גוף התשובה

אם הפעולה מצליחה, גוף התגובה מכיל מופע של GenerateEmbeddingsResponse.

שיטה: openai.models

רשימה של הדגמים הזמינים כרגע.

נקודת קצה

get https://generativelanguage.googleapis.com/v1beta/openai/models

כתובת ה-URL משתמשת בתחביר של Transcoding של gRPC.

גוף הבקשה

גוף הבקשה חייב להיות ריק.

גוף התשובה

אם הפעולה מצליחה, גוף התגובה מכיל מופע של SdkListModelsResponse.

ChatTool

כלי למודל שיכול ליצור קריאות אליו.

שדות
function object (ChatFunction)

חובה. שם הכלי.

type string

חובה. חובה, חייב להיות 'function'.

ייצוג ב-JSON
{
  "function": {
    object (ChatFunction)
  },
  "type": string
}

ChatFunction

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

שדות
name string

חובה. שם הפונקציה.

description string

זה שינוי אופציונלי. תיאור הפונקציה.

parameters object (Struct format)

זה שינוי אופציונלי. הפרמטרים של הפונקציה.

strict boolean

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

ייצוג ב-JSON
{
  "name": string,
  "description": string,
  "parameters": {
    object
  },
  "strict": boolean
}

GenerateEmbeddingsResponse

תשובה ליצירת הטמעה.

שדות
object string

פלט בלבד. תמיד 'הטמעה', כפי שנדרש על ידי ה-SDK.

data[] object (GenerateEmbeddingsEmbedding)

פלט בלבד. רשימה של הטמעות הנתונים המבוקשות.

model string

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

ייצוג ב-JSON
{
  "object": string,
  "data": [
    {
      object (GenerateEmbeddingsEmbedding)
    }
  ],
  "model": string
}

GenerateEmbeddingsEmbedding

וקטור הטמעה שנוצר על ידי המודל.

שדות
object string

פלט בלבד. תמיד 'הטמעה', כפי שנדרש על ידי ה-SDK.

index integer

פלט בלבד. האינדקס של ההטמעה ברשימת ההטמעות.

embedding value (Value format)

פלט בלבד. וקטור ההטמעה שנוצר עבור הקלט. יכול להיות רשימה של מספרים שלמים או מחרוזת base64 שמקודדת רשימה של מספרים שלמים בפריסה בסגנון C (תואם ל-Numpy).

ייצוג ב-JSON
{
  "object": string,
  "index": integer,
  "embedding": value
}

HttpBody

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

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

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

דוגמה:

message GetResourceRequest {
  // A unique request id.
  string requestId = 1;

  // The raw HTTP body is bound to this field.
  google.api.HttpBody http_body = 2;

}

service ResourceService {
  rpc GetResource(GetResourceRequest)
    returns (google.api.HttpBody);
  rpc UpdateResource(google.api.HttpBody)
    returns (google.protobuf.Empty);

}

דוגמה עם שיטות סטרימינג:

service CaldavService {
  rpc GetCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);
  rpc UpdateCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);

}

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

שדות
contentType string

הערך של כותרת ה-HTTP Content-Type שמציין את סוג התוכן של הגוף.

data string (bytes format)

גוף הבקשה/התשובה של ה-HTTP כקובץ בינארי גולמי.

מחרוזת בקידוד Base64.

extensions[] object

מטא-נתונים של תגובה ספציפיים לאפליקציה. צריך להגדיר אותו בתגובה הראשונה לממשקי API של סטרימינג.

אובייקט שמכיל שדות מסוג שרירותי. שדה נוסף "@type" מכיל URI שמזהה את הסוג. דוגמה: { "id": 1234, "@type": "types.example.com/standard/id" }.

ייצוג ב-JSON
{
  "contentType": string,
  "data": string,
  "extensions": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}

ResponseFormat

הגדרת הפורמט של התגובה.

שדות
type string

חובה. סוג התגובה. יכול להיות אחד מהערכים הבאים: - 'text': הפורמט של התשובה יהיה טקסט. - "json_object": הפורמט של התגובה הוא אובייקט JSON. - 'jsonSchema': הפורמט של התגובה הוא אובייקט JSON בהתאם להסכימה שצוינה.

jsonSchema object (ResponseFormatSchema)

זה שינוי אופציונלי. הסכימה של קובץ ה-JSON. המערכת משתמשת בערך הזה רק אם הסוג הוא 'jsonSchema'.

ייצוג ב-JSON
{
  "type": string,
  "jsonSchema": {
    object (ResponseFormatSchema)
  }
}

ResponseFormatSchema

הסכימה של התגובה.

שדות
description string

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

name string

חובה. השם של סוג האובייקט שמיוצג על ידי הסכימה.

strict boolean

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

schema object (Struct format)

זה שינוי אופציונלי. הסכימה של ה-JSON שצריך לפעול לפיה.

ייצוג ב-JSON
{
  "description": string,
  "name": string,
  "strict": boolean,
  "schema": {
    object
  }
}

SdkListModelsResponse

תגובה למודלים של רשימות.

שדות
object string

פלט בלבד. תמיד 'list', כפי שנדרש על ידי ה-SDK.

data[] object (SdkModel)

פלט בלבד. רשימה של הטמעות הנתונים המבוקשות.

ייצוג ב-JSON
{
  "object": string,
  "data": [
    {
      object (SdkModel)
    }
  ]
}

SdkModel

אובייקט המודל.

שדות
id string

פלט בלבד. המזהה של המודל.

object string

פלט בלבד. תמיד 'model', כנדרש על ידי ה-SDK.

created string (int64 format)

פלט בלבד. חותמת הזמן של מערכת Unix (בשניות) שבה נוצר המודל.

owned_by string

פלט בלבד. הארגון שבבעלותו המודל.

ייצוג ב-JSON
{
  "id": string,
  "object": string,
  "created": string,
  "owned_by": string
}

StreamOptions

אפשרויות לבקשות סטרימינג.

שדות
includeUsage boolean

זה שינוי אופציונלי. אם ההגדרה מוגדרת, נתוני השימוש ייכללו בתגובה.

ייצוג ב-JSON
{
  "includeUsage": boolean
}