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

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

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

‫Chat Completions 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. לתיאור של כל פרמטר, קראו את המאמר Creating chat completions במסמכי התיעוד של 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. זה שונה מהשדה parameters של OpenAI, שמתואר כאובייקט של סכימת JSON. במדריך של OpenAPI מוסבר על ההבדלים במילות המפתח בין OpenAPI לבין סכימת JSON.
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 (audio/wav) וגם ב-mp3 (audio/mp3). ב-Gemini יש תמיכה בכל סוגי ה-MIME התקינים.
image_url
  • ‫data: כמו input_audio, יש תמיכה בכל URI או פורמט blob תקין.
    שימו לב: image_url ככתובת URL, ברירת המחדל תהיה סוג ה-MIME של image/* ‎ וimage_url כנתוני blob, אפשר להשתמש בכתובת ה-URL כקלט מולטי-מודאלי מכל סוג.
  • ‫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 שיכיל את כל התכונות של extra_body שספציפיות ל-Gemini.

{
  ...,
  "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 ותגובה לפונקציה מולטימוֹדלית.

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