Eksperymentalny dostęp do Gemini Nano jest przeznaczony dla deweloperów, którzy chcą testować ulepszenia swoich aplikacji za pomocą najnowocześniejszych funkcji AI na urządzeniu. Ten przewodnik zawiera szczegółowe informacje o tym, jak eksperymentować z Gemini Nano za pomocą pakietu Google AI Edge SDK we własnej aplikacji.
Pobieranie przykładowej aplikacji
Jeśli chcesz skorzystać z przygotowanej wersji demonstracyjnej, zapoznaj się z naszą aplikacją przykładową w GitHubie.
Wymagania wstępne
Aby wypróbować Gemini Nano, musisz mieć urządzenie z serii Pixel 9. Zanim przejdziesz dalej, przygotuj go i upewnij się, że logujesz się tylko na konto, którego chcesz używać do testowania.
- Dołącz do grupy dyskusyjnej Google aicore-experimental.
- Dołącz do programu testów Androida AICore
Po wykonaniu tych czynności nazwa aplikacji w Sklepie Play (w sekcji Zarządzaj aplikacjami i urządzeniami) powinna zmienić się z „Android AICore” na „Android AICore (Beta)”.
Aktualizowanie plików APK i pobieranie plików binarnych
- Zaktualizuj plik APK AICore:
- W prawym górnym rogu kliknij ikonę profilu.
- Kliknij Zarządzaj aplikacjami i urządzeniami > Zarządzaj.
- Kliknij Android AICore.
- Jeśli aktualizacja jest dostępna, kliknij Aktualizuj.
- Zaktualizuj plik APK usługi Private Compute Service:
- W prawym górnym rogu kliknij ikonę profilu.
- Kliknij Zarządzaj aplikacjami i urządzeniami > Zarządzaj.
- Kliknij Private Compute Services.
- Jeśli aktualizacja jest dostępna, kliknij Aktualizuj.
- Sprawdź wersję na karcie O tej aplikacji i upewnij się, że wersja aplikacji to 1.0.release.658389993 lub nowsza.
- Ponownie uruchom urządzenie i poczekaj kilka minut, aż rejestracja testowa zacznie obowiązywać.
- Sprawdź wersję pliku APK AICore w Sklepie Play (na karcie „O tej aplikacji”), aby upewnić się, że zaczyna się od 0.thirdpartyeap.
Konfigurowanie Gradle
Dodaj do bloku zależności w konfiguracji build.gradle
te informacje:
implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
W build.gradle
konfiguracji ustaw minimalną wersję pakietu SDK na 31:
defaultConfig {
...
minSdk = 31
...
}
Pobieranie AICore i przeprowadzanie wnioskowania
Utwórz obiekt GenerationConfig
, który zawiera parametry dostosowujące właściwości
określające sposób wnioskowania modelu.
Parametry obejmują:
- Temperatura: określa losowość; wyższe wartości zwiększają różnorodność.
- Top K: ile tokenów z najwyżej ocenianych ma być branych pod uwagę.
- Candidate Count: maksymalna liczba odpowiedzi do zwrócenia
- Maksymalna liczba tokenów wyjściowych: długość odpowiedzi.
- Worker Executor:
ExecutorService
, na którym mają być uruchamiane zadania w tle. - Callback Executor:
Executor
, na którym należy wywoływać wywołania zwrotne.
Kotlin
val generationConfig = generationConfig { context = ApplicationProvider.getApplicationContext() // required temperature = 0.2f topK = 16 maxOutputTokens = 256 }
Java
GenerationConfig.Builder configBuilder = GenerationConfig.Companion.builder(); configBuilder.setContext(context); configBuilder.setTemperature(0.2f); configBuilder.setTopK(16); configBuilder.setMaxOutputTokens(256);
Utwórz opcjonalny znak downloadCallback
. Jest to funkcja wywołania zwrotnego używana do pobierania modelu. Zwrócone wiadomości służą do debugowania.
Utwórz obiekt GenerativeModel
z utworzonymi wcześniej konfiguracjami generowania i opcjonalnego pobierania.
Kotlin
val downloadConfig = DownloadConfig(downloadCallback) val generativeModel = GenerativeModel( generationConfig = generationConfig, downloadConfig = downloadConfig // optional )
Java
GenerativeModel generativeModel = new GenerativeModel( generationConfig, downloadConfig = DownloadConfig(downloadCallback) // optional );
Przeprowadź wnioskowanie za pomocą modelu i przekaż prompt. Ponieważ funkcja
GenerativeModel.generateContent()
jest funkcją zawieszającą, musimy się upewnić, że znajduje się w odpowiednim zakresie współprogramu, aby można było ją uruchomić.
Kotlin
scope.launch { // Single string input prompt val input = "I want you to act as an English proofreader. I will provide you texts, and I would like you to review them for any spelling, grammar, or punctuation errors. Once you have finished reviewing the text, provide me with any necessary corrections or suggestions for improving the text: These arent the droids your looking for." val response = generativeModel.generateContent(input) print(response.text) // Or multiple strings as input val response = generativeModel.generateContent( content { text("I want you to act as an English proofreader. I will provide you texts and I would like you to review them for any spelling, grammar, or punctuation errors.") text("Once you have finished reviewing the text, provide me with any necessary corrections or suggestions for improving the text:") text("These arent the droids your looking for.") } ) print(response.text) }
Java
Futures.addCallback( String input = "I want you to act as an English proofreader. I will provide you texts, and I would like you to review them for any spelling, grammar, or punctuation errors. Once you have finished reviewing the text, provide me with any necessary corrections or suggestions for improving the text: These aren't the droids you're looking for." generativeModelFutures.generateContent(input), new FutureCallback<GenerateContentResponse>() { @Override public void onSuccess(GenerateContentResponse result) { // generation successful } @Override public void onFailure(Throwable t) { // generation failed } }, ContextCompat.getMainExecutor(this));
Jeśli masz jakieś uwagi dotyczące pakietu Google AI Edge SDK lub inne opinie dla naszego zespołu, prześlij zgłoszenie.
Wskazówki dotyczące promptów
Projektowanie promptów to proces tworzenia promptów, które służą do uzyskania optymalnej odpowiedzi modelu języka. Tworzenie dobrze skonstruowanych promptów jest niezbędne, aby uzyskać dokładne i wysokiej jakości odpowiedzi od modelu językowego. Podajemy kilka przykładów, które pomogą Ci zacząć korzystać z Gemini Nano w typowych przypadkach użycia. Więcej informacji znajdziesz w strategiach promptowania Gemini.
W przypadku ponownego pisania:
I want you to act as an English proofreader. I will provide you texts, and I
would like you to review them for any spelling, grammar, or punctuation errors.
Once you have finished reviewing the text, provide me with any necessary
corrections or suggestions for improving the text: These arent the droids your
looking for
Przykłady zastosowań inteligentnych odpowiedzi:
Prompt: Predict up to 5 emojis as a response to a text chat message. The output
should only include emojis.
input: The new visual design is blowing my mind 🤯
output: ➕,💘, ❤🔥
input: Well that looks great regardless
output: 💗,🪄
input: Unfortunately this won't work
output: 💔,😔
input: sounds good, I'll look into that
output: 🙏,👍
input: 10hr cut of jeff goldblum laughing URL
output: 😂,💀,⚰️
input: Woo! Launch time!
Output:
Podsumowywanie:
Summarize this text as bullet points of key information.
Text: A quantum computer exploits quantum mechanical phenomena to perform
calculations exponentially faster than any modern traditional computer. At
very tiny scales, physical matter acts as both particles and as waves, and
quantum computing uses specialized hardware to leverage this behavior. The
operating principles of quantum devices are beyond the scope of classical
physics. When deployed at scale, quantum computers could be used in a wide
variety of applications such as: in cybersecurity to break existing encryption
methods while helping researchers create new ones, in meteorology to develop
better weather forecasting etc. However, the current state-of-the-art quantum
computers are still largely experimental and impractical.