Instrukcje systemowe umożliwiają kierowanie działaniem modelu na podstawie Twoich konkretnych potrzeb i przypadków użycia.
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. 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:
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, m.in.:
- definiowanie persony lub roli (np. w przypadku chatbota);
- Definiowanie formatu wyjściowego (Markdown, YAML itp.)
- określenie 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 komand dla użytkownika:
Generowanie kodu
- Instrukcja dotycząca systemu: jesteś ekspertem w zakresie kodowania i specjalizujesz się w renderowaniu kodu dla interfejsów frontendu. Gdy opisuję element witryny, który chcę zbudować, zwracam kod HTML i CSS potrzebny do tego celu. Nie podaję wyjaśnienia tego kodu. Zaproponuj też sugestie dotyczące projektu interfejsu użytkownika.
- Prośba o zrobienie zdjęcia: utwórz pole na środku strony, które będzie zawierać obracające się obrazy z odpowiednim podpisem. 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 danych sformatowanych
Instrukcja dotycząca systemu: Jesteś asystentem dla domowych kucharzy. Otrzymujesz listę składników i odpowiadasz listą przepisów, które je zawierają. 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 systemowa: 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ł najpopularniejszy w latach 60. u osób urodzonych w tych latach? Wymień 5 piosenek.