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.
Wprowadzenie do instrukcji systemowych
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 uwzględnić 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. zakres wiedzy)
Gdy instrukcja systemu jest ustawiona, dotyczy ona całego żądania. Działa ona w wielu turach użytkownika i modela, gdy jest uwzględniona w promptach. Chociaż instrukcje systemowe są oddzielone od treści promptu, nadal są częścią promptów, dlatego podlegają standardowym zasadom dotyczącym wykorzystania danych.
Przykłady kodu
Ustawianie instrukcji systemowych jest obsługiwane przez wszystkie modele Gemini, z wyjątkiem modeli Gemini 1.0. Modele Imagen 3 nie obsługują tego formatu.
Przykłady promptów
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 front-end. 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 danych sformatowanych
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 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;
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 będzie rozprzestrzeniać radość 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 promptem, aby określić konkretny schemat wyjściowy. Ta funkcja jest najczęściej używana do generowania danych wyjściowych w formacie JSON, ale można jej też używać do zadań klasyfikacji (np. gdy chcesz, aby model używał określonych etykiet).