Użyj instrukcji systemowych w celu sterowania działaniem modelu

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).