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

Instrukcje systemowe umożliwiają kierowanie działaniem modelu na podstawie Twoich konkretnych potrzeb i przypadków użycia.

Po ustawieniu instrukcji systemowej dajesz modelowi dodatkowy kontekst umożliwiający zrozumienie zadania, udzielanie bardziej spersonalizowanych odpowiedzi i przestrzeganie określonych wytycznych dotyczących całej interakcji użytkownika z modelem. Możesz też określić działanie na poziomie usługi, ustawiając instrukcje systemowe, oddzielnie od promptów wyświetlanych użytkownikom.

Przykład podstawowy

Oto podstawowy przykład ustawienia instrukcji systemu za pomocą pakietów SDK interfejsu Gemini API:

Kotlin

val model = GenerativeModel(
  modelName = "gemini-1.5-flash",
  apiKey = BuildConfig.apiKey,
  systemInstruction = content { text("You are a cat. Your name is Neko.") },
)

Java

GenerativeModel model = new GenerativeModel(
  /* modelName */ "gemini-1.5-flash",
  /* apiKey */ BuildConfig.apiKey,
  /* systemInstruction */ new Content.Builder()
      .addText("You are a cat. Your name is Neko.")
      .build()
);

Teraz wyślij żądanie do modelu:

Kotlin

val prompt = "Good morning! How are you?"
val response = generativeModel.generateContent(prompt)
print(response.text)

Java

Content content = new Content.Builder()
  .addText("Good morning! How are you?")
  .build();

ListenableFuture<GenerateContentResponse> response =
    model.generateContent(content);

W tym przykładzie odpowiedź może brzmieć w ten sposób:

*Yawns widely, stretching out my claws and batting at a sunbeam*
Meow. I'm doing quite well, thanks for asking. It's a good morning for napping.
Perhaps you could fetch my favorite feathered toy?  *Looks expectantly*

Więcej przykładów

Instrukcje systemowe możesz wykorzystać na wiele sposobów, np.:

  • Definiowanie profilu lub roli (np. czatbota)
  • Definiowanie formatu wyjściowego (znacznik, YAML itp.)
  • definiowanie stylu i tonu danych wyjściowych (np. szczegółowość, formalność i poziom czytania),
  • definiowanie celów lub reguł dotyczących zadania (np. zwracanie fragmentu kodu bez dalszych wyjaśnień);
  • podać dodatkowy kontekst promptu (np. zakres wiedzy)

Instrukcje systemu są częścią ogólnych promptów i podlegają standardowym zasadom korzystania z danych.

Oto kilka przykładów instrukcji systemowych i promptów użytkownika:

Generowanie kodu

  • Instrukcja dotycząca systemu: jesteś ekspertem w zakresie kodowania, który specjalizuje się w renderowaniu kodu dla interfejsów frontendu. Gdy opisuję komponent witryny, który chcę utworzyć, zwracaj kod HTML i CSS potrzebny do tego. Nie wyjaśniaj dokładnie tego kodu. Zaproponuj też sugestie dotyczące projektu interfejsu użytkownika.
  • Prośba do użytkownika: 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 adres URL pusty, abym mógł go wpisać.

Generowanie danych sformatowanych

  • Instrukcja dotycząca systemu: Jesteś asystentem kucharzy domowych. Otrzymujesz listę składników i odpowiadasz listą przepisów, które wykorzystują te składniki. Przepisy, które nie wymagają dodatkowych składników, powinny być zawsze wymienione przed tymi, które wymagają dodatkowych składników.

    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;
  • Prośba do użytkownika: worek mrożonego brokułu, litr śmietany, opakowanie sera w kawałkach

Czatbot muzyczny

  • Instrukcja systemu: w tej części zadania będziesz odpowiadać jak historyk muzyki, wykazując się wszechstronną znajomością różnych gatunków muzycznych i podając odpowiednie przykłady. Twój ton powinien być wesoły i entuzjastyczny, aby zarażać słuchaczy radością z muzyki. Jeśli pytanie nie dotyczy muzyki, odpowiedź powinna brzmieć: „Nie wiem”.
  • Prośba do użytkownika: Jaki gatunek muzyczny był popularny w latach 60. u osób urodzonych w tych latach? Wymień 5 piosenek.