Inicio rápido
Tres pasos de la clave al tráfico enrutado.
2 · Haz una llamada de enrutamiento
Envía un prompt; recibe el tipo de tarea y el nivel de complejidad.
curl https://138.226.222.209/v1/route \
-H 'Authorization: Bearer cortiq_your_key' \
-H 'content-type: application/json' \
-d '{
"input": { "text": "Write a Python function to reverse a list" },
"taxonomy_id": "data-assistant"
}'
Respuesta de ejemplo
{
"schema_version": "1.1",
"request_id": "req_18c98f1adb897a78001871",
"decision": {
"task_label": "code",
"confidence": 0.997,
"complexity": { "tier": "low", "score": 0.27, … },
"source": "router", …
},
"scores": [ { "task_label": "code", "probability": 0.997, … }, … ],
"usage": { "billable_decisions": 1, "oracle_calls": 0 },
"meta": { "model_version": "data-assistant@2026.08.02", "latency_ms": 0.03, … }
}
3 · Nivel → tu modelo
Prompts fáciles a un modelo barato/local, difíciles a tu estrella.
# your side — map the router's answer to your models tier == "low" → cheap / local (llama.cpp, Ollama, gpt-4o-mini) tier == "medium" → mid tier == "high" → flagship (Claude, GPT-4o, …)
¿No quieres escribir este mapeo tú mismo? Abajo hay una pasarela open source lista que lo hace por ti.
⚡ cortiq-gateway — la pasarela open source lista para usar
Un endpoint compatible con OpenAI sobre este router: enrutado por complejidad de serie, consola web en /admin (7 idiomas), modelos .cmf locales más proveedores en la nube, y un asistente de primer arranque. El comando sin opciones crea su configuración y abre el navegador solo.
# crates.io cargo install cortiq-gateway cortiq-gateway # Docker docker run -p 9000:9000 -v cortiq-data:/app/data ghcr.io/infosave2007/cortiq-gateway:latest
Después apunta cualquier cliente OpenAI a base_url http://localhost:9000/v1 con model "cortiq-auto"; pega tu clave del router en los Ajustes de la consola. Hay binarios precompilados para Linux, Windows y macOS en Releases de GitHub.
GitHub → infosave2007/cortiq-gateway4 · Listar tareas de la taxonomía — GET /v1/taxonomies
El conjunto completo de etiquetas de tu cuenta en una llamada — construye la configuración de enrutado desde la lista en vivo, no desde constantes en el código.
curl https://138.226.222.209/v1/taxonomies \
-H 'Authorization: Bearer cortiq_your_key'
Respuesta de ejemplo
{
"schema_version": "1.1",
"taxonomies": [
{
"taxonomy_id": "data-assistant",
"taxonomy_version": "data-assistant@1",
"model_version": "data-assistant@2026.08.02",
"labels": [
"chitchat", "code", "creative-writing",
"extraction", "math", "qa",
"summarization", "translation"
]
}
]
}
El conjunto completo nunca aparece en una respuesta de /v1/route (scores solo lleva el top-3) — este endpoint es su única fuente. Una etiqueta recién añadida aparece aquí automáticamente.
Referencia de la API
El resto de endpoints — la misma clave Bearer, la misma URL base.
POST /v1/route:batch
Clasificación por lotes: muchos prompts por llamada; los resultados vuelven en el mismo orden que inputs.
curl https://138.226.222.209/v1/route:batch \ -H 'Authorization: Bearer cortiq_your_key' \ -H 'content-type: application/json' \ -d '{ "taxonomy_id": "data-assistant", "inputs": [ { "text": "Fix this bug" }, { "text": "Переведи: добрый вечер" } ] }' # → { "results": [ { "request_id": …, "decision": { "task_label": "code", … } }, … ] }
POST /v1/feedback
Corrige una clasificación errónea — pasa el request_id de una respuesta de /v1/route y la etiqueta correcta. El router aprende de tus correcciones.
curl https://138.226.222.209/v1/feedback \ -H 'Authorization: Bearer cortiq_your_key' \ -H 'content-type: application/json' \ -d '{ "request_id": "req_…", "correct_task_label": "math" }' # → { "accepted": true, "message": "…" }
GET /v1/usage
Uso y límites de la cuenta: decisiones facturadas, llamadas al oráculo, cuota y rate limit.
{
"account": { "id": "acct_…", "billable_decisions": 98, "decision_quota": 0, "rate_per_min": 60 },
"usage": { "cache_hits": 85, "oracle_calls": 58, "escalation_rate": 0.64, … }
}
GET /v1/taxonomies/{id}
Una taxonomía por id: versión, versión del modelo y lista completa de etiquetas.
GET /v1/healthz · GET /v1/readyz
Comprobaciones de vida y disponibilidad — para monitorización, sin autenticación.