ui fix prompt fix
This commit is contained in:
parent
7b6cc8da7c
commit
30047f8e00
|
|
@ -113,11 +113,13 @@ def parse_markdown_draft(full_text):
|
||||||
"""Robustes Parsing + Sanitization."""
|
"""Robustes Parsing + Sanitization."""
|
||||||
clean_text = full_text
|
clean_text = full_text
|
||||||
|
|
||||||
|
# 1. Markdown Code-Blöcke entfernen
|
||||||
pattern_block = r"```(?:markdown|md)?\s*(.*?)\s*```"
|
pattern_block = r"```(?:markdown|md)?\s*(.*?)\s*```"
|
||||||
match_block = re.search(pattern_block, full_text, re.DOTALL | re.IGNORECASE)
|
match_block = re.search(pattern_block, full_text, re.DOTALL | re.IGNORECASE)
|
||||||
if match_block:
|
if match_block:
|
||||||
clean_text = match_block.group(1).strip()
|
clean_text = match_block.group(1).strip()
|
||||||
|
|
||||||
|
# 2. Split YAML / Body
|
||||||
parts = re.split(r"^---+\s*$", clean_text, maxsplit=2, flags=re.MULTILINE)
|
parts = re.split(r"^---+\s*$", clean_text, maxsplit=2, flags=re.MULTILINE)
|
||||||
|
|
||||||
meta = {}
|
meta = {}
|
||||||
|
|
@ -126,13 +128,28 @@ def parse_markdown_draft(full_text):
|
||||||
if len(parts) >= 3:
|
if len(parts) >= 3:
|
||||||
yaml_str = parts[1]
|
yaml_str = parts[1]
|
||||||
body_candidate = parts[2]
|
body_candidate = parts[2]
|
||||||
|
|
||||||
|
# --- FIX 1: Hashtag-Cleaner für YAML ---
|
||||||
|
# Entfernt #, wenn sie innerhalb von [] stehen, um YAML-Kommentare zu verhindern.
|
||||||
|
# Wir entfernen pauschal # im YAML-Block, da Tags dort keine brauchen.
|
||||||
|
yaml_str_clean = yaml_str.replace("#", "")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
parsed = yaml.safe_load(yaml_str)
|
parsed = yaml.safe_load(yaml_str_clean)
|
||||||
if isinstance(parsed, dict):
|
if isinstance(parsed, dict):
|
||||||
meta = parsed
|
meta = parsed
|
||||||
body = body_candidate.strip()
|
body = body_candidate.strip()
|
||||||
except Exception:
|
except Exception as e:
|
||||||
pass
|
print(f"YAML Parsing Warning: {e}")
|
||||||
|
# Fallback: Body retten, Meta leer lassen
|
||||||
|
body = body_candidate.strip()
|
||||||
|
|
||||||
|
# --- FIX 2: Type/Status Swap Korrektur ---
|
||||||
|
# Wenn das LLM halluziniert hat: type='draft' -> Das ist eigentlich der Status.
|
||||||
|
if meta.get("type") == "draft":
|
||||||
|
meta["status"] = "draft"
|
||||||
|
# Wir raten einen besseren Typ oder setzen default
|
||||||
|
meta["type"] = "experience" # Da Interviews oft Experiences sind
|
||||||
|
|
||||||
return normalize_meta_and_body(meta, body)
|
return normalize_meta_and_body(meta, body)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -97,7 +97,6 @@ technical_template: |
|
||||||
# ---------------------------------------------------------
|
# ---------------------------------------------------------
|
||||||
# 5. INTERVIEW: Der "One-Shot Extractor" (Performance Mode)
|
# 5. INTERVIEW: Der "One-Shot Extractor" (Performance Mode)
|
||||||
# ---------------------------------------------------------
|
# ---------------------------------------------------------
|
||||||
|
|
||||||
interview_template: |
|
interview_template: |
|
||||||
TASK:
|
TASK:
|
||||||
Erstelle einen Markdown-Entwurf für eine Notiz vom Typ '{target_type}'.
|
Erstelle einen Markdown-Entwurf für eine Notiz vom Typ '{target_type}'.
|
||||||
|
|
@ -114,14 +113,14 @@ interview_template: |
|
||||||
|
|
||||||
OUTPUT REGELN (STRIKT BEACHTEN):
|
OUTPUT REGELN (STRIKT BEACHTEN):
|
||||||
A. FRONTMATTER (YAML):
|
A. FRONTMATTER (YAML):
|
||||||
- Darf NUR folgende Felder enthalten: [type, status, title, tags].
|
- 'type': Muss '{target_type}' sein (oder 'experience', 'project' etc.). NIEMALS 'draft'.
|
||||||
- Schreibe KEINE inhaltlichen Sätze (wie 'Situation', 'Ziel') in das YAML!
|
- 'status': Muss IMMER 'draft' sein.
|
||||||
- Setze 'status: draft'.
|
- 'tags': Eine JSON-Liste von Strings OHNE Hashtags. Beispiel: ['Recycling', 'Konflikt']. NICHT: [#Recycling].
|
||||||
|
- Keine Sätze im YAML, nur Daten.
|
||||||
|
|
||||||
B. BODY (Markdown):
|
B. BODY (Markdown):
|
||||||
- Nutze für jedes Schema-Feld eine Markdown-Überschrift (## Feldname).
|
- Nutze für jedes Schema-Feld eine Markdown-Überschrift (## Feldname).
|
||||||
- Schreibe den Inhalt DARUNTER.
|
- Schreibe den Inhalt DARUNTER.
|
||||||
- Nutze "[TODO: Ergänzen]", wenn Infos fehlen.
|
|
||||||
|
|
||||||
HINWEIS ZUM TYP:
|
HINWEIS ZUM TYP:
|
||||||
{schema_hint}
|
{schema_hint}
|
||||||
|
|
@ -132,7 +131,7 @@ interview_template: |
|
||||||
type: {target_type}
|
type: {target_type}
|
||||||
status: draft
|
status: draft
|
||||||
title: ...
|
title: ...
|
||||||
tags: [...]
|
tags: ["Tag1", "Tag2"]
|
||||||
---
|
---
|
||||||
# Titel der Notiz
|
# Titel der Notiz
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user