Gemini 2.0 (ניסיוני)

Gemini 2.0 Flash זמין עכשיו כגרסת טרום-השקה ניסיונית דרך Gemini Developer API ו-Google AI Studio. המודל כולל תכונות חדשות ויכולות ליבה משופרות:

  • Multimodal Live API: ממשק ה-API החדש הזה עוזר לכם ליצור אפליקציות של סטרימינג של אודיו ותמונות בזמן אמת באמצעות שימוש בכלים.
  • מהירות וביצועים: ב-Gemini 2.0 זמן הקבלה של האסימון הראשון (TTFT) קצר משמעותית בהשוואה ל-1.5 Flash.
  • איכות: ביצועים טובים יותר ברוב מדדי הביצועים בהשוואה ל-Gemini 1.5 Pro.
  • שיפור יכולות הסוכן: ב-Gemini 2.0 יש שיפורים בהבנה של מידע ממקורות שונים, בתכנות, בביצוע הוראות מורכבות ובקריאה לפונקציות.
  • מודלים חדשים: ב-Gemini 2.0 יש יצירת תמונות מקוריות ויכולות של המרת טקסט לדיבור שניתן לשלוט בהן.

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

Google Gen AI SDK (ניסיוני)

ה-SDK החדש של Google Gen AI מספק ממשק מאוחד ל-Gemini 2.0 דרך Gemini Developer API וגם דרך Gemini API ב-Vertex AI. מלבד כמה יוצאים מן הכלל, קוד שפועל בפלטפורמה אחת יפעל בשתיהן. כלומר, תוכלו ליצור אב טיפוס של אפליקציה באמצעות Developer API ולאחר מכן להעביר את האפליקציה ל-Vertex AI בלי לכתוב מחדש את הקוד.

ערכת Gen AI SDK תומכת גם במודלים של Gemini 1.5.

ה-SDK החדש זמין ב-Python וב-Go, ובקרוב יהיה זמין גם ב-Java וב-JavaScript.

אפשר להתחיל להשתמש ב-SDK כפי שמתואר בהמשך.

  1. מתקינים את ערכת ה-SDK החדשה: pip install google-genai
  2. לאחר מכן מייבאים את הספרייה, מאתחלים לקוח ויוצרים תוכן:
from google import genai

client = genai.Client(
    api_key="YOUR_API_KEY"
)
response = client.models.generate_content(
    model='gemini-2.0-flash-exp', contents='How does AI work?'
)
print(response.text)

(אופציונלי) הגדרת משתני סביבה

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

# Replace `YOUR_API_KEY` with your API key.
export GOOGLE_API_KEY=YOUR_API_KEY

לאחר מכן אפשר לאתחל את הלקוח בלי ארגומנטים:

client = genai.Client()

מפתחי Python יכולים גם לנסות את המסמך בנושא תחילת העבודה בספר המתכונים.

Multimodal Live API

Multimodal Live API מאפשר אינטראקציות דו-כיווניות בווידאו ובקול עם זמן אחזור נמוך באמצעות Gemini. באמצעות Multimodal Live API, תוכלו לספק למשתמשי הקצה חוויה של שיחות קוליות טבעיות דמויות-אנושיות, וגם את היכולת להפריע לתשובות של המודל באמצעות פקודות קוליות. המודל יכול לעבד קלט של טקסט, אודיו ווידאו, ולספק פלט של טקסט ואודיו.

ה-Multimodal Live API זמין ב-Gemini API בתור השיטה BidiGenerateContent, והוא מבוסס על WebSockets.

from google import genai

client = genai.Client(http_options={'api_version': 'v1alpha'})
model_id = "gemini-2.0-flash-exp"
config = {"response_modalities": ["TEXT"]}

async with client.aio.live.connect(model=model_id, config=config) as session:
    message = "Hello? Gemini, are you there?"
    print("> ", message, "\n")
    await session.send(message, end_of_turn=True)

    async for response in session.receive():
        print(response.text)

יכולות מרכזיות:

  • מולטימודליות: המודל יכול לראות, לשמוע ולדבר.
  • אינטראקציה בזמן אמת עם זמן אחזור נמוך: תקבלו תשובות מהירות.
  • זיכרון סשן: המודל שומר את הזיכרון של כל האינטראקציות בסשן יחיד, ומזכיר מידע ששמעתם או ראיתם בעבר.
  • תמיכה בקריאה לפונקציות, בהרצת קוד וב'חיפוש בתור כלי': מאפשרת שילוב עם שירותים חיצוניים ומקורות נתונים.
  • זיהוי אוטומטי של פעילות קול (VAD): המודל יכול לזהות במדויק את הרגעים שבהם המשתמש מתחיל ומפסיק לדבר. כך אפשר ליצור אינטראקציות טבעיות ושיחות, ומשתמשים יכולים להפסיק את המודל בכל שלב.

