Wysyłanie niestandardowych żądań z bezpośrednim dostępem do modelu Gemini Nano

Dzięki bezpośredniemu dostępowi do modelu w ML Kit (com.google.mlkit:genai-prompt) możesz wysyłać niestandardowe żądania w języku naturalnym na urządzeniu do modelu podstawowego Gemini Nano za pomocą klasy GenerativeModel. Bezpośredni dostęp do modelu akceptuje dane wejściowe w formie tekstu lub multimodalne (obraz i tekst), obsługuje rozmowy wieloetapowe zarządzane przez klienta (List<Content> z rolami USER i MODEL oraz sessionId) i generuje dane wyjściowe w formie tekstu lub ustrukturyzowane dane wyjściowe.

Bezpośredni dostęp do modelu możesz wykorzystać w różnych przypadkach użycia, takich jak:

Przypadek użycia

Przykład

Rozpoznawanie obrazów

analizowanie zdjęć pod kątem klasyfikacji, np. „zwierzęta”, „jedzenie” lub „podróże”;

Krótkie tłumaczenia

tłumaczenie krótkich wiadomości między dostawcą a klientem;

Podsumowanie z podpowiedziami

podsumowywanie opinii o restauracji na podstawie konkretnych zainteresowań użytkownika;

Ekstrakcja encji

wyodrębnianie ważnych szczegółów nadchodzącego wydarzenia z wątku e-mail;

Inspiracje do generowania treści

sugerowanie promptów do wpisu w dzienniku,

Inteligentne skanowanie dokumentów

wyodrębnianie i kategoryzowanie elementów z obrazu paragonu;

Klasyfikacja tekstu

klasyfikowanie opinii klientów jako pozytywnych, neutralnych lub negatywnych;

Bezpośredni dostęp do modelu a interfejsy API do konkretnych zadań

Oprócz bezpośredniego dostępu do modelu podstawowego Gemini Nano na potrzeby niestandardowych promptów ML Kit udostępnia wstępnie skonfigurowane interfejsy API do obsługi mowy, obrazów i tekstu: rozpoznawanie mowy, opisywanie obrazów, podsumowywanie, korekta, przeredagowywanie i inne. Interfejsy API zadań tekstowych i obrazowych używają typów cech związanych z konkretnymi zadaniami i dostrojonych adapterów LoRA na podstawie udostępnionego modelu podstawowego. W tabeli poniżej przedstawiono zalety każdego podejścia:

Rozważanie zakupu

Bezpośredni dostęp do modelu (GenerativeModel)

Interfejsy API do zadań związanych z tekstem i obrazami

Wysiłek związany z integracją

Wysoka.

Wymaga więcej wysiłku przy wdrażaniu ze względu na inżynierię promptów i zapewnianie jakości.

Niska.

Wymaga mniej wysiłku, ponieważ te interfejsy API używają typów funkcji dostosowanych do konkretnych zadań i dostrojonych adapterów LoRA na bazie modelu podstawowego. Nie musisz pracować bezpośrednio z LLM.

Elastyczność

Większa elastyczność, ponieważ możesz tworzyć niestandardowe prompty, zarządzać kontekstem wieloetapowym, wymuszać wpisywanie schematów strukturalnych lub tworzyć przepływy pracy agentów (AgentRunner) wyższego poziomu na podstawie GenerativeModel.

Mniejsza elastyczność. Każdy interfejs API do konkretnego zadania ma stałe dostrajanie LoRA i wbudowany prompt o tych cechach:

  • Opis obrazu jest ogólny i krótki.
  • Podsumowania mogą zawierać tylko 1–3 punkty.
  • Przepisywanie obsługuje tylko wstępnie zdefiniowane style.

Ogólna zasada jest taka, że bezpośredni dostęp do modelu jest zalecany, gdy potrzebujesz większej możliwości dostosowywania i elastyczności, a interfejsy API do konkretnych zadań – w przypadku standardowych zadań, które nie wymagają niestandardowej logiki.

Przykładowy kod