🎯 Definicja
SPICE Prompt to framework projektowania zapytań (prompt engineering) zorientowany na zadania biznesowe, analityczne i operacyjne. Ułatwia on precyzyjne przekazanie intencji i szczegółowych wymagań biznesowych do modeli językowych (LLM). Nazwa pochodzi od słów:
- Situation (Sytuacja i tło)
- Perspective (Perspektywa, rola)
- Input (Dane wejściowe)
- Constraints (Ograniczenia i zakazy)
- Expectations (Oczekiwania dotyczące formatu i tonu odpowiedzi)
🔑 Kluczowe punkty
- Biznesowe zorientowanie: Szczególnie przydatny przy analizie wymagań, tworzeniu dokumentacji lub generowaniu raportów biznesowych.
- Wydzielenie danych (Input): Wyraźnie rozgranicza dane (np. tabele, fragmenty tekstu) od samych instrukcji działania.
- Bezpieczeństwo (Constraints): Pomaga w zdefiniowaniu reguł chroniących przed ujawnieniem poufnych danych lub zbytnim uogólnieniem.
📚 Szczegółowe wyjaśnienie
Elementy frameworku SPICE to:
- Situation (S): Nakreślenie tła biznesowego. Dlaczego wykonujemy to zadanie? (np. “Przygotowujemy się do wdrożenia nowej dyrektywy unijnej dotyczącej ochrony danych”).
- Perspective (P): Rola, jaką ma przyjąć model. (np. “Działasz jako doświadczony Oficer Ochrony Danych (DPO) w firmie FinTech”).
- Input (I): Surowe dane, dokumenty, tabele lub fragmenty tekstu, na których model ma pracować. (np. “Przeanalizuj poniższy fragment regulaminu świadczenia usług: [tekst]”).
- Constraints (C): Ograniczenia techniczne i merytoryczne. (np. “Używaj tylko pojęć zdefiniowanych w RODO, nie wymyślaj własnych interpretacji, odpowiedź nie może przekraczać 200 słów”).
- Expectations (E): Co dokładnie chcemy otrzymać jako wynik i w jakiej formie. (np. “Wygeneruj tabelę z dwiema kolumnami: Zapis regulaminu | Potencjalne ryzyko”).
💡 Przykład zastosowania
Prompt napisany zgodnie z frameworkiem SPICE:
[S] Przygotowujemy strategię migracji naszej platformy raportowej z SAS do SQL.
[P] Działasz jako analityk systemowy z dużym doświadczeniem w inżynierii danych.
[I] Wejściem jest poniższy fragment kodu makra SAS:
%macro migrate(input_table);
data output_data;
set &input_table;
if age > 18 then segment = 'Adult';
else segment = 'Minor';
run;
%mend;
[C] Nie używaj w odpowiedzi kodu w językach innych niż standardowy ANSI SQL. Wyjaśnienie ogranicz do minimum.
[E] Chcę otrzymać odpowiadający temu makru kod instrukcji SELECT z klauzulą CASE w formacie kodu Markdown.