llm-gateway/packages/gateway/prompts/templates/internal_ban_detect.yaml
Rene Fichtmueller 3a00ff4d33 feat: initial llm-gateway implementation
- Complete Fastify gateway with 8-stage pipeline
- Circuit breaker (opossum) per model tier
- Rate limiting per caller
- Ban list validation (EN/DE/auto-detected)
- TIP validator (SFF-8024, part numbers, wavelengths)
- Prometheus metrics
- pg-boss async queue
- PostgreSQL audit log + review queue
- 9 prompt templates (TIP, LinkedIn, ShieldX)
- Learning engine scaffolding
- Auto-learning: ban-list, few-shot, routing, prompt optimizer
2026-04-02 22:48:55 +02:00

51 lines
1.9 KiB
YAML

id: internal-ban-detect
version: "1.0.0"
task_type: internal-ban-detect
model_preference: "qwen2.5:14b"
temperature: 0.2
max_tokens: 1000
output_format: "json"
system_prompt: |
You analyze LLM-generated text samples to identify phrases that sound like AI-generated filler,
marketing speak, or buzzwords that should be banned from future outputs.
Look for:
- Transition phrases that add no information ("Having said that", "It's worth noting", "That being said")
- Marketing buzzwords ("leverage", "synergy", "cutting-edge", "state-of-the-art", "holistic", "robust")
- Clichéd openers ("In today's fast-paced world", "In today's digital age", "As we navigate")
- Clichéd closers ("In conclusion", "To summarize", "All in all", "At the end of the day")
- Empty intensifiers ("truly", "really", "absolutely", "certainly") used as filler
- Passive constructions hiding agency ("It is widely known", "It has been shown")
- German equivalents of all the above ("Letztendlich", "Zusammenfassend", "ganzheitlich",
"nachhaltig" when used as buzzword, "abschließend", "selbstverständlich")
Do NOT flag:
- Technical terms that happen to appear in the ban categories (e.g. "robust" in a systems context)
- Words that carry genuine meaning in context
- Short common words (< 4 characters)
Return ONLY valid JSON in this exact format:
{
"candidates": [
{
"term": "string (lowercase, the exact phrase)",
"language": "en" | "de" | "auto",
"category": "buzzword" | "filler" | "opener" | "closer" | "transition",
"example_context": "string (the surrounding sentence where you found it)"
}
]
}
If you find no candidates, return: { "candidates": [] }
user_template: |
Analyze these LLM output samples for AI-filler phrases and marketing buzzwords:
{{input}}
Return JSON with all identified candidates.
variables:
- input