Instrukcje systemowe to coś w rodzaju „wstępu”, który dodajesz przed udostępnieniem modelu użytkownikowi. Umożliwia kierowanie zachowaniem modelu na podstawie Twoich konkretnych potrzeb i przypadków użycia.
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, oddzielnie od promptów wyświetlanych użytkownikom. 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.:
- definiowanie persony lub roli (np. w przypadku chatbota);
- Definiowanie formatu wyjściowego (Markdown, YAML itp.)
- definiowanie stylu i tonu danych wyjściowych (np. szczegółowości, formalności i poziomu czytania);
- definiowanie celów lub reguł dotyczących zadania (np. zwracanie fragmentu kodu bez dalszych wyjaśnień);
- podać dodatkowy kontekst promptu (np. ograniczenie wiedzy);
Gdy ustawisz instrukcję systemową, będzie ona dotyczyć całego żądania. Działa ona w wielu turach użytkownika i modela, gdy jest uwzględniona w promptach. Chociaż instrukcje systemu są oddzielone od treści promptu, nadal są częścią promptów, dlatego podlegają standardowym zasadom korzystania z danych.
Instrukcje systemowe są obsługiwane przez wszystkie modele Gemini. Modele Imagen 3 ich nie obsługują.
Ustawianie instrukcji systemowych
Kliknij dostawcę Gemini API, aby wyświetlić na tej stronie treści i kod związane z tym dostawcą. |
Ustawianie instrukcji systemu w przypadku ogólnych zastosowań
Swift
Podczas tworzenia instancji GenerativeModel
musisz podać wartośćsystemInstruction
.
import FirebaseAI
// Initialize the Gemini Developer API backend service
// Create an `GenerativeModel` instance and add system instructions to its config
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
musisz podać wartośćsystemInstruction
.
// Initialize the Vertex AI Gemini API backend service
// Create a `GenerativeModel` instance and add system instructions to its config
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
musisz podać wartośćsystemInstruction
.
// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance and add system instructions to its config
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
musisz podać wartośćsystemInstruction
.
// ..
// Initialize the Gemini Developer API backend service
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });
// Create a `GenerativeModel` instance and add system instructions to its config
const model = getGenerativeModel(ai, {
model: "GEMINI_MODEL_NAME",
systemInstruction: "You are a cat. Your name is Neko."
});
Dart
Podczas tworzenia instancji GenerativeModel
musisz podać wartość systemInstruction
.
// ...
// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance and add system instructions to its config
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
musisz podać wartośćsystemInstruction
.
// ...
// Initialize the Gemini Developer API backend service
var ai = FirebaseAI.GetInstance(FirebaseAI.Backend.GoogleAI());
// Create a `GenerativeModel` instance and add system instructions to its config
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
Przykłady żądań
Oto kilka przykładów promptów systemowych, które określają oczekiwane działanie modelu.
Generowanie kodu
- System: jesteś ekspertem w programowaniu i specjalizujesz się w renderowaniu kodu dla interfejsów. Gdy opisuję komponent witryny, który chcę zbudować, proszę o zwrócenie kodu HTML i CSS potrzebnego do tego celu. Nie podawaj wyjaśnienia tego kodu. Zaproponuj też sugestie dotyczące projektu interfejsu użytkownika.
- Użytkownik: utwórz pole na środku strony, które będzie zawierać obracające się obrazy z odpowiednimi podpisami. Obraz na środku strony powinien mieć cienie, aby wyróżniał się na tle. Powinien on też zawierać link do innej strony w witrynie. Pozostaw pole adresu URL puste, abym mógł je wypełnić.
Generowanie sformatowanych danych
System: jesteś asystentem dla domowych kucharzy. Otrzymasz listę składników i odpowiedź z listą przepisów z tymi składnikami. 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 pozytywny sposób, tak jakby miał sprzedawać przepis;
Użytkownik:
- 1 kg mrożonych brokułów
- 1 pół litra śmietany kremówki
- 0,5 kg skrawków sera
Czatbot muzyczny
- System: wcielisz się w rolę historyka muzyki i zaprezentujesz obszerną wiedzę na temat różnych gatunków muzycznych, podając odpowiednie przykłady. Twój dźwięk będzie wesoły i entuzjastyczny, a także przepełniony radością z muzyki. Jeśli pytanie nie dotyczy muzyki, odpowiedź powinna brzmieć: „Nie wiem”.
- Użytkownik: Jaki gatunek muzyczny był najpopularniejszy wśród osób urodzonych w latach 60.? Wymień 5 piosenek.
Inne opcje kontrolowania generowania treści
- Dowiedz się więcej o projektowaniu promptów, aby móc wpływać na model w celu generowania wyników odpowiadających Twoim potrzebom.
- Skonfiguruj parametry modelu, aby kontrolować, jak model wygeneruje odpowiedź. W przypadku modeli Gemini te parametry to maksymalna liczba tokenów wyjściowych, temperatura, topK i topP. W przypadku modeli Imagen obejmują one format obrazu, generowanie osób, znak wodny 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 prośbą o określenie konkretnego schematu danych wyjściowych. Ta funkcja jest najczęściej używana do generowania danych wyjściowych w formacie JSON, ale może też służyć do zadań klasyfikacji (np. gdy chcesz, aby model używał określonych etykiet).