63 lines
2.2 KiB
Bash
63 lines
2.2 KiB
Bash
#!/usr/bin/env bash
|
|
# Morgen-Digest: Sammelt die zurückgehaltenen nächtlichen Meldungen (00:00 - 06:59)
|
|
# und lässt Lucy (LLM) eine Telegram-Zusammenfassung daraus bauen.
|
|
set -uo pipefail
|
|
|
|
NIGHT_QUEUE="$HOME/.hermes/night-queue.txt"
|
|
if [ ! -f "$NIGHT_QUEUE" ]; then
|
|
# Keine nächtlichen Meldungen
|
|
exit 0
|
|
fi
|
|
|
|
# Wenn die Datei existiert, aber leer ist, löschen und beenden.
|
|
if [ ! -s "$NIGHT_QUEUE" ]; then
|
|
rm -f "$NIGHT_QUEUE"
|
|
exit 0
|
|
fi
|
|
|
|
EVIDENCE="$(cat "$NIGHT_QUEUE")"
|
|
|
|
PROMPT="Du bist Lucy, die KI-Assistenz der Mission-Control-Box.
|
|
Hier sind die Systemmeldungen der vergangenen Nacht.
|
|
Der Commander möchte ordentlich Futter und Details zum Frühstück! Fasse die Meldungen zu einem gehaltvollen Morgen-Digest zusammen.
|
|
Beachte dabei:
|
|
- Nenne konkrete Fakten, Namen und Versionen.
|
|
- Welche Modelle wurden z.B. vom Radar entdeckt oder evaluiert? Was waren die Ergebnisse?
|
|
- Welche Updates liefen genau und was haben sie Neues gebracht? Was muss sich der Commander noch anschauen?
|
|
- Strukturiere die Nachricht übersichtlich (z.B. mit kleinen Emojis oder Bulletpoints), aber bleibe in deiner Rolle als Lucy.
|
|
|
|
Nächtliche Meldungen:
|
|
$EVIDENCE"
|
|
|
|
# LLM aufrufen (llama-swap / gpt-oss-120b)
|
|
ENDPOINT="${CHEF_ENDPOINT:-http://127.0.0.1:8080/v1/chat/completions}"
|
|
MODEL="${CHEF_MODEL:-gpt-oss-120b}"
|
|
|
|
REQ="$(jq -n --arg m "$MODEL" --arg sys "Du bist Lucy." --arg usr "$PROMPT" --argjson mt 1200 \
|
|
'{model:$m, messages:[{role:"system",content:$sys},{role:"user",content:$usr}],
|
|
max_tokens:$mt, temperature:0.4}')"
|
|
|
|
DIGEST="$(curl -s -m 180 "$ENDPOINT" -H 'Content-Type: application/json' --data-binary "$REQ" \
|
|
| python3 -c '
|
|
import json, sys
|
|
try:
|
|
d = json.load(sys.stdin)
|
|
msg = d["choices"][0]["message"]
|
|
print((msg.get("content") or msg.get("reasoning_content") or "").strip())
|
|
except Exception:
|
|
pass'
|
|
)"
|
|
|
|
if [ -n "$DIGEST" ]; then
|
|
# Sende den Digest via hermes send (Telegram)
|
|
bash -lc 'hermes send --to telegram --subject "[🌅 Morgen-Digest]" -- "$1"' _ "$DIGEST"
|
|
if [ $? -eq 0 ]; then
|
|
# Erfolgreich gesendet, Queue leeren
|
|
rm -f "$NIGHT_QUEUE"
|
|
else
|
|
echo "Fehler beim Senden des Morgen-Digests an Telegram. Queue bleibt erhalten." >&2
|
|
fi
|
|
else
|
|
echo "Leerer Digest vom LLM. Queue bleibt erhalten." >&2
|
|
fi
|