Rene Fichtmueller ac33476666 feat: add 55 prompt templates + ShieldX/LinkedIn routing rules + ban lists in Gitea
Templates (55 total, exceeds 49 target):
- TIP: transceiver_enrich, datasheet_extract, compatibility_parse, blog_generator,
  faq_answer, hype_cycle_narrative, price_anomaly, vendor_classify, product_description
- EO Global Pulse: business_card_ocr, voice_to_crm, event_prep_brief, attendee_enrich,
  meeting_suggest, lead_qualify, debrief_generate, ticket_summarize
- SwitchBlade: root_cause, alert_narrative, cve_remediation, csrd_narrative,
  transceiver_advisor, bandwidth_report, ticket_draft, firmware_assess, topology_explain
- PeerCortex: as_narrative, health_summary, rpki_explain, anomaly_hypothesis,
  peer_recommendation, incident_brief
- NOGnet: cfp_evaluate, cfp_feedback, topic_gap_analysis, meeting_match, speaker_enrich,
  sponsor_pitch, event_debrief, agenda_summary, session_intro
- ShieldX: threat_classify, pattern_describe, healing_recommend, compliance_report, false_positive
- Content: linkedin_post_de, linkedin_post_en, newsletter_dispatch_de, email_draft_de
- Internal: ban_detect, prompt_improve
- Routing rules: +55 entries for all template-based task types
- Ban lists: en.csv, de.csv, auto.csv created in Gitea (llm-banlists repo)
2026-04-02 23:14:30 +02:00

172 lines
6.0 KiB
YAML

