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

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