chore: relay v2 cleanup — remove f-strings, add version/mode to health endpoint

This commit is contained in:
2026-06-08 19:00:10 +02:00
parent 1bac8db3c5
commit 75311845ee
2 changed files with 15 additions and 13 deletions
+8 -6
View File
@@ -1,5 +1,5 @@
""" """
Hermes Relay — Flask bridge tussen Node-RED en Hermes Agent (v2.0). Hermes Relay v2 — Flask bridge tussen Node-RED en Hermes Agent.
Gebruikt een warme Hermes agent (directe Python import) in plaats van Gebruikt een warme Hermes agent (directe Python import) in plaats van
subprocess per query. Dit bespaart ~3-5 seconden startup tijd per query. subprocess per query. Dit bespaart ~3-5 seconden startup tijd per query.
@@ -45,7 +45,7 @@ HERMES_BIN = "/usr/local/bin/hermes" # nog steeds nodig voor hermes send
from hermes_client import call_hermes as _hermes_query from hermes_client import call_hermes as _hermes_query
def send_telegram(text: str) -> bool: def send_telegram(text):
"""Stuur bericht via hermes send subprocess.""" """Stuur bericht via hermes send subprocess."""
import subprocess import subprocess
try: try:
@@ -57,7 +57,7 @@ def send_telegram(text: str) -> bool:
) )
return result.returncode == 0 return result.returncode == 0
except Exception as e: except Exception as e:
logger.error(f"Telegram send failed: {e}") logger.error("Telegram send failed: %s", e)
return False return False
@@ -78,16 +78,16 @@ def ask():
if not prompt: if not prompt:
return jsonify({"status": "error", "message": "No payload received"}), 400 return jsonify({"status": "error", "message": "No payload received"}), 400
logger.info(f"Received: {prompt[:100]}...") logger.info("Received: %s...", prompt[:100])
# Roep Hermes aan (direct, geen subprocess) # Roep Hermes aan (direct, geen subprocess)
answer = _hermes_query(prompt) answer = _hermes_query(prompt)
elapsed = round(time.time() - start, 1) elapsed = round(time.time() - start, 1)
logger.info(f"Answer ({elapsed}s): {answer[:200]}...") logger.info("Answer (%.1fs): %s...", elapsed, answer[:200])
# Stuur ook naar Telegram # Stuur ook naar Telegram
tg_msg = f"🤖 Hermes Relay\n\nVraag: {prompt}\n\nAntwoord: {answer}" tg_msg = "🤖 Hermes Relay\n\nVraag: " + prompt + "\n\nAntwoord: " + answer
tg_sent = send_telegram(tg_msg) tg_sent = send_telegram(tg_msg)
return jsonify({ return jsonify({
@@ -104,6 +104,8 @@ def health():
return jsonify({ return jsonify({
"status": "ok", "status": "ok",
"service": "hermes-relay", "service": "hermes-relay",
"version": "2.0",
"mode": "python-import",
"model": MODEL or "(default)", "model": MODEL or "(default)",
"prompt_prefix": PROMPT_PREFIX or "(none)", "prompt_prefix": PROMPT_PREFIX or "(none)",
}) })
+7 -7
View File
@@ -67,13 +67,13 @@ def _ensure_hermes_loaded():
elapsed = time.time() - start elapsed = time.time() - start
logger.info( logger.info(
f"Hermes loaded in {elapsed:.2f}s " "Hermes loaded in %.2fs (toolsets: %s)",
f"(toolsets: {toolsets})" elapsed, toolsets
) )
_HERMES_LOADED = True _HERMES_LOADED = True
def call_hermes(prompt: str) -> str: def call_hermes(prompt):
""" """
Roep Hermes aan — hergebruikt een warme agent. Roep Hermes aan — hergebruikt een warme agent.
@@ -85,7 +85,7 @@ def call_hermes(prompt: str) -> str:
# Prefix (zoals /fast) # Prefix (zoals /fast)
prefix = os.environ.get('HERMES_RELAY_PREFIX', '/fast') prefix = os.environ.get('HERMES_RELAY_PREFIX', '/fast')
full_prompt = f"{prefix} {prompt}".strip() if prefix else prompt full_prompt = (prefix + " " + prompt).strip() if prefix else prompt
start = time.time() start = time.time()
@@ -122,10 +122,10 @@ def call_hermes(prompt: str) -> str:
logger.warning("Hermes riep sys.exit() aan tijdens query") logger.warning("Hermes riep sys.exit() aan tijdens query")
result = stdout_capture.getvalue().strip() result = stdout_capture.getvalue().strip()
except Exception as e: except Exception as e:
logger.error(f"Hermes error: {e}", exc_info=True) logger.error("Hermes error: %s", e, exc_info=True)
return f"⚠️ Hermes error: {e}" return "⚠️ Hermes error: " + str(e)
elapsed = time.time() - start elapsed = time.time() - start
logger.info(f"Hermes responded in {elapsed:.1f}s ({len(result)} chars)") logger.info("Hermes responded in %.1fs (%d chars)", elapsed, len(result))
return result return result