בדף הזה מוסבר איך להעביר קוד שנועד ל-OpenAI SDK אל Google Gen AI SDK כדי להשתמש במודלים של Gemini ב-Vertex AI.
סקירה כללית על מיגרציה
במחברת הבאה מוצגת העברה מעשית מהספרייה openai לספרייה google-genai:
מיפוי של ממשקי API ותחביר
בטבלה הבאה מוצגת השוואה בין הרכיבים, השיטות והפרמטרים העיקריים של OpenAI SDK לבין Gen AI SDK.
| תכונה | OpenAI SDK (openai) |
Gen AI SDK (google-genai) |
|---|---|---|
| Client Initialization | client = OpenAI(api_key=...) |
client = genai.Client(vertexai=True, ...) |
| שיטת יצירה | client.chat.completions.create |
client.models.generate_content |
| שיטת סטרימינג | stream=True (פרמטר) |
client.models.generate_content_stream (אמצעי תשלום) |
| קלט של משתמשים | messages=[{"role": "user", "content": "..."}] |
contents="..." (str) או contents=[...] (list) |
| הוראות מערכת | messages=[{"role": "system", "content": "..."}] |
config=types.GenerateContentConfig(system_instruction=...) |
| Response Access | response.choices[0].message.content |
response.text |
| היסטוריית צ'אט | ניהול ידני של רשימות (messages.append) |
client.chats.create() (אובייקט עם שמירת מצב) |
| מספר הטוקנים המקסימלי | max_tokens |
max_output_tokens (בדומיין של config) |
| טמפרטורה | temperature |
temperature (בדומיין של config) |
| מצב JSON | response_format={"type": "json_object"} |
response_mime_type="application/json" (בדומיין של config) |
התקנה והגדרה
מסירים את ספריית OpenAI ומתקינים את Gen AI SDK.
pip install google-genai
2. אימות והפעלה
OpenAI משתמש במפתח API, אבל Vertex AI משתמש בפרטי כניסה של ניהול זהויות והרשאות גישה (IAM) (Application Default Credentials). צריך להגדיר באופן מפורש את מזהה הפרויקט והמיקום.
| OpenAI SDK | Google Gen AI SDK |
|---|---|
|
|
מגדירים את GOOGLE_GENAI_USE_VERTEXAI, GOOGLE_CLOUD_PROJECT וGOOGLE_CLOUD_LOCATION, כמו שמוצג:
export GOOGLE_GENAI_USE_VERTEXAI=true
export GOOGLE_CLOUD_PROJECT='your-project-id'
export GOOGLE_CLOUD_LOCATION='global'
אחרי ההגדרה, אפשר לאתחל את הלקוח בלי להעביר פרמטרים:
from google import genai
client = genai.Client()
דוגמאות לקוד
בדוגמאות הקוד הבאות אפשר לראות את ההבדלים בין OpenAI SDK לבין Google Gen AI SDK במשימות נפוצות.
יצירת טקסט בשיחה אחת
בדוגמאות הקוד הבאות אפשר לראות איך ליצור טקסט. שימו לב שב-Google Gen AI SDK, הוראות המערכת מטופלות כפרמטר הגדרה ולא כסוג הודעה ברשימת הקלט.
| OpenAI SDK | Google Gen AI SDK |
|---|---|
|
|
יצירת טקסט עם פרמטרים
בדוגמאות הקוד הבאות אפשר לראות את ההבדלים בהגדרת פרמטרים של הגדרות. ב-Google Gen AI SDK, פרמטרים כמו temperature, max_output_tokens (לשעבר max_tokens) ועיצוב JSON מקובצים באובייקט GenerateContentConfig.
| OpenAI SDK | Google Gen AI SDK |
|---|---|
|
|
צ'אט (שיחה עם זיכרון)
בדוגמאות הקוד הבאות אפשר לראות את ההבדלים בניהול היסטוריית הצ'אט. ערכת Google Gen AI SDK מפשטת את התהליך הזה באמצעות אובייקט chat עם שמירת מצב, בעוד שב-OpenAI צריך להוסיף הודעות לרשימה באופן ידני.
| OpenAI SDK | Google Gen AI SDK |
|---|---|
|
|
סטרימינג
בדוגמאות הקוד הבאות אפשר לראות את ההבדלים בתגובות של הסטרימינג. Google Gen AI SDK משתמש בשיטה ספציפית (generate_content_stream) במקום בדגל בוליאני.
| OpenAI SDK | Google Gen AI SDK |
|---|---|
|
|
המאמרים הבאים
- איך משתמשים בספריות של OpenAI עם Vertex AI
- דוגמאות קוד לתאימות ל-OpenAI
- מדריך למתחילים לשימוש ב-Google Gen AI SDK