שפה:

  • באנגלית בלבד

מגבלות:

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

למידע נוסף על היכולות והמגבלות של ה-API, עיינו במדריך העזרה של Multimodal Live API.

אתם יכולים לנסות את Multimodal Live API ב-Google AI Studio. כדי להתחיל לפתח, תוכלו לנסות את מסוף האינטרנט (שנכתב ב-React). למפתחי Python, כדאי לנסות את קוד ההתחלה (notebook וקובץ py). יכול להיות שיהיה קל יותר להתחיל לעבוד עם המחברות, אבל ה-API הפעיל עובד בצורה הטובה ביותר כשמריצים אותו מהמסוף.

חיפוש ככלי

בעזרת התכונה 'הקשר' בחיפוש Google, תוכלו לשפר את הדיוק ואת העדכניות של התשובות מהמודל. החל מגרסה 2.0 של Gemini, חיפוש Google זמין ככלי. כלומר, המודל יכול להחליט מתי להשתמש בחיפוש Google. בדוגמה הבאה מוסבר איך להגדיר את החיפוש ככלי.

from google import genai
from google.genai.types import Tool, GenerateContentConfig, GoogleSearch

client = genai.Client()
model_id = "gemini-2.0-flash-exp"

google_search_tool = Tool(
    google_search = GoogleSearch()
)

response = client.models.generate_content(
    model=model_id,
    contents="When is the next total solar eclipse in the United States?",
    config=GenerateContentConfig(
        tools=[google_search_tool],
        response_modalities=["TEXT"],
    )
)

for each in response.candidates[0].content.parts:
    print(each.text)
# Example response:
# The next total solar eclipse visible in the contiguous United States will be on ...

# To get grounding metadata as web content.
print(response.candidates[0].grounding_metadata.search_entry_point.rendered_content)

הפונקציה 'חיפוש ככלי' מאפשרת גם לבצע חיפושים בכמה שלבים ושאילתות בכמה כלים (לדוגמה, שילוב של 'הכנה' עם חיפוש Google והרצת קוד).

חיפוש ככלי מאפשר להשתמש בהנחיות ובתהליכי עבודה מורכבים שדורשים תכנון, הגיון וחשיבה:

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

כדי להתחיל, תוכלו לנסות את המחברות של הכלי לחיפוש.

כלים משופרים

ב-Gemini 2.0 יש שיפורים בקריאה לפונקציות וכלים שמספקים תמיכה טובה יותר לחוויית השימוש של הנציגים.

קריאה לפונקציות מורכבות

Gemini 2.0 תומך ביכולת חדשה של קריאת פונקציות: קריאת פונקציות מורכבות. קריאה לפונקציות מורכבות מאפשרת ל-Gemini API להפעיל אוטומטית כמה פונקציות מוגדרות-משתמש בתהליך יצירת התגובה. לדוגמה, כדי להגיב להנחיה "Get the temperature in my current location", יכול להיות ש-Gemini API יפעיל גם פונקציית get_current_location() וגם פונקציית get_weather() שמקבלת את המיקום כפרמטר.

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

turn_on_the_lights_schema = {'name': 'turn_on_the_lights'}
turn_off_the_lights_schema = {'name': 'turn_off_the_lights'}

prompt = """
  Hey, can you write run some python code to turn on the lights, wait 10s and then turn off the lights?
  """

