שימוש בספריות OpenAI עם Gemini Enterprise Agent Platform

ממשק ה-API של Chat Completions פועל כנקודת קצה שתואמת ל-OpenAI, והוא נועד להקל על האינטראקציה עם Gemini ב-Gemini Enterprise Agent Platform באמצעות ספריות OpenAI ל-Python ול-REST. אם אתם כבר משתמשים בספריות של OpenAI, אתם יכולים להשתמש ב-API הזה כדרך זולה לעבור בין קריאה למודלים של OpenAI לבין קריאה למודלים שמארחים ב-Agent Platform, כדי להשוות בין הפלט, העלות והמדרגיות, בלי לשנות את הקוד הקיים. אם אתם לא משתמשים כבר בספריות של OpenAI, מומלץ להשתמש ב-SDK של Google Gen AI. כדי להעביר את קוד OpenAI SDK הקיים לשימוש ב-Google Gen AI SDK, אפשר לעיין במאמר מעבר מ-OpenAI SDK ל-Google Gen AI SDK.

מודלים נתמכים

ממשק ה-API של השלמות הצ'אט תומך במודלים של Gemini ובמודלים נבחרים שניתנים לפריסה עצמית מ-Model Garden.

המודלים של Gemini

המודלים הבאים תומכים ב-Chat Completions API:

לחצו כדי להרחיב את רשימת המודלים הנתמכים

מודלים שפרסתם בעצמכם מ-Model Garden

Hugging Face Text Generation Interface (HF TGI) ומאגרי vLLM מוכנים מראש של Agent Platform Model Garden תומכים ב-Chat Completions API. עם זאת, לא כל מודל שמוטמע במאגרי הנתונים האלה תומך ב-Chat Completions API. בטבלה הבאה מפורטים הדגמים הנתמכים הפופולריים ביותר לפי מאגר:

HF TGI

vLLM

פרמטרים נתמכים

במודלים של Google, ‏ Chat Completions API תומך בפרמטרים הבאים של OpenAI. תיאור של כל פרמטר מופיע במסמכי התיעוד של OpenAI בנושא יצירת השלמות של צ'אטים. התמיכה בפרמטרים במודלים של צד שלישי משתנה בהתאם למודל. כדי לראות אילו פרמטרים נתמכים, אפשר לעיין במסמכי התיעוד של המודל.

messages
  • System message
  • User message: נתמכים הסוגים text ו-image_url. הסוג image_url תומך בתמונות שמאוחסנות ב-URI של Cloud Storage או בקידוד base64 בצורה "data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>". מידע על יצירת קטגוריה של Cloud Storage והעלאת קובץ אליה מופיע במאמר גילוי אחסון אובייקטים.
  • Assistant message
  • Tool message
  • Function message: השדה הזה הוצא משימוש, אבל הוא נתמך לצורך תאימות לדורות קודמים.
model
detail במודלים ישנים יותר מ-Gemini 3, השדה detail חייב להיות עקבי בכל ההודעות והתכנים (הוא ברמת הבקשה). ב-Gemini 3 ואילך, הערך הזה תואם ל-`media_resolution` ברמת החלק. מידע נוסף זמין במאמר בנושא רזולוציית מדיה.
max_completion_tokens כינוי של max_tokens.
modalities תמיכה בערכים audio, image ו-text.
max_tokens
n
frequency_penalty
presence_penalty
reasoning_effort המדיניות קובעת כמה זמן וכמה טוקנים ישמשו ליצירת תשובה.
  • low: 1024
  • medium: 8192
  • high: 24576
מכיוון שהתשובה לא כוללת מחשבות, אפשר לציין רק אחת מהאפשרויות reasoning_effort או extra_body.google.thinking_config.
response_format
  • json_object: המערכת מפרשת את זה כהעברה של 'application/json' אל Gemini API.
  • json_schema. סכימות רקורסיביות מלאות אינן נתמכות. additional_properties יש תמיכה.
  • text: המערכת מפרשת את זה כהעברה של text/plain אל Gemini API.
  • כל סוג MIME אחר מועבר למודל כמו שהוא, למשל העברה ישירה של application/json.
seed תואם לGenerationConfig.seed.
stop
stream
temperature
top_p
tools
  • type
  • function
    • name
    • description
    • parameters: מציינים פרמטרים באמצעות מפרט OpenAPI. השדה הזה שונה משדה הפרמטרים של OpenAI, שמתואר כאובייקט JSON Schema. במדריך OpenAPI יש מידע על ההבדלים במילות המפתח בין OpenAPI לבין JSON Schema.
tool_choice
  • none
  • auto
  • required: מתאים למצב ANY ב-FunctionCallingConfig.
  • validated: מתאים למצב VALIDATED ב-FunctionCallingConfig. ההגדרה הזו ספציפית ל-Google.
web_search_options תואם לכלי GoogleSearch. אין תמיכה באפשרויות משנה.
function_call השדה הזה הוצא משימוש, אבל הוא נתמך לצורך תאימות לדורות קודמים.
functions השדה הזה הוצא משימוש, אבל הוא נתמך לצורך תאימות לדורות קודמים.

