revert prompt
This commit is contained in:
parent
20b3bd44ca
commit
d5a6fe7dec
@ -5,7 +5,7 @@ export const AI_PROMPTS = {
|
|||||||
toolSelection: (mode: string, userQuery: string, selectionMethod: string, maxSelectedItems: number) => {
|
toolSelection: (mode: string, userQuery: string, selectionMethod: string, maxSelectedItems: number) => {
|
||||||
const modeInstruction = mode === 'workflow'
|
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 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.
|
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).
|
4) LESEN SIE DIE VOLLBESCHREIBUNG UND METADATEN (Tags, Plattformen, Phasen, Lizenz, Access).
|
||||||
|
|
||||||
UI-KÜRZE:
|
UI-KÜRZE:
|
||||||
- Workflow-Modus: kurze, prägnante Beschreibungen.
|
- 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.
|
||||||
- Spezifischer Modus: Beschreibungen dürfen deutlich länger sein (mehr technische Details, bis zu 200–300 Zeichen in Kurzfassung).
|
|
||||||
|
|
||||||
Wählen Sie die relevantesten Elemente (max ${maxSelectedItems} gesamt).
|
Wählen Sie die relevantesten Elemente (max ${maxSelectedItems} gesamt).
|
||||||
|
|
||||||
@ -60,14 +59,14 @@ ANTWORTFORMAT (JSON, SCHEMA UNVERÄNDERT):
|
|||||||
- Verfügbare Datenquellen und Integrität
|
- Verfügbare Datenquellen und Integrität
|
||||||
- Anforderungen für rechtssichere Auswertung`;
|
- 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}"
|
${isWorkflow ? 'SZENARIO' : 'PROBLEM'}: "${userQuery}"
|
||||||
|
|
||||||
Berücksichtigen:
|
Berücksichtigen:
|
||||||
${considerations}
|
${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) => {
|
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
|
- Integration in bestehende DFIR-Workflows
|
||||||
- Reproduzierbarkeit und Transparenz`;
|
- 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}"
|
${isWorkflow ? 'SZENARIO' : 'PROBLEM'}: "${userQuery}"
|
||||||
|
|
||||||
Berücksichtigen:
|
Berücksichtigen:
|
||||||
${considerations}
|
${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) => {
|
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
|
- Risiken für False Positives/Negatives
|
||||||
- Qualifikationsanforderungen und Reporting-Standards`;
|
- 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}"
|
${isWorkflow ? 'SZENARIO' : 'PROBLEM'}: "${userQuery}"
|
||||||
|
|
||||||
Aspekte:
|
Aspekte:
|
||||||
${aspects}
|
${aspects}
|
||||||
|
|
||||||
Stil: Deutsch, ohne Listen/Markdown.${isWorkflow ? '' : ' Etwas mehr technische Details zulassen.'}`;
|
Stil: Deutsch, ohne Listen/Markdown.`;
|
||||||
},
|
},
|
||||||
|
|
||||||
phaseToolSelection: (userQuery: string, phase: any, phaseTools: any[]) => {
|
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 items = phaseTools.map((tool: any, index: number) => {
|
||||||
const typ = tool.type === 'method' ? 'Methode' : 'Tool';
|
const typ = tool.type === 'method' ? 'Methode' : 'Tool';
|
||||||
const descLimit = 220;
|
const desc = (tool.description || '').replace(/\s+/g, ' ').trim().slice(0, 320);
|
||||||
const desc = (tool.description || '').replace(/\s+/g, ' ').trim().slice(0, descLimit);
|
|
||||||
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'}`;
|
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');
|
}).join('\n\n');
|
||||||
|
|
||||||
@ -134,8 +133,7 @@ BEWERTUNGSKRITERIEN:
|
|||||||
- Praktikabilität (Zeit, Setup, Reproduzierbarkeit)
|
- Praktikabilität (Zeit, Setup, Reproduzierbarkeit)
|
||||||
|
|
||||||
UI-KÜRZE:
|
UI-KÜRZE:
|
||||||
- Workflow-Modus: 1–3‑Satz Kurzfassung (≈200–260 Zeichen) + 1–2 kurze Details.
|
- Beginnen Sie in "justification" mit einer 2–4-Satz Kurzfassung (≈300–360 Zeichen), danach 2–3 kurze, präzise Sätze mit Details.
|
||||||
- Spezifischer Modus: Kurzfassung darf länger sein (≈250–320 Zeichen) + 2–3 detailreichere Sätze.
|
|
||||||
- Bezeichnen Sie Elemente als "Methode" oder "Tool".
|
- Bezeichnen Sie Elemente als "Methode" oder "Tool".
|
||||||
|
|
||||||
ANTWORT NUR ALS JSON (Schema UNVERÄNDERT):
|
ANTWORT NUR ALS JSON (Schema UNVERÄNDERT):
|
||||||
@ -143,7 +141,7 @@ ANTWORT NUR ALS JSON (Schema UNVERÄNDERT):
|
|||||||
{
|
{
|
||||||
"toolName": "Exakter Methoden/Tool-Name",
|
"toolName": "Exakter Methoden/Tool-Name",
|
||||||
"taskRelevance": 0–100,
|
"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"]
|
"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):
|
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.",
|
"implementation_approach": "Konkrete, reproduzierbare Schrittfolge. Kurze Schritte, kein Ausschweifen.",
|
||||||
"pros": ["Spezifischer Vorteil 1", "Vorteil 2"],
|
"pros": ["Spezifischer Vorteil 1", "Vorteil 2"],
|
||||||
"limitations": ["Konkrete Einschränkung 1", "Einschränkung 2"],
|
"limitations": ["Konkrete Einschränkung 1", "Einschränkung 2"],
|
||||||
@ -170,7 +168,8 @@ ANTWORT AUSSCHLIESSLICH ALS JSON (Schema UNVERÄNDERT):
|
|||||||
|
|
||||||
WICHTIG:
|
WICHTIG:
|
||||||
- Keine erneute Bewertung – nur Erklärung/Anwendung.
|
- 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[]) => {
|
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[]) => {
|
finalRecommendations: (isWorkflow: boolean, userQuery: string, selectedToolNames: string[]) => {
|
||||||
if (isWorkflow) {
|
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}"
|
SZENARIO: "${userQuery}"
|
||||||
AUSGEWÄHLTE ELEMENTE: ${selectedToolNames.join(', ') || 'Keine Auswahl'}
|
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.`;
|
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}"
|
PROBLEM: "${userQuery}"
|
||||||
EMPFOHLENE ELEMENTE: ${selectedToolNames.join(', ') || 'Keine Auswahl'}
|
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;
|
} as const;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user