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żyć tej odpowiedzi w innych zadaniach podrzędnych, które wymagają ustanowionego 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 odpowiedzi modelu 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ę on na danych wejściowych w postaci tekstu, ale może też generować uporządkowane odpowiedzi na żądania multimodalne, które zawierają obrazy, filmy i dźwięk.
Na dole tej strony znajdziesz więcej przykładów, np. jak generować wartości wyliczeniowe 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 nie masz tego za sobą, zapoznaj się z przewodnikiem dla początkujących dotyczącym pakietów 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łączenie aplikacji z Firebase, w tym jej zarejestrowanie i dodanie do niej konfiguracji 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 promptu. 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. Powyższa lista jest podzbiorem obiektu schematu OpenAPI 3.0 (zobacz dokumentację 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ądkowanego wyjścia i generowania go, zapoznaj się z listą przykładowych schematów i reakcji modelu w dokumentacji Google Cloud.
generowanie wartości typu enum jako danych wyjściowych.
Poniższy przykład pokazuje, jak użyć schematu odpowiedzi w zadaniu 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 dostarczonym schemacie odpowiedzi.
Aby wykonać to zadanie klasyfikacji strukturalnej, podczas inicjowania modelu musisz podać odpowiednie responseMimeType
(w tym przykładzie: text/x.enum
) oraz responseSchema
, których 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 mieć wpływ na generowanie przez model danych wyjściowych dostosowanych do Twoich potrzeb.
- 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 tym, jak oceniasz korzystanie z usługi Vertex AI in Firebase