Un usuario de r/Perplexity informó que los créditos de la API de Sonar se habían borrado sin previo aviso. Este tutorial crea una capa de monitoreo simple para rastrear el uso y alertar antes de que se agote.
Requisitos previos
- Clave API de perplejidad
- Python 3.8+
- Canal de notificación (Slack, correo electrónico o SMS)
Guia paso a paso
Paso 1: Registrar cada llamada API
Envuelva la llamada a la API de Sonar con el registro de uso.
import requests, json, datetime
def log_usage(model, tokens_in, tokens_out, cost):
with open('sonar_usage.jsonl', 'a') as f:
f.write(json.dumps({
'ts': datetime.datetime.now().isoformat(),
'model': model, 'tokens_in': tokens_in,
'tokens_out': tokens_out, 'cost': cost
}) + '\n')Paso 2: Calcular el coste de funcionamiento
Precio de Sonar: 1 $/millón de tokens de entrada/salida + 5 $/1.000 solicitudes.
def running_cost(log_file='sonar_usage.jsonl'):
total = 0
requests_count = 0
with open(log_file) as f:
for line in f:
entry = json.loads(line)
total += (entry['tokens_in'] + entry['tokens_out']) / 1e6
requests_count += 1
request_cost = (requests_count / 1000) * 5
return total + request_costPaso 3: Establecer alertas de presupuesto
Alerta cuando el uso se acerca a tu presupuesto.
def check_budget(budget=50):
cost = running_cost()
if cost > budget * 0.8:
send_alert(f'Sonar API at {cost:.2f}/{budget} ({cost/budget*100:.0f}%)')
if cost > budget:
send_alert(f'OVER BUDGET: Sonar API at {cost:.2f}/{budget}')Paso 4: Crear un desencadenante de migración
Cambie automáticamente a la API de respaldo cuando se exceda el presupuesto.
def search(query, budget_exceeded=False):
if budget_exceeded:
# Failover to Scavio
return requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': os.environ['SCAVIO_API_KEY']},
json={'platform': 'google', 'query': query}).json()
return sonar_search(query)Ejemplo en Python
# Track Sonar usage, alert at 80% budget, failover to Scavio at 100%.
# Prevents surprise credit exhaustion.Ejemplo en JavaScript
// Same logging and alert pattern in JS/TS.Salida esperada
JSONL usage log, budget alerts at 80% and 100%, automatic failover to Scavio when Sonar budget is exceeded.