אם מעבירים פרמטר לא נתמך, המערכת מתעלמת ממנו.

פרמטרים של קלט מרובה מצבים

ממשק Chat Completions API תומך בקלט מולטימודאלי נבחר.

input_audio
  • data: כל מזהה URI או פורמט blob תקין. אנחנו תומכים בכל סוגי ה-blob, כולל תמונות, אודיו ווידאו. כל מה שנתמך על ידי GenerateContent נתמך (HTTP,‏ Cloud Storage וכו').
  • format: OpenAI תומך ב-wav (אודיו/wav) וב-mp3 (אודיו/mp3). כל סוגי ה-MIME התקינים נתמכים ב-Gemini.
image_url
  • data: כמו input_audio, כל URI או פורמט blob תקין נתמכים.
    שימו לב: image_url ככתובת URL, ברירת המחדל תהיה image/* MIME-type וimage_url כנתוני blob אפשר להשתמש בכל קלט רב-אופני.
  • detail: בדומה לרזולוציית המדיה, הפרמטר הזה קובע את מספר האסימונים המקסימלי לכל תמונה בבקשה. שימו לב: השדה של OpenAI הוא לכל תמונה, אבל Gemini אוכף את אותה רמת פירוט בכל הבקשה, ואם מעבירים כמה סוגים של רמת פירוט בבקשה אחת, תופיע שגיאה.

באופן כללי, הפרמטר data יכול להיות URI או שילוב של סוג MIME ובייטים מקודדים ב-Base64 בפורמט "data:<MIME-TYPE>;base64,<BASE64-ENCODED-BYTES>". רשימה מלאה של סוגי MIME זמינה בכתובת GenerateContent. מידע נוסף על קידוד base64 של OpenAI זמין במסמכי התיעוד שלהם.

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

פרמטרים ספציפיים ל-Gemini

יש כמה תכונות שנתמכות על ידי Gemini אבל לא זמינות במודלים של OpenAI. אפשר עדיין להעביר את התכונות האלה כפרמטרים, אבל הן צריכות להיות בתוך התגים extra_content או extra_body, אחרת המערכת תתעלם מהן.

תכונות של extra_body

כוללים שדה google שיכיל תכונות ספציפיות ל-Gemini extra_body.

{
  ...,
  "extra_body": {
     "google": {
       ...,
       // Add extra_body features here.
     }
   }
}
safety_settings ההגדרה הזו תואמת ל-Gemini SafetySetting.
cached_content ההגדרה הזו תואמת לשדה Gemini generateContent.cached_content.
thinking_config ההגדרה הזו תואמת ל-Gemini GenerationConfig.ThinkingConfig.
thought_tag_marker הפרדה בין המחשבות של המודל לבין התשובות שלו במודלים שכוללים את התכונה 'חשיבה'.
אם לא מציינים תגים, לא יוחזרו תגים סביב המחשבות של המודל. אם יש תגי מחשבות, השאילתות הבאות יסירו אותם ויסמנו את המחשבות בהתאם להקשר. כך נשמר ההקשר המתאים לשאילתות הבאות.
stream_function_call_arguments הפונקציה מעבירה בחזרה את הארגומנטים של הקריאה לפונקציה כקטעים של JSON. מידע נוסף זמין במאמר בנושא העברת ארגומנטים של קריאות לפונקציות בסטרימינג.
tools מציינים כלים דומים ל-`GenerateContent`. מידע נוסף זמין במאמר בנושא Tool.
media_resolution מציינים רזולוציית מדיה ברמת הבקשה, בדומה ל-`GenerateContent`. מידע נוסף זמין במאמר בנושא MediaResolution.

תכונות של extra_content

extra_content מאפשרת לכם לציין תוכן ספציפי ל-Gemini שאסור להתעלם ממנו.

כוללים שדה google שיכיל תכונות ספציפיות ל-Gemini extra_content.

{
  ...,
  "extra_content": {
     "google": {
       ...,
       // Add extra_content features here.
     }
   }
}
thought השדה הזה מציין באופן מפורש אם שדה הוא מחשבה, והוא מקבל עדיפות על פני thought_tag_marker. ההפרדה הזו עוזרת להבחין בין שלבים שונים בתהליך חשיבה, במיוחד בתרחישי שימוש בכלי שבהם שלבי ביניים עלולים להיחשב כתשובות סופיות. אם מתייגים חלקים ספציפיים בקלט כ'מחשבות', אפשר להנחות את המודל להתייחס אליהם כאל חשיבה רציונלית פנימית ולא כאל תשובות שמוצגות למשתמשים.
thought_signature שדה של בייטים שמספק חתימה של מחשבה לצורך אימות מול מחשבות שהוחזרו על ידי המודל. השדה הזה שונה מהשדה thought, שהוא שדה בוליאני. מידע נוסף זמין במאמר בנושא חתימות מחשבה.
parts הפרמטר הזה ספציפי להודעות של כלי, ומאפשר להעביר חזרה למודל חלקים של תשובות לפונקציות מרובות-אופנים. מידע נוסף זמין במאמרים FunctionResponsePart ותגובה פונקציונלית מרובת-אופנים.

המאמרים הבאים