Promote develop → main (2026-05-09 10:57 UTC) #21

Zusammengeführt
IntelSight_Admin hat 15 Commits von develop nach main 2026-05-09 12:57:14 +02:00 zusammengeführt
Nur Änderungen aus Commit 5a123ef3b8 werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@@ -199,14 +199,22 @@ AKTUELLE HEADLINES (die letzten Meldungen zu diesem Thema):
AUFGABE: AUFGABE:
Generiere 5 Begriffspaare (DE + EN), mit denen neue RSS-Artikel zu diesem Thema gefunden werden. Generiere 5 Begriffspaare (DE + EN), mit denen neue RSS-Artikel zu diesem Thema gefunden werden.
Ein Artikel gilt als relevant, wenn mindestens 2 dieser Begriffe im Titel oder der Beschreibung vorkommen. Ein Artikel gilt als relevant, wenn mindestens 2 dieser Begriffe im Titel oder der Beschreibung vorkommen
- bei spezifischen Begriffen (Eigennamen, lange Begriffe ab 7 Zeichen) reicht 1 Treffer.
REGELN: REGELN:
- Die ersten 2 Begriffspaare MUESSEN die zentralen Akteure/Laender/Themen sein (z.B. iran, israel, usa) — also die Begriffe, die in fast JEDEM Artikel zum Thema vorkommen - ZWINGEND: Eigennamen oder spezifische Begriffe aus dem THEMA (z.B. Personennamen, Tiernamen,
- Die letzten 3 Begriffspaare sind aktuelle Entwicklungen aus den Headlines (Orte, Akteure, Schluesselwoerter der aktuellen Phase) Ortsnamen wie "timmy", "buckelwal", "merz", "dobrindt") MUESSEN als eigene Begriffspaare
- Begriffe muessen so gewaehlt sein, dass sie in kurzen RSS-Titeln matchen (einzelne Woerter, keine Phrasen) enthalten sein. Solche Begriffe sind oft das einzige, was in kurzen Headlines vorkommt.
- Alle Begriffe in Kleinbuchstaben - Die ersten 2 Begriffspaare sind die zentralen Akteure/Laender/Themen (z.B. iran, israel,
- Exakt 5 Begriffspaare buckelwal, timmy) — also die Begriffe, die in fast JEDEM Artikel zum Thema vorkommen.
- Die uebrigen 3 Begriffspaare sind aktuelle Entwicklungen aus den Headlines (Orte, Akteure,
Schluesselwoerter der aktuellen Phase).
- Wenn DE und EN identisch sind (Eigennamen), trotzdem das Paar einreichen.
- Begriffe muessen so gewaehlt sein, dass sie in kurzen RSS-Titeln matchen (einzelne Woerter,
keine Phrasen, keine Konjunktionen).
- Alle Begriffe in Kleinbuchstaben.
- Exakt 5 Begriffspaare.
Antwort NUR als JSON-Array: Antwort NUR als JSON-Array:
[{{"de": "iran", "en": "iran"}}, {{"de": "israel", "en": "israel"}}, {{"de": "teheran", "en": "tehran"}}, {{"de": "luftangriff", "en": "airstrike"}}, {{"de": "trump", "en": "trump"}}]""" [{{"de": "iran", "en": "iran"}}, {{"de": "israel", "en": "israel"}}, {{"de": "teheran", "en": "tehran"}}, {{"de": "luftangriff", "en": "airstrike"}}, {{"de": "trump", "en": "trump"}}]"""
@@ -365,6 +373,17 @@ class ResearcherAgent:
if en and en != de: if en and en != de:
keywords.append(en) keywords.append(en)
# Bug-2-Fallback: Lagentitel-Wörter (>=4 Zeichen) zwingend in Keyword-Liste,
# falls Haiku sie weggelassen hat. Verhindert "Buckelwal timmy"-Bug, bei dem
# der Eigenname "timmy" fehlte und damit Headlines mit nur "Buckelwal" durchfielen.
STOPWORDS = {"der", "die", "das", "und", "oder", "von", "vom", "zum", "zur",
"the", "and", "for", "with", "ueber", "über", "von", "for"}
for word in (title or "").lower().split():
w = word.strip(".,;:!?\"\'()[]{}")
if len(w) >= 4 and w not in STOPWORDS and w not in keywords:
keywords.append(w)
logger.info(f"Lagentitel-Keyword '{w}' nachträglich injiziert")
if keywords: if keywords:
logger.info(f"Dynamische Keywords ({len(keywords)}): {keywords}") logger.info(f"Dynamische Keywords ({len(keywords)}): {keywords}")
return keywords if keywords else None, usage return keywords if keywords else None, usage