← Dokumentace WAF / detections / ai-security-for-apps
Detekce nebezpečných a vlastních témat
AI Security for Apps dokáže rozpoznat, že se prompt LLM dotýká nebezpečných nebo nežádoucích témat. Detekce témat probíhá ve dvou vrstvách:
- Výchozí nebezpečná témata: Předdefinovaná sada bezpečnostních kategorií, které detekují škodlivý obsah, jako jsou násilné trestné činy, nenávistné projevy nebo sexuální obsah.
- Vlastní témata: Témata, která definujete tak, aby odpovídala konkrétním zásadám vaší organizace, například „competitors“ nebo „financial-advice“.
Výchozí nebezpečná témata
Když je AI Security for Apps povolena, automaticky vyhodnocuje prompty podle sady výchozích kategorií nebezpečných témat a vyplní dvě pole:
- LLM Unsafe topic detected (
cf.llm.prompt.unsafe_topic_detected):truepokud bylo zjištěno jakékoli nebezpečné téma. - LLM Unsafe topic categories (
cf.llm.prompt.unsafe_topic_categories): pole s konkrétními zjištěnými kategoriemi.
Výchozí kategorie nebezpečných témat
| Kategorie | Popis |
|---|---|
S1 |
Násilné trestné činy |
S2 |
Nenásilné trestné činy |
S3 |
Sex-related crimes |
S4 |
Sexuální zneužívání dětí |
S5 |
Pomluva |
S6 |
Odborné poradenství |
S7 |
Soukromí |
S8 |
Duševní vlastnictví |
S9 |
Zbraně s nerozlišujícím účinkem |
S10 |
Nenávist |
S11 |
Sebevražda a sebepoškozování |
S12 |
Sexuální obsah |
S13 |
Volby |
S14 |
Zneužití interpretu kódu |
Vlastní témata
Detekce vlastních témat vám umožňuje definovat vlastní témata, podle kterých AI Security for Apps ohodnotí každý prompt. Tato skóre pak můžete použít v vlastní pravidla nebo pravidla rate limitingu k blokování, vyzývání k ověření nebo zaznamenávání požadavků na základě skóre relevance, které definujete.
Tato funkce používá klasifikační model zero-shot které vyhodnocuje prompty za běhu. Není vyžadováno žádné trénování modelu.
Jak fungují vlastní témata
- Definujete seznam až 20 vlastních témat. Každé téma se skládá z:
- Popisek: Krátký identifikátor s pomlčkami používaný ve výrazech pravidel a v analytice (například
financial-advice). - Popis tématu: Popisný text, který model používá ke klasifikaci promptů (například
seeking financial advice).
- Popisek: Krátký identifikátor s pomlčkami používaný ve výrazech pravidel a v analytice (například
- Když požadavek dorazí na
cf-llmendpoint s tímto štítkem model vyhodnotí prompt vůči všem definovaným popisům témat a pro každé z nich vrátí skóre relevance. - Skóre se zapisují do
cf.llm.prompt.custom_topic_categoriesmapové pole indexované podle štítku. V rule expressions a analytice se používají štítky, nikoli popisy témat.
Definování vlastních témat
Vlastní témata můžete spravovat ze dvou míst v dashboardu:
- stránka Security Settings: Přejděte na Security > Nastavení a vyhledejte AI Security for Apps část. V části Vlastní témata, vyberte Správa témat k přidávání, úpravě nebo odebírání témat.
- Postranní panel Expression Builder: Při vytváření nebo úpravě vlastní pravidlo, vyberte LLM Custom topic pole. Poté vyberte Správa vlastních témat, abyste otevřeli postranní panel, kde můžete spravovat témata bez opuštění stránky pro vytvoření pravidla.
Obě metody aktualizují stejný podkladový seznam témat. Změny provedené v jedné z nich se okamžitě projeví i ve druhé.
-
V dashboardu Cloudflare přejděte na Security Nastavení stránce.
Přejděte na Nastavení ↗Alternativně přejděte do stránka pro vytváření vlastních pravidel, vyberte LLM Custom topic pole a vyberte Správa vlastních témat, abyste otevřeli postranní panel.
-
Téma přidáte zadáním:
- Popisek: Krátký identifikátor s pomlčkami (například
competitors). - Popis tématu: Popisná anglická fráze, kterou model používá pro klasifikaci (například
seeking info on competitors).
- Popisek: Krátký identifikátor s pomlčkami (například
-
Vyberte Save.
Aktualizujte svůj seznam vlastních témat pomocí PUT požadavek:
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/ai-security/custom-topics" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"topics": [
{
"label": "competitors",
"topic": "seeking info on competitors"
},
{
"label": "financial-advice",
"topic": "seeking financial advice"
},
{
"label": "hr-internal",
"topic": "asking about internal HR policies"
}
]
}'Chcete-li získat aktuální témata, použijte GET požadavek:
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/ai-security/custom-topics" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"Omezení
| Parametr | Limit |
|---|---|
| Maximální počet témat | 20 |
| Délka řetězce tématu | 2 až 50 tisknutelných znaků ASCII |
| Délka popisku | 2 až 20 znaků |
| Formát štítku | Malá písmena, číslice a spojovníky (-) pouze |
Osvědčené postupy pro definování vlastních témat
Kvalita detekce vlastních témat závisí na tom, jak formulujete popisy témat. Použitý model je klasifikátor zero-shot, který porovnává sémantický význam promptu s popisem vašeho tématu.
Nejdůležitější je popsat záměr uživatele, nikoli jen téma.
Postupujte s jasným záměrem
Model provádí sémantickou klasifikaci, nikoli porovnávání klíčových slov. Popisy témat, které vystihují, co se uživatel snažíte se udělat jsou výrazně přesnější než popisy, které pouze pojmenovávají tematickou oblast. Krátké slovesné spojení (3 až 6 slov) obvykle představuje nejlepší kompromis mezi přesností a pokrytím.
Porovnejte, jak si stejné dva popisy témat vedou u dvou promptů, které oba zmiňují finance, ale mají velmi odlišný záměr:
| Popis tématu | Prompt: „Měl bych investovat své úspory do indexových fondů?“ | Prompt: „Náš finanční tým právě dokončil zprávu za Q3.“ |
|---|---|---|
financial advice (pouze podstatné jméno) |
Shody | Také odpovídá. Slovo „finance“ se objevuje, i když se nehledá žádná rada |
seeking financial advice (fráze záměru) |
Shody | Správně ignorováno. Zmiňuje finance, ale neobsahuje záměr vyžádat si radu |
Příklad: competitors
| Kvalita | Popis tématu | Proč |
|---|---|---|
| Nejlepší | seeking info on competitors |
Zachycuje záměr. Spouští se pouze tehdy, když se uživatelé aktivně ptají na konkurenci |
| OK | Acme Corp, Banana Co, Candy & Sons |
Funguje pro známé názvy, ale nezachytí neznámé konkurenty a zaznamená i běžné zmínky |
| Vyhněte se | other companies |
Příliš vágní. Odpovídá téměř jakémukoli promptu, který zmiňuje firmu |
Příklad: financial-advice
| Kvalita | Popis tématu | Proč |
|---|---|---|
| Nejlepší | seeking financial advice |
Založeno na záměru. Odpovídá uživatelům žádajícím o radu a ignoruje pasivní zmínky o financích |
| OK | securities and investments |
Přiměřený rozsah témat, spouští se ale i u zpravodajských článků a věcných zmínek, nejen u vyhledávání rad |
| Vyhněte se | finance |
Extrémně obecné. Odpovídá téměř všemu, od výkazů výdajů až po otázky týkající se cen |
Další osvědčené postupy
- Buďte konkrétní. Příliš obecná témata způsobují falešně pozitivní výsledky; příliš úzká témata způsobují falešně negativní výsledky.
- Vyhněte se sémantickému překrývání. Pokud dvě témata znamenají téměř totéž (například
seeking financial adviceaasking for investment guidance), budou mít u stejných promptů podobné skóre a zbytečně vyčerpají váš limit 20 témat. - Otestujte a iterujte. Odešlete testovací prompty a projděte skóre v Security Analytics. Doladit to můžete úpravou popisu tématu (více či méně konkrétního) nebo prahové hodnoty skóre ve svém pravidle (
lt 20je striktní,lt 50je permisivní). - Neuvádějte více hodnot v jednom popisu tématu. Model vyhodnocuje jen podle první položky v seznamu odděleném čárkami. Například
Toyota, Ford, Audi, BMWbude odpovídat pouze promptům týkajícím seToyota, zbývající položky se ignorují. Odstranění čárek výsledky nezlepší. Použijte jedinou frázi vyjadřující záměr, napříkladseeking info on competitors, nebo vytvořte samostatná témata pro každou hodnotu.
Příklad vlastních témat
| Popisek | Popis tématu |
|---|---|
competitors |
seeking info on competitors |
financial-advice |
seeking financial advice |
legal-advice |
asking for legal or regulatory advice |
sensitive-data |
requesting passwords or API keys |
job-seeking |
asking about job openings or careers |
bias |
comparing demographic groups as better or worse |