33 lines
1.6 KiB
Bash
33 lines
1.6 KiB
Bash
#!/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
|