Instrukcje systemowe to rodzaj „wprowadzenia”, które dodajesz, zanim model otrzyma dalsze instrukcje od użytkownika. Umożliwia to sterowanie działaniem modelu na podstawie konkretnych potrzeb i przypadków użycia.
Instrukcje systemowe są obsługiwane przez wszystkie modele Gemini.
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 podać rolę lub personę, informacje kontekstowe i instrukcje formatowania.
Instrukcje systemowe możesz wykorzystywać na wiele sposobów, m.in.:
- Określanie profilu lub roli (np. w przypadku chatbota)
- Określanie formatu wyjściowego (Markdown, YAML itp.)
- Określanie stylu i tonu danych wyjściowych (np. szczegółowości, stopnia formalności i docelowego poziomu czytania)
- określanie celów lub reguł zadania (np. zwracanie fragmentu kodu bez dalszych wyjaśnień);
- Podanie dodatkowego kontekstu prompta (np. granicy wiedzy)
Gdy instrukcja systemowa jest ustawiona, dotyczy całego żądania. Działa w przypadku wielu interakcji użytkownika i modelu, jeśli zostanie uwzględniony w prompcie. Instrukcje systemowe są oddzielone od treści promptu, ale nadal stanowią część ogólnych promptów, dlatego podlegają standardowym zasadom wykorzystywania danych.
Ustawianie instrukcji systemowych
|
Kliknij Gemini API dostawcę, aby wyświetlić na tej stronie treści i kod dostawcy. |
LiveModel.
Ustawianie instrukcji systemowych w przypadku ogólnych zastosowań
Swift
Podczas tworzenia instancji GenerativeModel określasz
systemInstruction.
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
Podczas tworzenia instancji GenerativeModel określasz
systemInstruction.
// 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
Podczas tworzenia instancji GenerativeModel określasz
systemInstruction.
// 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
Podczas tworzenia instancji GenerativeModel określasz
systemInstruction.
// ...
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
Podczas tworzenia instancji GenerativeModel określasz systemInstruction.
// ...
// 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
Podczas tworzenia instancji GenerativeModel określasz
systemInstruction.
// ...
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.")
);
Ustaw instrukcje systemowe dla Gemini Live API
Swift
Podczas tworzenia instancji LiveModel określasz
systemInstruction.
// ...
// 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
Podczas tworzenia instancji LiveModel określasz
systemInstruction.
// ...
// 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
Podczas tworzenia instancji LiveModel określasz
systemInstruction.
// ...
// 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
Podczas tworzenia instancji LiveGenerativeModel określasz
systemInstruction.
// ...
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
Podczas tworzenia instancji LiveGenerativeModel określasz systemInstruction.
// ...
// 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
Podczas tworzenia instancji LiveModel określasz
systemInstruction.
// ...
// 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ą określić oczekiwane zachowanie modelu. W niektórych przykładach znajdziesz też przykładowy prompt, w przypadku którego instrukcja systemowa byłaby przydatna.
Generowanie kodu
Instrukcja systemowa:
jesteś ekspertem w zakresie programowania, który specjalizuje się w renderowaniu kodu interfejsów frontendowych. Gdy opiszę komponent witryny, którą chcę utworzyć, podaj kod HTML i CSS potrzebny do tego celu. Nie wyjaśniaj tego kodu. Zaproponuj też kilka rozwiązań dotyczących projektu interfejsu.Prompt użytkownika:
Utwórz na środku strony pole zawierające rotacyjnie wyświetlane obrazy z podpisami. Obraz na środku strony powinien mieć cień, aby się wyróżniać. Powinna ona też zawierać link do innej strony w witrynie. Pozostaw adres URL pusty, abym mógł go wypełnić.
Czatbot muzyczny
Instrukcja dla systemu:
Odpowiadaj jako historyk muzyki, wykazując się wszechstronną wiedzą z różnych gatunków muzycznych i podając odpowiednie przykłady. Twój ton będzie optymistyczny i entuzjastyczny, a Ty będziesz szerzyć radość z muzyki. Jeśli pytanie nie dotyczy muzyki, odpowiedź powinna brzmieć: „Nie mam na to odpowiedzi”.Prompt użytkownika:
Jaki był najpopularniejszy gatunek muzyczny 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 wykorzystywane. Przepisy, które nie wymagają dodatkowych składników, powinny być zawsze wymienione przed tymi, które ich potrzebują.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 pozytywnym tonie, zachęcający do jego wypróbowania;
Prompt użytkownika:
- 0,5 kg mrożonych brokułów
- 1 szklanka śmietany kremówki
- 1-funtowe opakowanie końcówek i kawałków sera
Inne opcje kontrolowania generowania 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ć 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 wyjściowy. Ta funkcja jest najczęściej używana podczas generowania danych wyjściowych w formacie 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).