mirror of
https://github.com/myronblair/jarvis
synced 2026-06-30 09:40:08 -05:00
perf: route Guardian and Vision text analysis to Groq instead of Claude
Guardian anomaly alerts and SITREP are pure text reasoning — Groq's llama-3.3-70b-versatile handles them at near-zero cost with lower latency. Vision Protocol image analysis stays on Claude (claude-opus- 4-8) because Groq has no vision models. Text-only sysinfo snapshots (no image captured) also move to Groq. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+5
-5
@@ -688,8 +688,8 @@ async def handle_screenshot(payload: dict) -> dict:
|
||||
try:
|
||||
snap_text = json.dumps(result, indent=2)[:3000]
|
||||
prompt = f"Summarize this server system snapshot for JARVIS. Highlight any concerns:\n\n{snap_text}"
|
||||
analysis = await llm_call([{"role": "user", "content": prompt}], "claude")
|
||||
provider_used = "claude"
|
||||
analysis = await llm_call([{"role": "user", "content": prompt}], "groq")
|
||||
provider_used = "groq"
|
||||
except Exception as e:
|
||||
analysis = f"Analysis unavailable: {e}"
|
||||
|
||||
@@ -1022,7 +1022,7 @@ async def guardian_loop() -> None:
|
||||
"for Myron. Be direct about severity and what action to take. "
|
||||
"No markdown, no headers."
|
||||
)
|
||||
ai_msg = await llm_call([{"role": "user", "content": ai_prompt}], "claude")
|
||||
ai_msg = await llm_call([{"role": "user", "content": ai_prompt}], "groq")
|
||||
# Update the most recent guardian event with AI analysis
|
||||
await db_execute(
|
||||
"""UPDATE guardian_events SET ai_analysis=%s
|
||||
@@ -1062,10 +1062,10 @@ async def _guardian_inject_chat(message: str) -> None:
|
||||
async def handle_sitrep(payload: dict) -> dict:
|
||||
"""
|
||||
Situation Report — comprehensive health briefing across all field stations.
|
||||
payload: { detail: brief|full, provider: claude }
|
||||
payload: { detail: brief|full, provider: groq }
|
||||
"""
|
||||
detail = payload.get("detail", "full")
|
||||
provider = payload.get("provider", "claude")
|
||||
provider = payload.get("provider", "groq")
|
||||
|
||||
log.info(f"[GUARDIAN] SITREP requested (detail={detail})")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user