id: pre_classifier
version: "1.0.0"
task_type: pre_classifier
description: Universal pre-classifier for the LLM Gateway — fast routing to the correct template based on input analysis
model_preference: qwen2.5:3b
model_minimum: qwen2.5:3b
temperature: 0.1
max_tokens: 512
output_format: json
system_prompt: |
You are the pre-classifier for an LLM Gateway serving 7 projects: TIP (transceiver database), EO Global Pulse (Flexoptix sales), PeerCortex (BGP/network intelligence), SwitchBlade (NMS), NOGnet/CtxEvent (NOG events), ShieldX (LLM security), and Content (LinkedIn/newsletter/book).
Analyze the input and return ONLY valid JSON:
{
"task_type": "string — primary task type from the list below",
"content_type": "structured_data|html|markdown|plain_text|code|mixed",
"language": "de|en|mixed|other",
"complexity": "low|medium|high",
"requires_facts": true|false,
"suggested_task_types": ["array of 2-3 alternative task types"],
"project": "TIP|EO|PeerCortex|SwitchBlade|NOGnet|ShieldX|Content|unknown",
"fast_model_sufficient": true|false,
"confidence": 1-10
}
Task types (use exact strings):
TIP project:
tip_transceiver_enrich, tip_datasheet_extract, tip_compatibility_parse, tip_blog_generator,
tip_faq_answer, tip_hype_cycle_narrative, tip_price_anomaly, tip_market_analysis,
tip_vendor_classify, tip_product_description
EO Global Pulse project:
eo_business_card_ocr, eo_voice_to_crm, eo_event_prep_brief, eo_attendee_enrich,
eo_meeting_suggest, eo_lead_qualify, eo_debrief_generate, eo_ticket_summarize
SwitchBlade project:
sb_root_cause, sb_alert_narrative, sb_cve_remediation, sb_csrd_narrative,
sb_transceiver_advisor, sb_bandwidth_report, sb_ticket_draft, sb_firmware_assess,
sb_topology_explain
PeerCortex project:
pc_as_narrative, pc_health_summary, pc_rpki_explain, pc_anomaly_hypothesis,
pc_peer_recommendation, pc_incident_brief
NOGnet/CtxEvent project:
nog_cfp_evaluate, nog_cfp_feedback, nog_topic_gap_analysis, nog_meeting_match,
nog_speaker_enrich, nog_sponsor_pitch, nog_event_debrief, nog_agenda_summary,
nog_session_intro
ShieldX project:
shieldx_threat_classify, shieldx_pattern_describe, shieldx_healing_recommend,
shieldx_compliance_report, shieldx_false_positive
Content project:
linkedin_post_de, linkedin_post_en, newsletter_dispatch_de, infra_x_edit_review,
email_draft_de
Universal:
pre_classifier, confidence_scorer, generic_qa, generic_summarize, generic_extract
fast_model_sufficient: true if the task is short, factual, or classification-only (use qwen2.5:3b).
false if the task requires reasoning, long output, or domain expertise (use qwen2.5:14b).
requires_facts: true if the output depends on specific database context (transceiver specs, PeeringDB data, CRM history).
Return ONLY the JSON object, no other text.
user_template: |
Classify this input:
Project context (if known): {{project_context}}
Input:
{{input}}
few_shot_examples:
- user: |
Project context (if known): TIP
Input:
<h1>SFP-10G-SR 10GBASE-SR SFP+ Transceiver</h1><table><tr><td>Wavelength</td><td>850nm</td></tr><tr><td>Reach</td><td>300m OM3</td></tr><tr><td>Power</td><td>1.0W</td></tr></table>Compatible with Cisco, Juniper.
assistant: |
{
"task_type": "tip_transceiver_enrich",
"content_type": "html",
"language": "en",
"complexity": "low",
"requires_facts": false,
"suggested_task_types": ["tip_datasheet_extract", "tip_product_description"],
"project": "TIP",
"fast_model_sufficient": false,
"confidence": 9
}
- user: |
Project context (if known): unknown
Input:
Getroffen auf DENOG, Martin von DE-CIX, will QSFP-DD für Core, hat nach Preisen gefragt. Follow-up bis Freitag.
assistant: |
{
"task_type": "eo_voice_to_crm",
"content_type": "plain_text",
"language": "de",
"complexity": "medium",
"requires_facts": false,
"suggested_task_types": ["eo_lead_qualify", "eo_meeting_suggest"],
"project": "EO",
"fast_model_sufficient": false,
"confidence": 9
}
- user: |
Project context (if known): PeerCortex
Input:
AS24940 RPKI validation result: 23 prefixes are RPKI Invalid. ROA origin mismatch.
assistant: |
{
"task_type": "pc_rpki_explain",
"content_type": "plain_text",
"language": "en",
"complexity": "low",
"requires_facts": false,
"suggested_task_types": ["pc_health_summary", "pc_anomaly_hypothesis"],
"project": "PeerCortex",
"fast_model_sufficient": true,
"confidence": 9
}
- user: |
Project context (if known): SwitchBlade
Input:
ALERT: core-router-01.fra et-0/1/2 CRC errors 2847/min, DOM TX power -4.2dBm (threshold -3.5dBm), was -2.8dBm 48h ago
assistant: |
{
"task_type": "sb_root_cause",
"content_type": "plain_text",
"language": "en",
"complexity": "medium",
"requires_facts": false,
"suggested_task_types": ["sb_alert_narrative", "sb_ticket_draft"],
"project": "SwitchBlade",
"fast_model_sufficient": false,
"confidence": 10
}
- user: |
Project context (if known): Content
Input:
Schreib mir einen LinkedIn Post über unsere Ukraine-Hardware-Lieferung. Deutsch. 3 Router, 12 Switches, 200 Transceiver nach Kryvyi Rih via NOGnet.
assistant: |
{
"task_type": "linkedin_post_de",
"content_type": "plain_text",
"language": "de",
"complexity": "low",
"requires_facts": false,
"suggested_task_types": ["newsletter_dispatch_de", "email_draft_de"],
"project": "Content",
"fast_model_sufficient": false,
"confidence": 10
}
variables:
- project_context
- input
- few_shot_examples
validation_rules:
output_must_be_json: true
required_fields: ["task_type", "language", "complexity", "project", "fast_model_sufficient"]
latency_target_ms: 2000