#!/bin/bash # model-usage-tracker.sh — Check model availability and report usage # Runs daily to warn if models are nearing credit limits PRIMARY_MODEL="deepseek-chat" PRIMARY_PROVIDER="admin-ai" echo "=== Model Usage Check $(date +'%b %d %Y %I:%M %p') ===" # Test DeepSeek (primary) RESULT=$(curl -s -X POST "https://admin-ai.itpropartner.com/v1/chat/completions" \ -H "Authorization: Bearer $(grep -A2 'admin-ai:' ~/.hermes/config.yaml | grep api_key | awk '{print $2}')" \ -H "Content-Type: application/json" \ -d "{\"model\":\"$PRIMARY_MODEL\",\"messages\":[{\"role\":\"user\",\"content\":\"ping\"}],\"max_tokens\":5}" 2>&1) if echo "$RESULT" | grep -qi "insufficient\|quota\|429\|rate\|exceeded\|credit"; then echo "❌ PRIMARY: deepseek-chat — CREDITS EXHAUSTED or RATE LIMITED" echo " Error: $(echo $RESULT | grep -oP '"message":"[^"]*"' | head -1)" elif echo "$RESULT" | grep -qi "error"; then echo "⚠️ PRIMARY: deepseek-chat — Error: $(echo $RESULT | grep -oP '"message":"[^"]*"')" else TOKENS=$(echo "$RESULT" | python3 -c "import sys,json;d=json.load(sys.stdin);u=d['usage'];print(f'prompt={u[\"prompt_tokens\"]} completion={u[\"completion_tokens\"]} total={u[\"total_tokens\"]}')" 2>/dev/null || echo "unknown") echo "✅ PRIMARY: deepseek-chat — OK ($TOKENS)" fi # Test local fallback LOCAL=$(curl -s http://localhost:11434/api/generate -d '{"model":"llama3.2:3b","prompt":"ping","stream":false}' 2>&1) if echo "$LOCAL" | grep -qi "response"; then echo "✅ LOCAL: llama3.2:3b — OK" else echo "❌ LOCAL: llama3.2:3b — NOT RESPONDING" fi