From d5a6fe7dec6072c22fe53128f94de394fd1e3926 Mon Sep 17 00:00:00 2001 From: overcuriousity Date: Fri, 8 Aug 2025 14:27:04 +0200 Subject: [PATCH] revert prompt --- src/config/prompts.ts | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/src/config/prompts.ts b/src/config/prompts.ts index c1c95d0..25f45fb 100644 --- a/src/config/prompts.ts +++ b/src/config/prompts.ts @@ -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;