Domyślnie funkcja Gemini API zwraca odpowiedzi jako tekst nieustrukturyzowany. Niektóre przypadki użycia wymagają jednak tekstu ustrukturyzowanego, np. w formacie JSON. Możesz na przykład używać odpowiedzi do innych zadań, które wymagają ustalonego schematu danych.
Aby wygenerowane przez model dane wyjściowe zawsze były zgodne z określonym schematem, możesz zdefiniować schemat odpowiedzi, który działa jak szablon odpowiedzi modelu. Dzięki temu możesz wyodrębnić dane bezpośrednio z wyjścia modelu, co wymaga mniej przetwarzania w pościepce.
Oto przykłady:
Upewnij się, że odpowiedź modelu zwraca prawidłowy format JSON i jest zgodna ze schematem dostarczonym przez Ciebie.
Na przykład model może generować uporządkowane wpisy dotyczące przepisów, które zawsze zawierają nazwę przepisu, listę składników i sposób przygotowania. Dzięki temu łatwiej będzie Ci analizować te informacje i wyświetlać je w interfejsie aplikacji.Ogranicz, jak model może odpowiadać podczas zadań klasyfikacji.
Możesz na przykład zlecić modelowi dodanie do tekstu adnotacji za pomocą określonego zestawu etykiet (np. określonego zbioru typów danych takich jakpositive
inegative
) zamiast etykiet generowanych przez model (które mogą się różnić, np.good
,positive
,negative
lubbad
).
Z tego przewodnika dowiesz się, jak wygenerować dane wyjściowe w formacie JSON, podając parametr responseSchema
w wywołaniu funkcji generateContent
. Koncentruje się na danych wejściowych w postaci tekstu, ale Gemini może też generować uporządkowane odpowiedzi na żądania multimodalne, które zawierają obrazy, filmy i dźwięk.
W dolnej części tej strony znajdziesz więcej przykładów, np. jak generować wartości wyliczenia jako dane wyjściowe. Aby zobaczyć dodatkowe przykłady generowania uporządkowanych danych wyjściowych, zapoznaj się z listą przykładowych schematów i odpowiedzi modelu w dokumentacji Google Cloud.
Zanim zaczniesz
Jeśli jeszcze tego nie zrobisz, zapoznaj się z przewodnikiem po pakietach SDK Vertex AI in Firebase. Upewnij się, że wykonałeś/wykonałaś te czynności:
Skonfiguruj nowy lub istniejący projekt Firebase, w tym użyj abonamentu Blaze i włącz wymagane interfejsy API.
Połącz aplikację z Firebase, w tym zarejestruj ją i dodaj do niej konfigurację Firebase.
Dodaj pakiet SDK i zainicjuj usługę Vertex AI oraz model generatywny w swojej aplikacji.
Po połączeniu aplikacji z Firebase, dodaniu pakietu SDK i inicjalizacji usługi Vertex AI oraz modelu generatywnego możesz wywołać funkcję Gemini API.
Krok 1. Określ schemat odpowiedzi
Zdefiniuj schemat odpowiedzi, aby określić strukturę danych wyjściowych modelu, nazwy pól i oczekiwaną formę danych w każdym polu.
Podczas generowania odpowiedzi model używa nazwy pola i kontekstu z prompta. Aby jasno określić intencję, zalecamy użycie przejrzystej struktury, jednoznacznych nazw pól, a w razie potrzeby – również opisów.
Uwagi dotyczące schematów odpowiedzi
Podczas pisania schematu odpowiedzi pamiętaj o tych kwestiach:
Rozmiar schematu odpowiedzi wlicza się do limitu tokenów wejściowych.
Funkcja schematu odpowiedzi obsługuje te typy MIME odpowiedzi:
application/json
: dane wyjściowe w formacie JSON zgodnie ze schematem odpowiedzi (przydatne w przypadku wymagań dotyczących danych uporządkowanych).text/x.enum
: zwraca wartość typu wyliczeniowego zgodnie ze schematem odpowiedzi (przydatne w przypadku zadań klasyfikacyjnych).
Funkcja schematu odpowiedzi obsługuje te pola schematu:
enum
items
maxItems
nullable
properties
required
Jeśli użyjesz pola, które nie jest obsługiwane, model może nadal obsłużyć Twoje żądanie, ale zignoruje to pole. Pamiętaj, że powyższa lista jest podzbiorem obiektu schematu OpenAPI 3.0 (patrz dokumentacja schematu Vertex AI).
Domyślnie w przypadku pakietów SDK Vertex AI in Firebase wszystkie pola są uważane za wymagane, chyba że w tablicy
optionalProperties
zostaną określone jako opcjonalne. W przypadku tych pól opcjonalnych model może wypełnić pola lub je pominąć.Pamiętaj, że jest to przeciwieństwo domyślnego zachowania funkcji Vertex AI Gemini API.
Krok 2. Wyślij prompt z schematem odpowiedzi, aby wygenerować plik JSON
Poniższy przykład pokazuje, jak wygenerować uporządkowane dane wyjściowe w formacie JSON.
Aby wygenerować dane wyjściowe w formie ustrukturyzowanej, musisz podczas inicjalizacji modelu podać odpowiednią funkcję responseMimeType
(w tym przykładzie application/json
), a także funkcję responseSchema
, której model ma używać.
Użycie responseSchema
jest obsługiwane przez Gemini 1.5 Pro i Gemini 1.5 Flash.
Dowiedz się, jak wybrać model Gemini i opcjonalnie lokalizacjęodpowiednią do Twojego przypadku użycia i aplikacji.
Dodatkowe przykłady
Aby zobaczyć dodatkowe przykłady korzystania z uporządkowanych danych i ich generowania, zapoznaj się z listą przykładowych schematów i reakcji modelu w dokumentacji Google Cloud.
generować wartości typu enum jako dane wyjściowe.
Ten przykład pokazuje, jak używać schematu odpowiedzi w przypadku zadania polegającego na klasyfikacji. Model ma rozpoznać gatunek filmu na podstawie jego opisu. Wyjściem jest jedna wartość typu enum w formie tekstu, którą model wybiera z listy wartości zdefiniowanych w podstawionym schemacie odpowiedzi.
Aby wykonać to zadanie klasyfikacji uporządkowanej, musisz podczas inicjalizacji modelu podać odpowiednią funkcję responseMimeType
(w tym przykładzie text/x.enum
) oraz funkcję responseSchema
, której model ma używać.
Dowiedz się, jak wybrać model Gemini i opcjonalnie lokalizacjęodpowiednią do Twojego przypadku użycia i aplikacji.
Inne opcje kontrolowania generowania treści
- Dowiedz się więcej o projektowaniu promptów, aby móc wpływać na model w celu generowania wyników odpowiadających Twoim potrzebom.
- Skonfiguruj parametry modelu, aby kontrolować, jak model wygeneruje odpowiedź. Do tych parametrów należą: maksymalna liczba tokenów wyjściowych, temperatura, topK i topP.
- Użyj ustawień bezpieczeństwa, aby dostosować prawdopodobieństwo otrzymania odpowiedzi, które mogą być uznane za szkodliwe, w tym wypowiedzi szerzące nienawiść i treści o charakterze jednoznacznie seksualnym.
- Ustaw instrukcje systemowe, aby kierować działaniem modelu. Ta funkcja jest jak „wstęp”, który dodajesz przed udostępnieniem modelu w celu uzyskania dalszych instrukcji od użytkownika końcowego.
Prześlij opinię o swoich wrażeniach z korzystania z usługi Vertex AI in Firebase