chore: relay v2 cleanup — remove f-strings, add version/mode to health endpoint
This commit is contained in:
@@ -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)",
|
||||
})
|
||||
|
||||
+7
-7
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user