Gemini 2.0 Flash jest teraz dostępny jako eksperymentalna wersja wstępna w Gemini Developer API i Google AI Studio. Model wprowadza nowe funkcje i ulepszone podstawowe możliwości:
- Interfejs multimodalny Live API: ten nowy interfejs API ułatwia tworzenie aplikacji do strumieniowego przesyłania obrazu i dźwięku w czasie rzeczywistym.
- Szybkość i wydajność: model Gemini 2.0 znacznie skraca czas do pierwszego tokena (TTFT) w porównaniu z modelem 1.5 Flash.
- Jakość: wyższa skuteczność w większości testów porównawczych niż w przypadku Gemini 1.5 Pro.
- Udoskonalone możliwości agenta: Gemini 2.0 ulepsza zrozumienie multimodalne, kodowanie, wykonywanie złożonych instrukcji i wywoływanie funkcji.
- Nowe tryby: Gemini 2.0 wprowadza natywne generowanie obrazów i możliwości kontrolowanego odczytywania tekstu.
Aby ułatwić pracę deweloperom, udostępniamy też nowy pakiet SDK. Szczegółowe informacje techniczne dotyczące Gemini 2.0 znajdziesz w artykule Modele Gemini.
Pakiet SDK Google Gen AI (eksperymentalny)
Nowy pakiet Google Gen AI SDK zapewnia zintegrowany interfejs Gemini 2.0 za pomocą interfejsu Gemini Developer API i interfejsu Gemini API w Vertex AI. Z kilkoma wyjątkami kod działający na jednej platformie będzie działać na obu. Nowy pakiet SDK jest dostępny w Pythonie i Go, a wkrótce udostępnimy go też w Java i JavaScript.
- Zainstaluj nowy pakiet SDK:
pip install google-genai
- Następnie zaimportuj bibliotekę, zainicjuj klienta i wygeneruj treści:
from google import genai
client = genai.Client(api_key="GEMINI_API_KEY")
response = client.models.generate_content(model='gemini-2.0-flash-exp', contents='How does AI work?')
print(response.text)
Deweloperzy Pythona mogą też skorzystać z notebooka Pierwsze kroki w książce kucharskiej Gemini.
Interfejs API Multimodal Live
Interfejs API multimodalny na żywo umożliwia dwukierunkowe interakcje głosowe i wideo z Gemini o niskim opóźnieniu. Dzięki interfejsowi API Multimodal Live możesz zapewnić użytkownikom naturalne, przypominające ludzkie rozmowy głosowe oraz możliwość przerywania odpowiedzi modelu za pomocą poleceń głosowych. Model może przetwarzać dane wejściowe w postaci tekstu, dźwięku i obrazu oraz generować dane wyjściowe w postaci tekstu i dźwięku.
Interfejs API Multimodal Live możesz wypróbować w Google AI Studio. Więcej informacji o możliwościach i ograniczeniach interfejsu API znajdziesz w przewodniku po interfejsie API Multimodal Live API.
Wyszukiwanie jako narzędzie
Dzięki użyciu funkcji Grounding w wyszukiwarce Google możesz zwiększyć dokładność i aktualność odpowiedzi modelu. Począwszy od Gemini 2.0 wyszukiwarka Google jest dostępna jako narzędzie. Oznacza to, że model może sam decydować, kiedy korzystać z wyszukiwarki Google. Poniższy przykład pokazuje, jak skonfigurować wyszukiwarkę jako narzędzie.
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)
Funkcja wyszukiwania jako narzędzia umożliwia też wyszukiwanie wieloetapowe i zapytania wielonarzędziowe (np. połączenie funkcji Grounding z wyszukiwarką Google i wykonywanie kodu).
Wyszukiwarka jako narzędzie umożliwia tworzenie złożonych promptów i przepływów pracy, które wymagają planowania, rozumowania i myślenia:
- tworzenie podstawy, aby zwiększyć rzetelność i aktualność oraz zapewnić dokładniejsze odpowiedzi;
- Pobieranie artefaktów z internetu w celu przeprowadzenia dalszej analizy
- znajdowanie odpowiednich obrazów, filmów lub innych multimediów, które pomogą w rozwiązywaniu zadań dotyczących rozumowania multimodalnego lub generowania treści;
- kodowanie, rozwiązywanie problemów technicznych i inne specjalistyczne zadania;
- znajdować informacje dotyczące poszczególnych regionów lub pomagać w dokładnym tłumaczeniu treści;
- znajdowanie odpowiednich witryn do dalszego przeglądania;
Aby rozpocząć, wypróbuj notatnik narzędzia wyszukiwania.
Ulepszone korzystanie z narzędzi
Gemini 2.0 wprowadza ulepszenia funkcji wywoływania i narzędzi, które zapewniają lepszą obsługę agentów.
Wywoływanie funkcji kompozytowej
Gemini 2.0 obsługuje nową funkcję wywołania funkcji: kompozycję wywołania funkcji. Wywoływanie funkcji kompozytowych umożliwia interfejsowi Gemini API automatyczne wywoływanie wielu funkcji zdefiniowanych przez użytkownika w procesie generowania odpowiedzi. Na przykład, aby odpowiedzieć na prompt "Get the temperature in my current location"
, interfejs Gemini API może wywołać zarówno funkcję get_current_location()
, jak i funkcję get_weather()
, która przyjmuje lokalizację jako parametr.
Wywoływanie funkcji kompozytowej z wykonywaniem kodu wymaga dwukierunkowego przesyłania strumieniowego i jest obsługiwane tylko przez nowy interfejs API Multimodal Live. Oto przykład pokazujący, jak można używać wywołania funkcji kompozytowej, wykonywania kodu i interfejsu 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")
Deweloperzy Pythona mogą wypróbować to w notatniku dotyczącym korzystania z narzędzia interfejsu API.
Użycie narzędzia wielofunkcyjnego
Dzięki Gemini 2.0 możesz włączyć wiele narzędzi jednocześnie, a model sam zdecyduje, kiedy je użyć. Oto przykład, w którym w ramach jednego zapytania korzystającego z interfejsu Multimodal Live API włączono 2 narzędzia: Grounding z wyszukiwarką Google i wykonanie kodu.
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")
Deweloperzy Pythona mogą wypróbować to w notatniku dotyczącym korzystania z interfejsu API.
Wykrywanie ramki ograniczającej
W ramach tego eksperymentalnego wdrożenia udostępniamy deweloperom potężne narzędzie do wykrywania i lokalizowania obiektów na zdjęciach i w filmach. Dzięki dokładnemu identyfikowaniu i oznaczaniu obiektów za pomocą ramek ograniczających deweloperzy mogą tworzyć szeroką gamę aplikacji i ulepszać działanie swoich projektów.
Najważniejsze korzyści:
- Prosta: bez względu na Twoją wiedzę z zakresu widzenia komputerowego możesz łatwo zintegrować funkcje wykrywania obiektów w swoich aplikacjach.
- Możliwość dostosowania: generowanie ramek ograniczających na podstawie niestandardowych instrukcji (np. „Chcę zobaczyć ramki ograniczające wszystkie zielone obiekty na tym obrazie”) bez konieczności trenowania niestandardowego modelu.
Szczegóły techniczne:
- Wejście: prompt i powiązane obrazy lub klatki wideo.
- Wyjście: ramki ograniczające w formacie
[y_min, x_min, y_max, x_max]
. Lewy górny róg to punkt początkowy. Osiex
iy
są odpowiednio poziome i pionowe. Wartości współrzędnych są normalizowane do zakresu 0–1000 w przypadku każdego obrazu. - Wizualizacja: użytkownicy AI Studio zobaczą ramki ograniczające narysowane w interfejsie. Użytkownicy Vertex AI powinni wizualizować swoje ramki za pomocą niestandardowego kodu wizualizacji.
Deweloperzy Pythona mogą skorzystać z notatnika z 2D spatial understanding lub eksperymentalnego notatnika z wskazaniem 3D.
generowanie mowy (wcześniejszy dostęp/lista dozwolonych),
Gemini 2.0 obsługuje nową funkcję generowania multimodalnego: zamianę tekstu na mowę.
Dzięki funkcji konwersji tekstu na mowę możesz poprosić model o wygenerowanie wysokiej jakości dźwięku, który brzmi jak ludzki głos (say "hi everyone"
). Możesz też dodatkowo dostosować wynik, kierując głos.
generowanie obrazów (wcześniejszy dostęp/lista dozwolonych),
Gemini 2.0 umożliwia generowanie tekstu z wstawionymi obrazami. Dzięki temu możesz używać Gemini do konwersacyjnego edytowania obrazów lub generowania multimodalnych wyników (np. wpisu na blogu z tekstem i obrazami w jednym tekście). Wcześniej wymagało to połączenia wielu modeli.
Generowanie obrazów jest dostępne jako prywatna wersja eksperymentalna. Obsługuje te tryby i funkcje:
- Tekst na obrazie
- Przykład promptu: „Wygeneruj obraz wieży Eiffla z fajerwerkami w tle”.
- Tekst na obraz(obrazy) i tekst (przeplatany)
- Przykład promptu: „Wygeneruj ilustrowany przepis na paellę”.
- Obrazy i tekst na obrazy i tekst (przeplatane)
- Przykład promptu: (z obrazem umeblowanego pokoju) „Jakie inne kolory sof pasowałyby do mojego pokoju? Czy możesz zaktualizować obraz?”
- Edytowanie obrazu (tekst i obraz do obrazu)
- Przykładowy prompt: „Edytuj to zdjęcie, aby wyglądało jak rysunek”
- Przykładowy prompt: [obraz kota] + [obraz poduszki] + „Wyhaftuj na tej poduszce mojego kota”.
- Edytowanie obrazu w wielu krokach (czat)
- Przykładowe prompty: [prześlij zdjęcie niebieskiego samochodu] „Zamień ten samochód na kabriolet”. „Zamień teraz kolor na żółty”.
- Znak wodny
- Wszystkie wygenerowane obrazy zawierają znak wodny SynthID.
Ograniczenia:
- Generowanie obrazów przedstawiających ludzi i edytowanie przesłanych zdjęć takich obrazów jest niedozwolone.
- Aby uzyskać najlepszą skuteczność, używaj tych języków: EN, es-MX, ja-JP, zh-CN, hi-IN.
- Generowanie obrazów nie obsługuje danych wejściowych audio ani wideo.
- Generowanie obrazu może nie zostać uruchomione, jeśli:
- Model może generować tylko tekst. Spróbuj wyraźnie poprosić o wygenerowanie obrazu (np. „wygeneruj obraz”, „prześlij obrazy”, „zaktualizuj obraz”).
- Model może przestać generować dane w połowie procesu. Spróbuj ponownie lub wybierz inny prompt.