From 1e3f9d83eb8113ea4af971b9ef6b510d2b0fea18 Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Mon, 6 Apr 2026 14:56:07 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=8B=9C=EC=8A=A4=ED=85=9C=20=EC=83=81?= =?UTF-8?q?=ED=83=9C=20=EC=A7=88=EB=AC=B8=20=EC=82=AC=EC=A0=84=20=EB=9D=BC?= =?UTF-8?q?=EC=9A=B0=ED=8C=85=20=E2=80=94=20=EC=B6=94=EB=A1=A0=20=EB=AA=A8?= =?UTF-8?q?=EB=8D=B8/=EC=84=9C=EB=B2=84=20=EC=83=81=ED=83=9C=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "추론 모델 일하고 있어?" → backend health 체크 후 직접 응답 Co-Authored-By: Claude Opus 4.6 (1M context) --- nanoclaude/services/worker.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/nanoclaude/services/worker.py b/nanoclaude/services/worker.py index 77560bd..3ac9e7a 100644 --- a/nanoclaude/services/worker.py +++ b/nanoclaude/services/worker.py @@ -149,6 +149,16 @@ def _pre_route(message: str) -> dict | None: if query: return {"action": "tools", "tool": "document", "operation": "search", "params": {"query": query}} + # 시스템 상태 질문 + if any(k in msg for k in ["추론 모델", "gemma", "젬마", "상태", "서버 상태", "시스템"]) and any(k in msg for k in ["돌아", "일하", "작동", "상태", "건강", "살아"]): + health = backend_registry.health_summary() + lines = [] + for role, info in health.items(): + status = "✅ 정상" if info["healthy"] else "❌ 연결 안 됨" + lines.append(f"• {info['name']} ({role}): {status} ({info['latency_ms']:.0f}ms)") + status_text = "\n".join(lines) + return {"action": "direct", "response": f"현재 시스템 상태야:\n{status_text}", "prompt": ""} + # pending_draft 확인 응답 if msg in ("확인", "예", "yes", "ㅇㅇ", "응", "네", "좋아", "ok"): return {"action": "tools", "tool": "calendar", "operation": "create_confirmed", "params": {}}