Dostęp do eksperymentalnej wersji Gemini Nano jest przeznaczony dla deweloperów, którzy chcą przetestować ulepszanie swoich aplikacji za pomocą zaawansowanych funkcji AI na urządzeniu. W tym przewodniku znajdziesz szczegółowe informacje o tym, jak eksperymentować z Gemini Nano za pomocą pakietu Google AI Edge SDK w swojej aplikacji.
Pobieranie przykładowej aplikacji
Jeśli chcesz zobaczyć przygotowaną prezentację, zapoznaj się z naszą przykładową aplikacją na GitHubie.
Wymagania wstępne
Aby eksperymentować z Gemini Nano, potrzebujesz urządzenia z serii Pixel 9. Zanim przejdziesz dalej, upewnij się, że masz go pod ręką i że logujesz się tylko na konto, którego chcesz używać do testowania.
- Dołącz do grupy Google „aicore-experimental”
- Dołącz do programu testów Android AICore.
Po wykonaniu tych czynności nazwa aplikacji w Google Play (w sekcji zarządzania aplikacjami i urządzeniem) powinna zmienić się z „Android AICore” na „Android AICore (beta)”.
Aktualizowanie plików APK i pobieranie binarnych 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 dostępna jest aktualizacja, 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 (Prywatne usługi obliczeniowe).
- Jeśli dostępna jest aktualizacja, kliknij Aktualizuj.
- Sprawdź wersję na karcie Informacje o aplikacji i upewnij się, że jest to wersja 1.0.release.658389993 lub nowsza.
- Zrestartuj urządzenie i poczekaj kilka minut, aż testowa rejestracja zacznie obowiązywać.
- Sprawdź wersję pliku APK AICore w Sklepie Play (na karcie „Informacje o aplikacji”), aby upewnić się, że zaczyna się od 0.thirdpartyeap.
Konfigurowanie Gradle
W bloku zależności w konfiguracji build.gradle
dodaj te informacje:
implementation("com.google.ai.edge.aicore:aicore:0.0.1-exp01")
W konfiguracji build.gradle
ustaw minimalną wersję pakietu SDK na 31:
defaultConfig {
...
minSdk = 31
...
}
Pobieranie AICore i uruchamianie wnioskowania
Utwórz obiekt GenerationConfig
, który zawiera parametry umożliwiające dostosowanie właściwości określających, jak model ma przeprowadzać wnioskowanie.
Parametry:
- Temperatura: określa losowość; wyższe wartości zwiększają różnorodność.
- Top K: ile tokenów o najwyższym rankingu ma być uwzględnionych.
- Liczba kandydatów: maksymalna liczba odpowiedzi do zwrócenia.
- Maksymalna liczba tokenów wyjściowych: długość odpowiedzi.
- Wykonawca zadań:
ExecutorService
, na którym mają być wykonywane zadania w tle. - Wykonawca wywołań zwrotnych:
Executor
, w których mają być wywoływane 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 element downloadCallback
. Jest to funkcja wywołania zwrotnego używana do pobierania modelu. Zwracane komunikaty służą do debugowania.
Utwórz obiekt GenerativeModel
z utworzonymi wcześniej konfiguracjami generowania i opcjonalnego pobierania.
Kotlin
val downloadConfig = DownloadConfig(downloadCallback) val model = GenerativeModel( generationConfig = generationConfig, downloadConfig = downloadConfig // optional )
Java
GenerativeModel model = new GenerativeModel( generationConfig, downloadConfig = DownloadConfig(downloadCallback) // optional );
Przeprowadź wnioskowanie z modelem i przekaż prompt. Funkcja GenerativeModel.generateContent()
jest funkcją zawieszania, więc musimy się upewnić, że jest ona uruchomiona w odpowiednim zakresie współbieżnej funkcji.
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." modelFutures.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 chcesz podzielić się opinią na temat pakietu SDK Google AI Edge lub na temat innych kwestii, 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ęzykowego. Pisanie dobrze sformatowanych promptów jest kluczowym elementem zapewnienia dokładnych i wysokiej jakości odpowiedzi modelu językowego. Dołączyliśmy kilka przykładów, aby ułatwić Ci rozpoczęcie korzystania z Gemini Nano w typowych przypadkach użycia. Więcej informacji znajdziesz w strategiach promptów Gemini.
W przypadku przekierowań:
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
Inteligentne 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:
W przypadku podsumowywania:
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.