Instrukcje systemowe to rodzaj „wstępu”, który 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. 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 usługi, 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 wykorzystać 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, 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. daty odcięcia wiedzy);
Gdy instrukcja systemowa jest ustawiona, dotyczy całej prośby. Działa w przypadku wielu interakcji użytkownika i modelu, jeśli jest 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 specyficzne dla tego dostawcy. |
LiveModel.
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 dla 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ą 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 dziedzinie programowania, który specjalizuje się w renderowaniu kodu na potrzeby interfejsów frontendowych. Gdy opiszę komponent strony internetowej, którą chcę utworzyć, podaj kod HTML i CSS potrzebny do tego celu. Nie podawaj wyjaśnień do 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ć. Powinien on też prowadzić do innej strony witryny. Pozostaw adres URL pusty, abym mógł go wpisać.
Czatbot muzyczny
Instrukcja systemu:
Odpowiadaj 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, a Ty będziesz szerzyć radość z muzyki. Jeśli pytanie nie dotyczy muzyki, odpowiedź powinna brzmieć: „Nie mam na ten temat informacji”.Prompt użytkownika:
Jeśli ktoś urodził się w latach 60., jaki był najpopularniejszy gatunek muzyczny w tym czasie? Wymień 5 utworów w punktach.
Generowanie sformatowanych danych
Instrukcja systemowa:
jesteś asystentem dla osób gotujących w domu. 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 wymienione przed tymi, które ich wymagają.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
- 0,5 kg skrawkó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 określić, jak model ma generować odpowiedź. W przypadku modeli Gemini te parametry obejmują maksymalną liczbę tokenów wyjściowych, temperaturę, Top-K i Top-P. W przypadku Imagen obejmują one m.in. współczynnik proporcji, generowanie osób i dodawanie znaków wodnych.
- 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 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).