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.