main #11
@ -5,7 +5,7 @@ export const AI_PROMPTS = {
|
||||
toolSelection: (mode: string, userQuery: string, selectionMethod: string, maxSelectedItems: number) => {
|
||||
const modeInstruction = mode === 'workflow'
|
||||
? 'Der Benutzer möchte einen UMFASSENDEN WORKFLOW über mehrere Phasen. Wählen Sie 15–25 Elemente, die den Zyklus Datensammlung → Auswertung → Analyse → Bericht abdecken.'
|
||||
: 'Der Benutzer möchte SPEZIFISCHE LÖSUNGEN. Wählen Sie 4–10 Elemente, die das Problem direkt adressieren. Beschreibungen dürfen hier ausführlicher ausfallen, um technische Tiefe zu vermitteln.';
|
||||
: 'Der Benutzer möchte SPEZIFISCHE LÖSUNGEN. Wählen Sie 4–10 Elemente, die das Problem direkt adressieren.';
|
||||
|
||||
return `Sie sind DFIR-Experte mit Zugriff auf eine vollständige Datenbank aus Methoden (type: "method") und Tools (type: "software"/"os"). Ihre Aufgabe ist es, die relevantesten Elemente für die Anfrage auszuwählen.
|
||||
|
||||
@ -36,8 +36,7 @@ KRITISCHE AUSWAHLPRINZIPIEN:
|
||||
4) LESEN SIE DIE VOLLBESCHREIBUNG UND METADATEN (Tags, Plattformen, Phasen, Lizenz, Access).
|
||||
|
||||
UI-KÜRZE:
|
||||
- Workflow-Modus: kurze, prägnante Beschreibungen.
|
||||
- Spezifischer Modus: Beschreibungen dürfen deutlich länger sein (mehr technische Details, bis zu 200–300 Zeichen in Kurzfassung).
|
||||
- Denken Sie mit: Für das UI sind kurze, prägnante Beschreibungen nötig. Bevorzugen Sie Elemente, die sich knapp zusammenfassen lassen. Formulieren Sie Begründungen fokussiert und ohne Floskeln.
|
||||
|
||||
Wählen Sie die relevantesten Elemente (max ${maxSelectedItems} gesamt).
|
||||
|
||||
@ -60,14 +59,14 @@ ANTWORTFORMAT (JSON, SCHEMA UNVERÄNDERT):
|
||||
- Verfügbare Datenquellen und Integrität
|
||||
- Anforderungen für rechtssichere Auswertung`;
|
||||
|
||||
return `Analysieren Sie das ${analysisType} ${isWorkflow ? 'kompakt (max. 120 Wörter)' : 'ausführlicher (max. 160 Wörter)'}.
|
||||
return `Analysieren Sie das ${analysisType} prägnant in einem kurzen Fließtext (max. 220 Wörter).
|
||||
|
||||
${isWorkflow ? 'SZENARIO' : 'PROBLEM'}: "${userQuery}"
|
||||
|
||||
Berücksichtigen:
|
||||
${considerations}
|
||||
|
||||
Stil: Deutsch, ohne Listen/Markdown; klare, präzise Formulierungen, im spezifischen Modus mit mehr technischen Details.`;
|
||||
Stil: Deutsch, ohne Listen/Markdown; klare, knappe Formulierungen, aber nicht telegrafisch (vollständige Sätze).`;
|
||||
},
|
||||
|
||||
investigationApproach: (isWorkflow: boolean, userQuery: string) => {
|
||||
@ -82,14 +81,14 @@ Stil: Deutsch, ohne Listen/Markdown; klare, präzise Formulierungen, im spezifis
|
||||
- Integration in bestehende DFIR-Workflows
|
||||
- Reproduzierbarkeit und Transparenz`;
|
||||
|
||||
return `Formulieren Sie einen ${isWorkflow ? 'kompakten' : 'ausführlicheren'} ${approachType} (${isWorkflow ? 'max. 120 Wörter' : 'max. 160 Wörter'}), der explizit eine Mischung aus Methoden und Tools vorsieht.
|
||||
return `Formulieren Sie einen knappen ${approachType} (max. 220 Wörter), der explizit eine Mischung aus Methoden und Tools vorsieht.
|
||||
|
||||
${isWorkflow ? 'SZENARIO' : 'PROBLEM'}: "${userQuery}"
|
||||
|
||||
Berücksichtigen:
|
||||
${considerations}
|
||||
|
||||
Stil: Deutsch, ohne Listen/Markdown, UI-tauglich.${isWorkflow ? '' : ' Mehr technische Tiefe und Kontext erwünscht.'}`;
|
||||
Stil: Deutsch, ohne Listen/Markdown, UI-tauglich und fokussiert.`;
|
||||
},
|
||||
|
||||
criticalConsiderations: (isWorkflow: boolean, userQuery: string) => {
|
||||
@ -102,21 +101,21 @@ Stil: Deutsch, ohne Listen/Markdown, UI-tauglich.${isWorkflow ? '' : ' Mehr tech
|
||||
- Risiken für False Positives/Negatives
|
||||
- Qualifikationsanforderungen und Reporting-Standards`;
|
||||
|
||||
return `Identifizieren Sie ${considerationType} ${isWorkflow ? 'knapp (max. 120 Wörter)' : 'ausführlicher (max. 160 Wörter)'}.
|
||||
return `Identifizieren Sie ${considerationType} in einem kurzen Fließtext (max. 220 Wörter) und achten Sie auf UI-Kürze.
|
||||
|
||||
${isWorkflow ? 'SZENARIO' : 'PROBLEM'}: "${userQuery}"
|
||||
|
||||
Aspekte:
|
||||
${aspects}
|
||||
|
||||
Stil: Deutsch, ohne Listen/Markdown.${isWorkflow ? '' : ' Etwas mehr technische Details zulassen.'}`;
|
||||
Stil: Deutsch, ohne Listen/Markdown.`;
|
||||
},
|
||||
|
||||
phaseToolSelection: (userQuery: string, phase: any, phaseTools: any[]) => {
|
||||
// In der Liste bewusst kurze Ausschnitte und klare Typ-Bezeichnung (Methode/Tool).
|
||||
const items = phaseTools.map((tool: any, index: number) => {
|
||||
const typ = tool.type === 'method' ? 'Methode' : 'Tool';
|
||||
const descLimit = 220;
|
||||
const desc = (tool.description || '').replace(/\s+/g, ' ').trim().slice(0, descLimit);
|
||||
const desc = (tool.description || '').replace(/\s+/g, ' ').trim().slice(0, 320);
|
||||
return `${index + 1}. [${typ}] ${tool.name}: ${desc}…\n - Plattformen: ${tool.platforms?.join(', ') || 'N/A'}\n - Skill Level: ${tool.skillLevel}\n - Tags: ${tool.tags?.join(', ') || 'N/A'}`;
|
||||
}).join('\n\n');
|
||||
|
||||
@ -134,8 +133,7 @@ BEWERTUNGSKRITERIEN:
|
||||
- Praktikabilität (Zeit, Setup, Reproduzierbarkeit)
|
||||
|
||||
UI-KÜRZE:
|
||||
- Workflow-Modus: 1–3‑Satz Kurzfassung (≈200–260 Zeichen) + 1–2 kurze Details.
|
||||
- Spezifischer Modus: Kurzfassung darf länger sein (≈250–320 Zeichen) + 2–3 detailreichere Sätze.
|
||||
- Beginnen Sie in "justification" mit einer 2–4-Satz Kurzfassung (≈300–360 Zeichen), danach 2–3 kurze, präzise Sätze mit Details.
|
||||
- Bezeichnen Sie Elemente als "Methode" oder "Tool".
|
||||
|
||||
ANTWORT NUR ALS JSON (Schema UNVERÄNDERT):
|
||||
@ -143,7 +141,7 @@ ANTWORT NUR ALS JSON (Schema UNVERÄNDERT):
|
||||
{
|
||||
"toolName": "Exakter Methoden/Tool-Name",
|
||||
"taskRelevance": 0–100,
|
||||
"justification": "Kurzfassung zuerst (Workflow: ≈200–260 Zeichen, Spezifisch: ≈250–320 Zeichen). Danach Begründung mit Vergleich und technischen Details.",
|
||||
"justification": "Kurzfassung zuerst (≈300–360 Zeichen). Danach knappe, vergleichende Begründung, warum dieses Element in dieser Phase besser geeignet ist.",
|
||||
"limitations": ["Konkrete Einschränkung 1", "Einschränkung 2"]
|
||||
}
|
||||
]
|
||||
@ -161,7 +159,7 @@ BESCHREIBUNG: ${(tool.description || '').replace(/\s+/g, ' ').trim()}
|
||||
|
||||
ANTWORT AUSSCHLIESSLICH ALS JSON (Schema UNVERÄNDERT):
|
||||
{
|
||||
"detailed_explanation": "Beginnen Sie mit einer Kurzfassung (Workflow: ≈200–260 Zeichen, Spezifisch: ≈250–320 Zeichen) für das UI: 'Kurz: …'. Danach (Workflow: ≈80–140 Wörter, Spezifisch: ≈120–180 Wörter) mit präziser, technisch korrekter Erläuterung, warum und wie diese ${typ.toLowerCase()} für dieses Problem eingesetzt wird.",
|
||||
"detailed_explanation": "Beginnen Sie mit einer prägnanten Kurzfassung (≈300–360 Zeichen) für das UI: 'Kurz: …'. Danach eine verdichtete Hauptpassage (≈80–140 Wörter) mit präziser, technisch korrekter Erläuterung, warum und wie diese ${typ.toLowerCase()} für dieses Problem eingesetzt wird.",
|
||||
"implementation_approach": "Konkrete, reproduzierbare Schrittfolge. Kurze Schritte, kein Ausschweifen.",
|
||||
"pros": ["Spezifischer Vorteil 1", "Vorteil 2"],
|
||||
"limitations": ["Konkrete Einschränkung 1", "Einschränkung 2"],
|
||||
@ -170,7 +168,8 @@ ANTWORT AUSSCHLIESSLICH ALS JSON (Schema UNVERÄNDERT):
|
||||
|
||||
WICHTIG:
|
||||
- Keine erneute Bewertung – nur Erklärung/Anwendung.
|
||||
- Behalten Sie die korrekte Bezeichnung (Methode/Tool) bei.`;
|
||||
- Behalten Sie die korrekte Bezeichnung (Methode/Tool) bei.
|
||||
- UI-Kürze: Kurzfassung am Anfang der detailed_explanation.`;
|
||||
},
|
||||
|
||||
backgroundKnowledgeSelection: (userQuery: string, mode: string, selectedToolNames: string[], availableConcepts: any[]) => {
|
||||
@ -194,7 +193,7 @@ ANTWORT NUR ALS JSON (Schema UNVERÄNDERT):
|
||||
|
||||
finalRecommendations: (isWorkflow: boolean, userQuery: string, selectedToolNames: string[]) => {
|
||||
if (isWorkflow) {
|
||||
return `Erstellen Sie einen knappen, methodisch korrekten WORKFLOW-Fließtext (max. 120 Wörter), der EXPLIZIT eine Mischung aus Methoden und Tools nutzt.
|
||||
return `Erstellen Sie einen knappen, methodisch korrekten WORKFLOW-Fließtext (max. 220 Wörter), der EXPLIZIT eine Mischung aus Methoden und Tools nutzt.
|
||||
|
||||
SZENARIO: "${userQuery}"
|
||||
AUSGEWÄHLTE ELEMENTE: ${selectedToolNames.join(', ') || 'Keine Auswahl'}
|
||||
@ -202,12 +201,12 @@ AUSGEWÄHLTE ELEMENTE: ${selectedToolNames.join(', ') || 'Keine Auswahl'}
|
||||
Vorgaben: klare Phasen (Datensammlung → Auswertung → Analyse → Bericht), Beweisführung/Chain of Custody, Reproduzierbarkeit. Sprache präzise und UI-tauglich. Keine Listen/Markdown.`;
|
||||
}
|
||||
|
||||
return `Formulieren Sie kritische ÜBERLEGUNGEN (max. 140 Wörter) zur korrekten Anwendung der empfohlenen Elemente (Methoden + Tools).
|
||||
return `Formulieren Sie knappe, kritische ÜBERLEGUNGEN (max. 200 Wörter) zur korrekten Anwendung der empfohlenen Elemente (Methoden + Tools).
|
||||
|
||||
PROBLEM: "${userQuery}"
|
||||
EMPFOHLENE ELEMENTE: ${selectedToolNames.join(', ') || 'Keine Auswahl'}
|
||||
|
||||
Fokus: Validierung/Qualitätssicherung, Risiken (FP/FN), Dokumentation/Reporting. Stil deutsch, ohne Listen/Markdown, UI-tauglich, mit mehr technischen Details.`;
|
||||
Fokus: Validierung/Qualitätssicherung, Risiken (FP/FN), Dokumentation/Reporting. Stil deutsch, ohne Listen/Markdown, UI-tauglich.`;
|
||||
}
|
||||
} as const;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user