Gemini 2.0 (deneysel)

Gemini 2.0 Flash, Gemini Developer API ve Google AI Studio üzerinden deneysel önizleme sürümü olarak kullanıma sunuldu. Model, yeni özellikler ve gelişmiş temel özellikler sunar:

  • Multimodal Live API: Bu yeni API, araç kullanarak gerçek zamanlı görüntü ve ses yayını uygulamaları oluşturmanıza yardımcı olur.
  • Hız ve performans: Gemini 2.0, 1.5 Flash'a kıyasla ilk jetona ulaşma süresini (TTFT) önemli ölçüde iyileştirdi.
  • Kalite: Model, Gemini 1.5 Pro gibi daha büyük modellerle karşılaştırılabilir kaliteyi korur.
  • Daha iyi temsilci özellikleri: Gemini 2.0; çoklu modlu anlama, kodlama, karmaşık talimatları uygulama ve işlev çağırma konularında iyileştirmeler sunar. Bu iyileştirmeler, daha iyi temsilci deneyimleri sunmak için birlikte çalışır.
  • Yeni modlar: Gemini 2.0, yerel resim oluşturma ve kontrol edilebilir metin okuma özellikleri sunar. Bu özellikler sayesinde resim düzenleme, yerelleştirilmiş poster oluşturma ve etkileyici hikaye anlatımı yapabilirsiniz.

Yeni modeli desteklemek için yeni bir SDK da kullanıma sunuyoruz.

Gemini 2.0'ın teknik ayrıntıları için Gemini modelleri başlıklı makaleyi inceleyin.

Google Gen AI SDK'sı (deneysel)

Yeni Google Gen AI SDK'sı, hem Gemini Developer API hem de Vertex AI'daki Gemini API aracılığıyla Gemini 2.0 için birleşik bir arayüz sağlar. Birkaç istisna dışında, bir platformda çalışan kod her iki platformda da çalışır. Bu sayede, Developer API'yi kullanarak bir uygulamanın prototipini oluşturabilir ve ardından kodunuzu yeniden yazmadan uygulamayı Vertex AI'ya taşıyabilirsiniz.

Gen AI SDK'sı, Gemini 1.5 modellerini de destekler.

Yeni SDK, Python ve Go'da kullanılabilir. Java ve JavaScript desteği de yakında kullanıma sunulacaktır.

SDK'yı aşağıda gösterildiği gibi kullanmaya başlayabilirsiniz.

  1. Yeni SDK'yı yükleyin: pip install google-genai
  2. Ardından kitaplığı içe aktarın, bir istemciyi başlatın ve içerik oluşturun:
from google import genai

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

(İsteğe bağlı) Ortam değişkenlerini ayarlama

Alternatif olarak, istemciyi ortam değişkenlerini kullanarak da başlatabilirsiniz. Öncelikle uygun değerleri ayarlayın ve değişkenleri dışa aktarın:

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

Ardından istemciyi herhangi bir bağımsız değişken olmadan başlatabilirsiniz:

client = genai.Client()

Python geliştiricileri, Kılavuz'daki Başlangıç Not Defteri'ni de deneyebilir.

Multimodal Live API

Multimodal Live API, Gemini ile düşük gecikmeli iki yönlü ses ve görüntü etkileşimlerini sağlar. Multimodal Live API'yi kullanarak son kullanıcılara doğal, insan benzeri sesli sohbet deneyimi ve sesli komutları kullanarak modelin yanıtlarını kesintiye uğratma olanağı sunabilirsiniz. Model, metin, ses ve video girişini işleyebilir ve metin ile ses çıkışı sağlayabilir.

Çok modlu Live API, Gemini API'de BidiGenerateContent yöntemi olarak kullanılabilir ve WebSockets üzerine kuruludur.

Multimodal Live API'yi kullanmaya başlamanıza yardımcı olacak basit bir metinden metne örneğini aşağıda bulabilirsiniz:

MODEL = "models/gemini-2.0-flash-exp"
CONFIG = {"generation_config": {"response_modalities": ["TEXT"]}}

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

  # For text responses, when the model's turn is complete it breaks out of the loop.
  async for response in session.receive():
    print("- ", response.text)