tools = [
    {'code_execution': {}},
    {'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]

await run(prompt, tools=tools, modality="AUDIO")

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

שימוש בכלי רב-תכליתי

ב-Gemini 2.0 אפשר להפעיל כמה כלים בו-זמנית, והמודל יחליט מתי להפעיל אותם. בדוגמה הבאה מופיעים שני כלים, 'התאמה לאינטראקציה' עם חיפוש Google והרצת קוד, בבקשה באמצעות Multimodal Live API.

prompt = """
  Hey, I need you to do three things for me.

  1. Turn on the lights.
  2. Then compute the largest prime palindrome under 100000.
  3. Then use Google Search to look up information about the largest earthquake in California the week of Dec 5 2024.

  Thanks!
  """

tools = [
    {'google_search': {}},
    {'code_execution': {}},
    {'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]

await run(prompt, tools=tools, modality="AUDIO")

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

זיהוי של תיבה תוחמת (bounding box)

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

יתרונות עיקריים:

  • פשוט: אפשר לשלב בקלות יכולות של זיהוי אובייקטים באפליקציות, ללא קשר לרמת המומחיות שלכם בתחום הראייה הממוחשבת.
  • ניתן להתאמה אישית: אפשר ליצור תיבות מלבניות לפי הוראות בהתאמה אישית (למשל "אני רוצה לראות תיבות מלבניות של כל העצמים הירוקים בתמונה הזו"), בלי לאמן מודל בהתאמה אישית.

פרטים טכניים:

  • קלט: ההנחיה והתמונות או הפריימים של הסרטון המשויכים.
  • פלט: תיבות מלבניות בפורמט [y_min, x_min, y_max, x_max]. הפינה השמאלית העליונה היא המקור. הצירים x ו-y נמצאים בכיוון אופקי ואנכי, בהתאמה. ערכי הקואורדינטות מנורמלים ל-0 עד 1,000 לכל תמונה.
  • ויזואליזציה: משתמשי AI Studio יראו תיבות גבול שמתוארות בממשק המשתמש. משתמשי Vertex AI צריכים להציג את תיבות הסימון שלהם באמצעות קוד חזותי בהתאמה אישית.

למפתחי Python, כדאי לנסות את ה-notebook של ההבנה המרחבית 2D או את ה-notebook הניסיוני של הצבעה בתלת-ממד.

יצירת דיבור (גישה מוקדמת/רשימת ההיתרים)

ב-Gemini 2.0 יש תמיכה ביכולת חדשה ליצירה של מודעות במגוון מודלים: טקסט לדיבור. באמצעות יכולת המרת הטקסט לדיבור, אפשר להורות למודל ליצור פלט אודיו באיכות גבוהה שנשמע כמו קול אנושי (say "hi everyone"), ואפשר לשפר את הפלט עוד יותר על ידי שינוי הקול.

יצירת תמונות (גישה מוקדמת/רשימת ההיתרים)

ב-Gemini 2.0 יש תמיכה בפלט של טקסט עם תמונות בתוך הטקסט. כך תוכלו להשתמש ב-Gemini כדי לערוך תמונות בצורה שיחה או ליצור פלטים מסוגים שונים (לדוגמה, פוסט בבלוג עם טקסט ותמונות בפנייה אחת). בעבר היה צריך לקשר כמה מודלים כדי לעשות זאת.

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

  • יצירת תמונות לפי טקסט
    • הנחיה לדוגמה: "יצירת תמונה של מגדל אייפל עם זיקוקים ברקע".
  • טקסט לתמונות וטקסט (מקובץ)
    • הנחיה לדוגמה: "יצירת מתכון מאויר לפאייה".
  • תמונות וטקסט לתמונות וטקסט (מקובצים)
    • הנחיה לדוגמה: (עם תמונה של חדר מעוצב) "איזה ספות בצבעים אחרים יתאימו למרחב שלי? יש לך אפשרות לעדכן את התמונה?"
  • עריכת תמונות (טקסט ותמונה לתמונה)
    • הנחיה לדוגמה: "עריכת התמונה הזו כך שתראה כמו קריקטורה"
    • דוגמה להנחיה: [image of a cat] + [image of a pillow] + "Create a cross stitch of my cat on this pillow".
  • עריכת תמונות במספר שלבים (צ'אט)
    • הנחיות לדוגמה: [upload an image of a blue car.] "Turn this car into a convertible" "עכשיו משנים את הצבע לצהוב".
  • הוספת סימן מים (SynthID)

מגבלות:

  • אסור ליצור אנשים ולערוך תמונות של אנשים שהועלו.
  • כדי להשיג את הביצועים הטובים ביותר, מומלץ להשתמש בשפות הבאות: EN, ‏ es-MX, ‏ ja-JP, ‏ zh-CN,‏ hi-IN.
  • יצירת תמונות לא תומכת בקלט של אודיו או וידאו.
  • יכול להיות שיצירת התמונה לא תמיד תגרום לפעולות הבאות:
    • המודל יכול להפיק פלט של טקסט בלבד. כדאי לבקש פלט תמונות באופן מפורש (למשל, 'יצירת תמונה', 'הוספת תמונות תוך כדי עבודה', 'עדכון התמונה').
    • יכול להיות שהמודל יפסיק ליצור תמונות באמצע התהליך. אפשר לנסות שוב או לנסות הנחיה אחרת.