Puerta de enlace mixgateway.io · Inicio rápido

Descripción general

mixgateway.io expone una API HTTP compatible con OpenAI para acceder a varios proveedores de modelos (DeepSeek, OpenAI y otros) desde un solo punto de entrada.

  • URL base: https://api.mixgateway.io/v1
  • Chat completions: POST /chat/completions
  • Autenticación: Authorization: Bearer {api_key}
  • Protocolo: en gran parte compatible con OpenAI chat/completions

Obtener una clave API

  1. Regístrese e inicie sesión en la [consola](/dashboard).
  2. Abra Gestión de claves API y cree una clave nueva.
  3. Copie la cadena sk-... generada (o el formato de clave de su puerta de enlace).
  4. Envíela en cada solicitud: Authorization: Bearer {api_key}.

Seguridad: no incruste claves en bundles frontend ni en repositorios públicos. Use configuración en servidor o un gestor de secretos.

Ejemplo sin streaming

curl https://api.mixgateway.io/v1/chat/completions \
  -H "Authorization: Bearer sk-xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek:deepseek-chat",
    "messages": [
      {"role": "user", "content": "Hi, just reply with \"Hi\""}
    ],
    "temperature": 0.7,
    "max_tokens": 128,
    "stream": false
  }'

Respuesta de ejemplo

{
  "id": "1a9f9f27-ef53-4b0e-8849-465bf8270314",
  "object": "chat.completion",
  "created": 1772183892,
  "model": "deepseek:deepseek-chat",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hi"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 8,
    "completion_tokens": 1,
    "total_tokens": 9
  }
}

En las solicitudes, el campo model suele usar provider:modelId (por ejemplo deepseek:deepseek-chat). La puerta de enlace enruta al proveedor correcto según ese valor. Los modelos disponibles figuran en la consola o en la documentación del proveedor.

Ejemplo con streaming

curl https://api.mixgateway.io/v1/chat/completions \
  -H "Authorization: Bearer sk-xxxx" \
  -H "Content-Type: application/json" \
  -N \
  -d '{
    "model": "deepseek:deepseek-chat",
    "messages": [
      {"role": "user", "content": "Introduce yourself in one sentence"}
    ],
    "temperature": 0.7,
    "max_tokens": 256,
    "stream": true
  }'

Líneas SSE típicas:

data: {"id":"...","object":"chat.completion.chunk","choices":[{"delta":{"content":"Hi"}}], ...}

data: {"id":"...","object":"chat.completion.chunk","choices":[{"delta":{"content":", I'm a gateway assistant."}}], ...}

data: {"id":"...","object":"chat.completion.chunk","choices":[{"delta":{"content":""},"finish_reason":"stop"}], "usage":{"prompt_tokens":13,"completion_tokens":10,"total_tokens":23}}

El último fragmento puede incluir usage para facturación y analítica.

Ejemplos con SDK

JavaScript (Node.js, fetch)

const resp = await fetch("https://api.mixgateway.io/v1/chat/completions", {
  method: "POST",
  headers: {
    Authorization: "Bearer sk-xxxx",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "deepseek:deepseek-chat",
    messages: [{ role: "user", content: "Hi" }],
    stream: false,
  }),
});

const data = await resp.json();
console.log(data.choices[0].message.content);

Python (requests)

import requests

url = "https://api.mixgateway.io/v1/chat/completions"
headers = {
    "Authorization": "Bearer sk-xxxx",
    "Content-Type": "application/json",
}
json_data = {
    "model": "deepseek:deepseek-chat",
    "messages": [{"role": "user", "content": "Hi"}],
    "stream": False,
}

resp = requests.post(url, headers=headers, json=json_data, timeout=30)
data = resp.json()
print(data["choices"][0]["message"]["content"])

Formato de errores

Los errores suelen seguir el estilo OpenAI, por ejemplo:

{
  "error": {
    "message": "Incorrect API key provided. For details",
    "type": "invalid_request_error",
    "param": null,
    "code": "invalid_api_key"
  },
  "request_id": "9f6b3bb8-9328-91ad-a5b7-1feed430211b"
}

Códigos frecuentes:

  • invalid_api_key — Clave faltante, revocada o no aceptada.
  • model_not_found — El valor model no está disponible en esta puerta de enlace.
  • insufficient_quota u errores de saldo — Cuota o saldo prepago insuficiente.

Siguientes pasos