Temel özellikler:

  • Çok modlu: Model görebilir, duyabilir ve konuşabilir.
  • Düşük gecikmeli anlık etkileşim: Hızlı yanıtlar sağlar.
  • Oturum belleği: Model, tek bir oturumdaki tüm etkileşimlerin belleğini saklayarak daha önce duyulan veya görülen bilgileri hatırlar.
  • İşlev çağırma, kod yürütme ve Arama'yı araç olarak kullanma desteği: Harici hizmetler ve veri kaynaklarıyla entegrasyonu sağlar.
  • Otomatik ses etkinliği algılama (VAD): Model, kullanıcının konuşmaya ne zaman başladığını ve ne zaman durduğunu doğru bir şekilde algılayabilir. Bu sayede doğal ve sohbet benzeri etkileşimler elde edilebilir. Ayrıca kullanıcılar istedikleri zaman modeli kesintiye uğratabilir.

Dil:

  • Yalnızca İngilizce

Sınırlamalar:

  • Hem ses girişleri hem de ses çıkışları, modelin işlev çağrısı kullanma özelliğini olumsuz etkiler.

API'nin özellikleri ve sınırlamaları hakkında daha fazla bilgi edinmek için Çok modlu Canlı API referans kılavuzuna bakın.

Çoklu Formatlı Canlı API'yi Google AI Studio'da deneyebilirsiniz. Geliştirmeye başlamak için web konsolunu (React ile yazılmıştır) deneyebilirsiniz. Python geliştiricileri, başlangıç kodunu (not defteri ve .py dosyası) deneyebilir. Not defterini kullanmaya başlamak için en kolay yöntem olarak görebilirsiniz ancak canlı API, terminalinizden çalıştırıldığında en iyi performansı gösterir.

Arama aracı

Google Arama ile temellendirmeyi kullanarak modelden gelen yanıtların doğruluğunu ve güncelliğini artırabilirsiniz. Google Arama, Gemini 2.0'dan itibaren araç olarak kullanılabilir. Bu, modelin Google Arama'yı ne zaman kullanacağına karar verebileceği anlamına gelir. Aşağıdaki örnekte, Arama'nın araç olarak nasıl yapılandırılacağı gösterilmektedir.

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)

Araç olarak arama işlevi, çok turlu aramaları ve çok araçlı sorguları (ör. temellendirmeyi Google Arama ve kod yürütme ile birleştirme) da etkinleştirir.

Arama aracı olarak planlama, akıl yürütme ve düşünme gerektiren karmaşık istemler ve iş akışları sağlar:

  • Gerçeklik ve güncelliği artırmak ve daha doğru yanıtlar sunmak için temellendirme
  • Daha ayrıntılı analiz yapmak için web'den yapıları alma
  • Çoklu duyusal akıl yürütme veya üretme görevlerine yardımcı olacak alakalı resimler, videolar veya başka medyalar bulma
  • Kodlama, teknik sorun giderme ve diğer özel görevler
  • Bölgeye özgü bilgileri bulma veya içeriğin doğru şekilde çevrilmesine yardımcı olma
  • Daha fazla göz atabileceğiniz alakalı web sitelerini bulma

Arama aracı not defterini deneyerek başlayabilirsiniz.

İyileştirilmiş araçlar

Gemini 2.0, işlev çağrılarında ve müşteri temsilcisi deneyimleri için daha iyi destek sağlayan araçlarda iyileştirmeler sunar.

Kompozit işlev çağrısı

Gemini 2.0, yeni bir işlev çağırma özelliğini destekler: kompozisyonel işlev çağırma. Kompozit işlev çağrısı, Gemini API'nin yanıt oluşturma sürecinde birden fazla kullanıcı tanımlı işlevi otomatik olarak çağırmasını sağlar. Örneğin, "Get the temperature in my current location" istemiyle yanıt vermek için Gemini API hem bir get_current_location() işlevi hem de konumu parametre olarak alan bir get_weather() işlevi çağırabilir.

Kod yürütmeyle birlikte kompozisyonel işlev çağrısı, iki yönlü akış gerektirir ve yalnızca yeni Multimodal Live API tarafından desteklenir. Aşağıda, kompozisyonel işlev çağrısını, kod yürütmeyi ve Multimodal Live API'yi birlikte nasıl kullanabileceğinizi gösteren bir örnek verilmiştir:

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 geliştiricileri bunu canlı API aracı kullanım not defterinde deneyebilir.

Çok amaçlı araç kullanımı

Gemini 2.0 ile aynı anda birden fazla aracı etkinleştirebilirsiniz. Model, bu araçları ne zaman çağıracağına karar verir. Multimodal Live API'yi kullanan bir istekte Google Arama ile temellendirme ve kod yürütme gibi iki aracı etkinleştiren bir örnek aşağıda verilmiştir.

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 geliştiricileri bunu canlı API aracı kullanım not defterinde deneyebilir.

Sınırlayıcı kutu algılama

