Interfejsy GenAI API w ML Kit wykorzystują możliwości Gemini Nano, aby ułatwić aplikacjom wykonywanie zadań opartych na generatywnej AI na urządzeniu. Te interfejsy API są oparte na AICore, usłudze systemowej Androida, która zarządza modelami podstawowymi na urządzeniu i przyspiesza wnioskowanie, zachowując jednocześnie prywatność danych użytkownika.
Korzystanie z interfejsów GenAI API podlega Dodatkowym warunkom korzystania z usługi ML Kit GenAI API. Deweloperzy ponoszą wyłączną odpowiedzialność za bezpieczeństwo swojego klienta API i za wrażenia użytkowników aplikacji.
Najważniejsze funkcje
Zestaw ML Kit dzieli funkcje generatywnej AI na te kategorie:
Generowanie niestandardowe i agenty
Pracuj bezpośrednio z modelem podstawowym Gemini Nano, aby tworzyć niestandardowe prompty i autonomiczne Agentic Workflows:
- Bezpośredni dostęp do modelu (za pomocą klasy
GenerativeModel): generuj tekst lub ustrukturyzowane dane wyjściowe z niestandardowych promptów tekstowych lub multimodalnych albo zarządzaj własną historią czatu wieloturowego bezpośrednio za pomocą obiektuList<Content>z rolamiUSERiMODELoraz wartościąsessionId, a także bezpośrednio zarządzaj deklaracjami narzędzi. - Agentic workflows (przy użyciu klasy
AgentRunner): oparte na klasieGenerativeModel, automatyzujące zarządzanie sesjami wieloetapowymi (w tym historią rozmów w pamięci) i wieloetapowe pętle wywoływania narzędzi.
Mowa i dźwięk
Transkrybuj, tłumacz i syntetyzuj mowę na urządzeniu:
- Rozpoznawanie mowy: transkrypcja treści audio na tekst w tym samym języku.
- Tłumaczenie mowy: tłumacz tekst mówiony na tekst w innym języku w czasie rzeczywistym.
- Text-to-Speech: synteza naturalnie brzmiącej mowy na podstawie tekstu.
Zadania związane z tekstem i obrazami
Używaj interfejsów API przeznaczonych do konkretnych zadań, które są zoptymalizowane pod kątem typowych zadań związanych z widzeniem komputerowym, pisaniem i wyszukiwaniem, bez konieczności stosowania inżynierii promptów:
- Opis obrazu: wygeneruj krótki opis danego obrazu.
- Podsumowanie: podsumuj artykuły lub rozmowy na czacie w formie listy punktowanej.
- Korekta: ulepszaj krótkie treści, poprawiając gramatykę i błędy ortograficzne.
- Przepisywanie: przepisywanie krótkich wiadomości w różnych tonach lub stylach.
- Wyszukiwanie semantyczne: generuj wektory dystrybucyjne dla tekstu i obrazów za pomocą interfejsu Embedding API i łącz je z AndroidX AppSearch, aby znajdować treści według znaczenia.
Zalety interfejsów API generatywnej AI
Podobnie jak inne funkcje ML Kit, interfejsy API generatywnej AI działają całkowicie na urządzeniu, co zapewnia te korzyści:
- Dane wejściowe, wnioskowania i wyjściowe są przetwarzane lokalnie.
- Funkcje pozostają takie same bez niezawodnego połączenia z internetem
- Brak dodatkowych kosztów serwera za każde wywołanie interfejsu API.
Ponadto interfejsy API GenAI są oparte na AICore i wykorzystują Gemini Nano, więc aplikacje i interfejsy API do konkretnych zadań korzystają z tego samego modelu bazowego Gemini Nano na urządzeniu. Dzięki temu nie trzeba czekać na pobranie osobnego modelu, jeśli Gemini Nano jest już na urządzeniu, co pozwala zaoszczędzić miejsce na dane. Dowiedz się więcej o tym, jak AICore izoluje żądania, aby chronić prywatność.
Strumieniowe i niestrumieniowe
Interfejsy API ML Kit GenAI oferują zarówno opcje strumieniowe, jak i niestrumieniowe do otrzymywania wyników. Interfejs API do strumieniowego przesyłania danych dostarcza odpowiedzi przyrostowo w miarę ich generowania, zapewniając ciągły przepływ danych. Z kolei interfejs API bez strumieniowania czeka, aż cała odpowiedź zostanie ukończona, zanim zwróci ją jako pojedynczy blok.
W przypadku długich odpowiedzi wybierz interfejs API do strumieniowania, ponieważ umożliwia on szybsze uzyskanie początkowej odpowiedzi. Interfejs API bez strumieniowania jest bardziej odpowiedni w przypadku krótkich odpowiedzi lub przetwarzania wyników w partiach.
Obsługa urządzeń
Obsługa niestandardowego generowania i agentów oraz interfejsów API do zadań tekstowych i obrazowych na urządzeniach jest opisana w sekcjach poniżej. Informacje o obsłudze funkcji, które nie są wymienione w tej sekcji, znajdziesz na stronach poszczególnych funkcji.
Generowanie niestandardowe i obsługa urządzeń agenta
Bezpośredni dostęp do modelu i Agentic Workflows są obsługiwane na tych urządzeniach:
nano-v2 |
|
nano-v3 |
|
nano-v4 |
|
Obsługa zadań tekstowych i graficznych na urządzeniach
Interfejsy API Image Description, Summarization, Proofreading i Rewriting są dostępne na tych urządzeniach, a w przyszłości planujemy rozszerzyć obsługę na kolejne:
- Google: Pixel 11, Pixel 11 Pro, Pixel 11 Pro XL, Pixel 11 Pro Fold, Pixel 10, Pixel 10 Pro, Pixel 10 Pro XL, Pixel 10 Pro Fold, Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL, Pixel 9 Pro Fold
- Honor: Honor 400 Pro, Magic 7, Magic 7 Pro, Magic 8 Pro, Magic V5
- iQOO: iQOO 13, iQOO 15
- Lenovo: Lenovo Idea Tab Pro Gen 2, Lenovo Legion Tab Gen 5(8,8")
- Motorola: Razr 60 Ultra, Razr Ultra 2025, Signature
- OnePlus: OnePlus 15, OnePlus 15R, OnePlus 13, OnePlus 13s
- OPPO: Find N5, Find X9, Find X9 Pro, Find X8, Find X8 Pro, Reno 14 Pro 5G, Reno 15 Pro 5G, Reno 15 Pro Mini 5G, Reno 15 Pro Max 5G
- POCO: POCO F7 Ultra, POCO F8 Pro, POCO F8 Ultra, POCO X7 Pro, POCO X8 Pro
- realme: realme GT 7 Pro, realme GT 7T
- Samsung: Galaxy S25, Galaxy S25+, Galaxy S25 Ultra, Galaxy S26, Galaxy S26+, Galaxy S26 Ultra, Galaxy Z Flip8, Galaxy Z Fold8, Galaxy Z Fold8 Ultra, Galaxy Z Fold7, Galaxy Z TriFold
- Sharp: AQUOS R11
- Sony: Xperia 1 VIII
- vivo: vivo X200T, vivo X200 FE, vivo X200, vivo X200 Pro, vivo X300, X300 Pro, vivo X Fold3 Pro, vivo X Fold5, vivo T4 Ultra
- Xiaomi: Xiaomi 14T Pro, Xiaomi 15, Xiaomi 15T, Xiaomi 15T Pro, Xiaomi 15 Ultra, Xiaomi 17, Xiaomi 17 Ultra, Xiaomi Pad Mini
Dostępność obsługi konkretnego języka może się różnić w zależności od konfiguracji urządzenia i pobranych na nie modeli.
Pobieranie wersji Gemini Nano
Na różnych urządzeniach działają różne wersje Gemini Nano. Aby zwrócić wersję Gemini Nano na urządzeniu, użyj metody getBaseModelName().
Limit na aplikację
AICore egzekwuje limit wnioskowania na aplikację. Zbyt wiele żądań do interfejsu GenAI API w krótkim czasie spowoduje odpowiedź ErrorCode.BUSY. Jeśli wystąpi taki błąd, spróbuj ponownie wysłać żądanie, stosując wzrastający czas do ponowienia. Może też zostać zwrócony błąd ErrorCode.PER_APP_BATTERY_USE_QUOTA_EXCEEDED, jeśli aplikacja przekroczy limit długoterminowy (np. dzienny).
Wykorzystanie w tle
Wnioskowanie interfejsu GenAI API jest dozwolone tylko wtedy, gdy aplikacja jest aplikacją na pierwszym planie. Użycie interfejsu API, gdy aplikacja nie działa na pierwszym planie, w tym użycie usługi na pierwszym planie, spowoduje zwrócenie odpowiedzi ErrorCode.BACKGROUND_USE_BLOCKED.
Przykładowy kod
Aby uzyskać ten kod, zapoznaj się z tymi przykładami: