diff --git a/app.py b/app.py index 1f6cc95..b7e1375 100644 --- a/app.py +++ b/app.py @@ -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 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 -def send_telegram(text: str) -> bool: +def send_telegram(text): """Stuur bericht via hermes send subprocess.""" import subprocess try: @@ -57,7 +57,7 @@ def send_telegram(text: str) -> bool: ) return result.returncode == 0 except Exception as e: - logger.error(f"Telegram send failed: {e}") + logger.error("Telegram send failed: %s", e) return False @@ -78,16 +78,16 @@ def ask(): if not prompt: 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) answer = _hermes_query(prompt) 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 - 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) return jsonify({ @@ -104,6 +104,8 @@ def health(): return jsonify({ "status": "ok", "service": "hermes-relay", + "version": "2.0", + "mode": "python-import", "model": MODEL or "(default)", "prompt_prefix": PROMPT_PREFIX or "(none)", }) diff --git a/hermes_client.py b/hermes_client.py index e28ce21..c45e420 100644 --- a/hermes_client.py +++ b/hermes_client.py @@ -67,13 +67,13 @@ def _ensure_hermes_loaded(): elapsed = time.time() - start logger.info( - f"Hermes loaded in {elapsed:.2f}s " - f"(toolsets: {toolsets})" + "Hermes loaded in %.2fs (toolsets: %s)", + elapsed, toolsets ) _HERMES_LOADED = True -def call_hermes(prompt: str) -> str: +def call_hermes(prompt): """ Roep Hermes aan — hergebruikt een warme agent. @@ -85,7 +85,7 @@ def call_hermes(prompt: str) -> str: # Prefix (zoals /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() @@ -122,10 +122,10 @@ def call_hermes(prompt: str) -> str: logger.warning("Hermes riep sys.exit() aan tijdens query") result = stdout_capture.getvalue().strip() except Exception as e: - logger.error(f"Hermes error: {e}", exc_info=True) - return f"⚠️ Hermes error: {e}" + logger.error("Hermes error: %s", e, exc_info=True) + return "⚠️ Hermes error: " + str(e) 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