Bu deneysel lansmanda, geliştiricilere görüntü ve videolarda nesne algılama ve yerelleştirme için güçlü bir araç sunuyoruz. Geliştiriciler, sınırlayıcı kutularla nesneleri doğru şekilde tanımlayıp sınırlandırarak çok çeşitli uygulamalardan yararlanabilir ve projelerinin zekasını artırabilir.

Önemli Avantajlar:

  • Basit: Bilgisayar görüşü uzmanlığınızdan bağımsız olarak nesne algılama özelliklerini uygulamalarınıza kolayca entegre edin.
  • Özelleştirilebilir: Özel bir model eğitmenize gerek kalmadan özel talimatlara (ör. "Bu resimdeki tüm yeşil nesnelerin sınırlayıcı kutularını görmek istiyorum") göre sınırlayıcı kutular oluşturun.

Teknik Ayrıntılar:

  • Giriş: İsteminiz ve ilişkili resimler veya video kareleri.
  • Çıkış: [y_min, x_min, y_max, x_max] biçiminde sınırlayıcı kutular. Başlangıç noktası sol üst köşedir. x ve y ekseni sırasıyla yatay ve dikey olarak gider. Koordinat değerleri her resim için 0-1000 olarak normalleştirilir.
  • Görselleştirme: AI Studio kullanıcıları, kullanıcı arayüzünde sınır kutularının çizildiğini görür. Vertex AI kullanıcıları, özel görselleştirme kodu aracılığıyla sınır kutularını görselleştirmelidir.

Python geliştiricileri 2D uzamsal anlama not defterini veya deneysel 3D işaretleme not defterini deneyebilir.

Konuşma oluşturma (erken erişim/izin verilenler listesi)

Gemini 2.0, metni seslendirme özelliğiyle çoklu biçimli yeni bir üretkenlik özelliğini destekler. Metni konuşmaya dönüştürme özelliğini kullanarak modelden insan sesine benzeyen yüksek kaliteli bir ses çıkışı (say "hi everyone") oluşturmasını isteyebilir ve sesi yönlendirerek çıkışı daha da hassaslaştırabilirsiniz.

Görüntü üretme (erken erişim/izin verilenler listesi)

Gemini 2.0, satır içi resimler içeren metin çıkışını destekler. Bu sayede, Gemini'yi kullanarak resimleri sohbet şeklinde düzenleyebilir veya çoklu formatlı çıktılar (ör. tek bir turda metin ve resim içeren bir blog yayını) oluşturabilirsiniz. Daha önce bu işlem için birden fazla modeli birbirine bağlamanız gerekiyordu.

Resim oluşturma özelliği, özel deneysel sürüm olarak kullanılabilir. Aşağıdaki modülleri ve özellikleri destekler:

  • Metinden görüntü oluşturma
    • Örnek istem: "Arka planda havai fişeklerin olduğu Eyfel Kulesi resmi oluştur."
  • Metin ve metinlerin resimlere dönüştürülmesi (alternatif olarak)
    • Örnek istem: "Paella tarifi içeren bir resim oluşturun."
  • Resim ve metin, resim ve metin (alternatif)
    • Örnek istem: (Mobilyalı bir odanın resmiyle) "Alanıma hangi renk koltuklar uygun olur? Resmi güncelleyebilir misiniz?"
  • Resim düzenleme (metin ve resimden resme)
    • Örnek istem: "Bu resmi karikatür gibi görünecek şekilde düzenleyin"
    • Örnek istem: [kedi resmi] + [yastık resmi] + "Bu yastığa kedimin çapraz dikişle resmini yap."
  • Çok turlu resim düzenleme (sohbet)
    • Örnek istemler: [mavi bir arabanın resmini yükleyin.] "Bu arabayı cabrioya dönüştür." "Şimdi rengi sarıya değiştirin."
  • Filigran (synthID)

Sınırlamalar:

  • İnsan oluşturmaya ve yüklenen insan resimlerini düzenlemeye izin verilmez.
  • Resim oluşturma yalnızca aşağıdaki dillerde desteklenir: EN, es-MX, ja-JP, zh-CN, hi-IN.
  • Resim oluşturma, ses veya video girişlerini desteklemez.
  • Resim oluşturma her zaman aşağıdakileri tetiklemeyebilir:
    • Model yalnızca metin döndürebilir. Resim çıktılarını açıkça istemeyi deneyin (ör. "resim oluştur", "çalışma ilerledikçe resim sağlayın", "resmi güncelleyin").
    • Model, oluşturma işlemini yarıda kesebilir. Tekrar deneyin veya farklı bir istem kullanın.