Fehlerhafte Anylysen werden nicht mehr als erledigt behandelt und Signal Notification stabiler gemacht
This commit is contained in:
46
web_check.py
46
web_check.py
@@ -21,7 +21,7 @@ SIGNAL_NUMBER = os.getenv("SIGNAL_NUMBER")
|
||||
SIGNAL_GROUPE_ID = os.getenv("SIGNAL_GROUPE_ID")
|
||||
DEBUG_LOG = os.getenv("DEBUG_LOG", "false").lower() == "true"
|
||||
MIN_RELEVANZ_SCORE = int(os.getenv("MIN_RELEVANZ_SCORE", "30"))
|
||||
GEMINI_MODEL = "gemini-3-flash-preview"
|
||||
GEMINI_MODEL = "gemini-2.5-flash-lite"
|
||||
GEMINI_SESSION = "1"
|
||||
NTFY = "true"
|
||||
SIGNAL = "true"
|
||||
@@ -108,7 +108,7 @@ def analysiere_mit_gemini(text):
|
||||
}
|
||||
|
||||
|
||||
def sende_signal(titel, nachricht, signal_number, signal_group_id):
|
||||
def sende_signal(titel, nachricht, klick_url, signal_number, signal_group_id):
|
||||
"""Sendet eine Benachrichtigung über Signal direkt vom lokalen System."""
|
||||
if not signal_number or not signal_group_id:
|
||||
print(
|
||||
@@ -117,7 +117,7 @@ def sende_signal(titel, nachricht, signal_number, signal_group_id):
|
||||
return
|
||||
|
||||
# Nachricht formatieren: Titel in der ersten Zeile, Nachricht in der nächsten
|
||||
message_content = f"{titel}\n{nachricht}"
|
||||
message_content = f"{titel}\n{nachricht}\n{(klick_url,)}"
|
||||
|
||||
# Befehl für die direkte Ausführung lokal
|
||||
# Der Config-Pfad muss hier dem Pfad entsprechen, den Sie bei der Registrierung verwendet haben
|
||||
@@ -283,6 +283,26 @@ def verarbeite_website(url):
|
||||
artikel_inhalt = hole_artikel_text(link)
|
||||
analyse = analysiere_mit_gemini(artikel_inhalt)
|
||||
|
||||
# Prüfen, ob die KI-Analyse einen kritischen Fehler meldet
|
||||
# Ein Fehler wird angenommen, wenn 'begruendung_score' mit "Fehler:" beginnt
|
||||
# oder wenn der Score 0 ist und eine Fehlermeldung im 'begruendung_score' vorhanden ist.
|
||||
is_analysis_error = analyse.get("begruendung_score", "").startswith(
|
||||
"Fehler:"
|
||||
) or (
|
||||
analyse.get("relevanz_score", 0) == 0
|
||||
and "Fehler:" in analyse.get("begruendung_score", "")
|
||||
)
|
||||
|
||||
if is_analysis_error:
|
||||
print(
|
||||
f" [!] Analyse fehlgeschlagen für {link}: {analyse.get('begruendung_score')}"
|
||||
)
|
||||
debug(
|
||||
f"Skipping article processing and not marking as processed due to analysis error: {link}"
|
||||
)
|
||||
continue # Nächsten Artikel im Loop bearbeiten, diesen nicht als erledigt markieren
|
||||
|
||||
# Wenn die Analyse erfolgreich war (auch wenn der Score niedrig ist):
|
||||
score = analyse.get("relevanz_score", 0)
|
||||
begruendung = analyse.get(
|
||||
"begruendung_score", "Keine Begründung vorhanden"
|
||||
@@ -309,6 +329,7 @@ def verarbeite_website(url):
|
||||
sende_signal(
|
||||
titel=analyse.get("titel", "Polit-Update"),
|
||||
nachricht=analyse.get("nachricht", "Neu auf der Seite"),
|
||||
klick_url=link,
|
||||
signal_number=SIGNAL_NUMBER,
|
||||
signal_group_id=SIGNAL_GROUPE_ID,
|
||||
)
|
||||
@@ -349,6 +370,24 @@ def verarbeite_website(url):
|
||||
else:
|
||||
analyse = analysiere_mit_gemini(line)
|
||||
|
||||
# Prüfen, ob die KI-Analyse einen kritischen Fehler meldet
|
||||
is_analysis_error = analyse.get(
|
||||
"begruendung_score", ""
|
||||
).startswith("Fehler:") or (
|
||||
analyse.get("relevanz_score", 0) == 0
|
||||
and "Fehler:" in analyse.get("begruendung_score", "")
|
||||
)
|
||||
|
||||
if is_analysis_error:
|
||||
print(
|
||||
f" [!] Analyse fehlgeschlagen für {target_url}: {analyse.get('begruendung_score')}"
|
||||
)
|
||||
debug(
|
||||
f"Skipping article processing and not marking as processed due to analysis error: {target_url}"
|
||||
)
|
||||
continue # Nächste Zeile im Diff bearbeiten, diesen nicht als erledigt markieren
|
||||
|
||||
# Wenn die Analyse erfolgreich war (auch wenn der Score niedrig ist):
|
||||
score = analyse.get("relevanz_score", 0)
|
||||
begruendung = analyse.get(
|
||||
"begruendung_score", "Keine Begründung vorhanden"
|
||||
@@ -382,6 +421,7 @@ def verarbeite_website(url):
|
||||
nachricht=analyse.get(
|
||||
"nachricht", "Neu auf der Seite"
|
||||
),
|
||||
klick_url=link,
|
||||
signal_number=SIGNAL_NUMBER,
|
||||
signal_group_id=SIGNAL_GROUPE_ID,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user