Instrukcje systemowe są jak „preambuła”, którą dodajesz, zanim model zostanie poddany dalszym instrukcjom od użytkownika. Pozwalają one sterować zachowaniem modelu na podstawie konkretnych potrzeb i przypadków użycia.
Instrukcje systemowe są obsługiwane przez wszystkie Gemini modele. Nie są one obsługiwane przez modele Imagen.
Przejdź do przykładowych fragmentów kodu
Konfigurując instrukcję systemową, dajesz modelowi dodatkowy kontekst ułatwiający zrozumienie zadania, udostępniasz bardziej dostosowane odpowiedzi i stosujesz się do konkretnych wytycznych dotyczących pełnej interakcji użytkownika z modelem. W instrukcjach systemowych możesz określić zachowanie na poziomie produktu, niezależnie od promptów podawanych przez użytkowników. Możesz na przykład uwzględnić takie elementy jak rola lub persona, informacje kontekstowe i instrukcje formatowania.
Instrukcje systemowe możesz wykorzystywać na wiele sposobów, m.in.:
- definiowanie persony lub roli (np. w przypadku czatbota);
- definiowanie formatu wyjściowego (Markdown, YAML itp.);
- definiowanie stylu i tonu danych wyjściowych (np. szczegółowość, formalność i docelowy poziom czytania);
- definiowanie celów lub reguł zadania (np. zwracanie fragmentu kodu bez dodatkowych wyjaśnień);
- dostarczanie dodatkowego kontekstu do promptu (np. ograniczenie wiedzy do określonego okresu).
Gdy ustawisz instrukcję systemową, będzie ona stosowana do całego żądania. Jeśli instrukcja systemowa jest zawarta w prompcie, działa ona w przypadku wielu interakcji użytkownika i modelu. Chociaż instrukcje systemowe są oddzielone od treści promptu, nadal stanowią część ogólnych promptów i dlatego podlegają standardowym zasadom dotyczącym wykorzystywania danych.
Ustawianie instrukcji systemowych
|
Kliknij dostawcę Gemini API, aby wyświetlić na tej stronie treści i kod specyficzne dla dostawcy. |
Ustawianie instrukcji systemowych w typowych przypadkach użycia
Swift
Określasz
systemInstruction
podczas tworzenia instancji GenerativeModel.
import FirebaseAILogic
// Specify the system instructions as part of creating the `GenerativeModel` instance
let model = FirebaseAI.firebaseAI(backend: .googleAI()).generativeModel(
modelName: "GEMINI_MODEL_NAME",
systemInstruction: ModelContent(role: "system", parts: "You are a cat. Your name is Neko.")
)
Kotlin
Określasz
systemInstruction
podczas tworzenia instancji GenerativeModel.
// Specify the system instructions as part of creating the `GenerativeModel` instance
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
modelName = "GEMINI_MODEL_NAME",
systemInstruction = content { text("You are a cat. Your name is Neko.") }
)
Java
Określasz
systemInstruction
podczas tworzenia instancji GenerativeModel.
// Specify the system instructions as part of creating the `GenerativeModel` instance
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
.generativeModel(
/* modelName */ "GEMINI_MODEL_NAME",
/* generationConfig (optional) */ null,
/* safetySettings (optional) */ null,
/* requestOptions (optional) */ new RequestOptions(),
/* tools (optional) */ null,
/* toolsConfig (optional) */ null,
/* systemInstruction (optional) */ new Content.Builder().addText("You are a cat. Your name is Neko.").build()
);
GenerativeModelFutures model = GenerativeModelFutures.from(ai);
Web
Określasz
systemInstruction
podczas tworzenia instancji GenerativeModel.
// ...
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Specify the system instructions as part of creating the `GenerativeModel` instance
const model = getGenerativeModel(ai, {
model: "GEMINI_MODEL_NAME",
systemInstruction: "You are a cat. Your name is Neko."
});
Dart
Określasz
systemInstruction
podczas tworzenia instancji GenerativeModel.
// ...
// Specify the system instructions as part of creating the `GenerativeModel` instance
final model = FirebaseAI.googleAI().generativeModel(
model: 'GEMINI_MODEL_NAME',
systemInstruction: Content.system('You are a cat. Your name is Neko.'),
);
// ...
Unity
Określasz
systemInstruction
podczas tworzenia instancji GenerativeModel.
// ...
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());
// Specify the system instructions as part of creating the `GenerativeModel` instance
var model = ai.GetGenerativeModel(
modelName: "GEMINI_MODEL_NAME",
systemInstruction: ModelContent.Text("You are a cat. Your name is Neko.")
);
Ustawianie instrukcji systemowych w Gemini Live API
Swift
Określasz
systemInstruction
podczas tworzenia instancji LiveModel.
// ...
// Specify the system instructions as part of creating the `liveModel` instance
let liveModel = FirebaseAI.firebaseAI(backend: .googleAI()).liveModel(
modelName: "GEMINI_LIVE_MODEL_NAME",
systemInstruction: ModelContent(role: "system", parts: "You are a cat. Your name is Neko."),
// ...
)
// ...
Kotlin
Określasz
systemInstruction
podczas tworzenia instancji LiveModel.
// ...
// Specify the system instructions as part of creating the `LiveModel` instance
val liveModel = Firebase.ai(backend = GenerativeBackend.googleAI()).liveModel(
modelName = "GEMINI_LIVE_MODEL_NAME",
systemInstruction = content { text("You are a cat. Your name is Neko.") },
// ...
)
// ...
Java
Określasz
systemInstruction
podczas tworzenia instancji LiveModel.
// ...
// Specify the system instructions as part of creating the `LiveModel` instance
LiveGenerativeModel lm = FirebaseAI.getInstance(GenerativeBackend.googleAI()).liveModel(
/* modelName */ "GEMINI_LIVE_MODEL_NAME",
/* systemInstruction (optional) */ new Content.Builder().addText("You are a cat. Your name is Neko.").build()
// ...
);
LiveModelFutures liveModel = LiveModelFutures.from(lm);
// ...
Web
Parametr
systemInstruction
określasz podczas tworzenia instancji LiveGenerativeModel.
// ...
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Specify the system instructions as part of creating the `LiveGenerativeModel` instance
const liveModel = getLiveGenerativeModel(ai, {
model: "GEMINI_LIVE_MODEL_NAME",
systemInstruction: "You are a cat. Your name is Neko.",
// ...
});
// ...
Dart
Parametr
systemInstruction
określasz podczas tworzenia instancji LiveGenerativeModel.
// ...
// Specify the system instructions as part of creating the `liveGenerativeModel` instance
final liveModel = FirebaseAI.googleAI().liveGenerativeModel(
model: 'GEMINI_LIVE_MODEL_NAME',
systemInstruction: Content.system('You are a cat. Your name is Neko.'),
// ...
);
// ...
Unity
Określasz
systemInstruction
podczas tworzenia instancji LiveModel.
// ...
// Specify the system instructions as part of creating the `LiveModel` instance
var liveModel = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI()).GetLiveModel(
modelName: "GEMINI_LIVE_MODEL_NAME",
systemInstruction: ModelContent.Text("You are a cat. Your name is Neko."),
// ...
);
// ...
Przykłady instrukcji systemowych
Oto kilka przykładów instrukcji systemowych, które pomagają sterować oczekiwanym zachowaniem modelu. Niektóre przykłady zawierają też przykładowy prompt, w przypadku którego instrukcja systemowa byłaby przydatna.
Generowanie kodu
Instrukcja systemowa:
Jesteś ekspertem w dziedzinie kodowania, który specjalizuje się w renderowaniu kodu na potrzeby interfejsów frontendowych. Gdy opiszę komponent witryny, którą chcę utworzyć, zwróć kod HTML i CSS potrzebny do tego. Nie podawaj wyjaśnień do tego kodu. Zaproponuj też kilka sugestii dotyczących projektu interfejsu.Prompt użytkownika:
Utwórz pole na środku strony, które będzie zawierać obracający się wybór obrazów z podpisami. Obraz na środku strony powinien mieć cień, aby się wyróżniał. Powinien też zawierać link do innej strony witryny. Pozostaw pole URL-a puste, abym mógł je wypełnić.
Czatbot muzyczny
Instrukcja systemowa:
Będziesz odpowiadać jako historyk muzyki, wykazując się wszechstronną wiedzą na temat różnych gatunków muzycznych i podając odpowiednie przykłady. Twój ton będzie optymistyczny i entuzjastyczny, szerząc radość z muzyki. Jeśli pytanie nie będzie dotyczyć muzyki, odpowiedź powinna brzmieć: „To przekracza moją wiedzę”.Prompt użytkownika:
Jaki gatunek muzyki był najpopularniejszy, gdy ktoś urodził się w latach 60.? Wymień 5 utworów w punktach.
Generowanie sformatowanych danych
Instrukcja systemowa:
Jesteś asystentem dla domowych kucharzy. Otrzymujesz listę składników i odpowiadasz listą przepisów, w których są one używane. Przepisy, które nie wymagają dodatkowych składników, powinny być zawsze wymieniane przed tymi, które ich potrzebują.Twoja odpowiedź musi być obiektem JSON zawierającym 3 przepisy. Obiekt przepisu ma ten schemat:
- name: nazwa przepisu
- usedIngredients: składniki w przepisie, które zostały podane na liście
- otherIngredients: składniki w przepisie, które nie zostały podane na liście (pomijane, jeśli nie ma innych składników)
- description: krótki opis przepisu, napisany w sposób zachęcający do jego wypróbowania
Prompt użytkownika:
- 0,5 kg mrożonych brokułów
- 0,5 l śmietany kremówki
- 0,5 kg sera w kawałkach
Inne opcje sterowania generowaniem treści
- Dowiedz się więcej o projektowaniu promptów aby wpływać na model i generować dane wyjściowe dostosowane do Twoich potrzeb.
- Skonfiguruj parametry modelu , aby określić, jak model ma generować odpowiedź. W przypadku modeli Gemini te parametry to m.in. maksymalna liczba tokenów wyjściowych, temperatura, topK i topP. W przypadku modeli Imagen są to m.in. proporcje obrazu, generowanie osób, dodawanie znaków wodnych itp.
- Użyj ustawień bezpieczeństwa , aby dostosować prawdopodobieństwo otrzymania odpowiedzi, które mogą być uznane za szkodliwe, w tym zawierające wypowiedzi szerzące nienawiść i treści o charakterze jednoznacznie seksualnym.
- Przekaż schemat odpowiedzi wraz z promptem, aby określić konkretny schemat danych wyjściowych. Ta funkcja jest najczęściej używana podczas generowania danych wyjściowych w formacie JSON, ale można jej też używać do zadań klasyfikacji (np. gdy chcesz, aby model używał określonych etykiet lub tagów).