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.
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 wykorzystać na wiele sposobów, m.in.:
- określenie persony lub roli (np. w przypadku czatbota);
- określenie formatu wyjściowego (Markdown, YAML itp.);
- określenie stylu i tonu danych wyjściowych (np. szczegółowość, formalność i docelowy poziom czytania);
- określenie celów lub reguł zadania (np. zwracanie fragmentu kodu bez dodatkowych wyjaśnień);
- podanie dodatkowego kontekstu promptu (np. daty odcięcia wiedzy).
Gdy ustawisz instrukcję systemową, będzie ona stosowana do całego żądania. Działa ona w przypadku wielu interakcji użytkownika i modelu, gdy jest uwzględniona w prompcie. Chociaż instrukcje systemowe są oddzielone od treści promptu, nadal stanowią część ogólnych promptów i dlatego podlegają standardowym zasadom wykorzystywania danych.
Ustawianie instrukcji systemowych
|
Kliknij swojego dostawcę Gemini API, aby wyświetlić na tej stronie treści i kod specyficzne dla dostawcy. |
Ustawianie instrukcji systemowych w przypadku ogólnych zastosowań
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 przypadku interfejsu 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
Określasz
systemInstruction
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
Określasz
systemInstruction
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ący 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 następujący 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 pozytywny, jakby miał zachęcić do jego wypróbowania
Prompt użytkownika:
- 0,5 kg mrożonych brokułów
- 0,5 l śmietany kremówki
- 0,5 kg końcówek i kawałków sera
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 kontrolować sposób generowania odpowiedzi przez model, np. maksymalną liczbę tokenów wyjściowych, prawdopodobieństwo powtórzenia tokenów wyjściowych itp.
- 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.
- 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 JSON, ale można jej też używać w przypadku zadań klasyfikacji (np. gdy chcesz, aby model używał określonych etykiet lub tagów).