Clientes/pi

Usa la API de Wokey con pi

Obtén una clave de API de Wokey, apunta pi a la base URL de Wokey y confirma la conexión con una solicitud curl.

Actualizado

En esta páginaexpand_more

Obtén una clave de API y la base URLlink

Todos los clientes usan la misma clave de API de Wokey y la misma base URL.

Crea una clave de API

Inicia sesión y crea una clave de la plataforma en la página API. Las claves de una misma cuenta comparten su saldo.

Crear clave de APIkey

Usa la base URL de Wokey

Configura como base URL del cliente el dominio del gateway; la configuración de abajo indica si hay que añadir /v1.

Configura el clientelink

pi lee los providers personalizados desde models.json. La configuración de abajo llama a los modelos Claude mediante Anthropic Messages; para GPT, DeepSeek y otros modelos, agrega un segundo provider con api en openai-completions y un baseUrl que termine en /v1.

  1. 1

    Exporta la clave de API

    Ejecuta export WOKEY_API_KEY="YOUR_API_KEY" en la terminal desde la que inicias pi, o agrégalo a ~/.zshrc.

  2. 2

    Escribe models.json

    Guarda el contenido de abajo en ~/.pi/agent/models.json. Si el archivo ya tiene otros providers, agrega solo la entrada wokey bajo providers.

  3. 3

    Selecciona el modelo

    Inicia pi, escribe /model y elige un modelo bajo wokey.

pi
{
  "providers": {
    "wokey": {
      "baseUrl": "https://api.wokey.ai",
      "api": "anthropic-messages",
      "apiKey": "$WOKEY_API_KEY",
      "models": [
        { "id": "claude-opus-5-5", "reasoning": true, "input": ["text", "image"] }
      ]
    }
  }
}

Formatos de API y base URLlink

Cuando un mismo cliente cambia de formato de API, puede cambiar si la base URL termina en /v1.

FormatoBase URLÚsalo para
Anthropic Messageshttps://api.wokey.aiModelos Claude
OpenAI Chat Completionshttps://api.wokey.ai/v1DeepSeek, GLM, Kimi y otros modelos
OpenAI Responseshttps://api.wokey.ai/v1Modelos GPT

Dónde se configura: ~/.pi/agent/models.json

Verifica con curllink

Si el cliente muestra un error, primero descarta problemas con la clave y la base URL usando curl.

pi usa el formato Anthropic Messages de forma predeterminada. Si esta solicitud devuelve 200, la clave y la base URL son correctas. Reemplaza YOUR_API_KEY por tu clave antes de enviarla.

cURL
curl https://api.wokey.ai/v1/messages \
  -H "x-api-key: YOUR_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "messages": [
      { "role": "user", "content": "Hello" }
    ]
  }'

Errores y solución de problemaslink

Primero distingue los casos de autenticación, saldo, límite de tasa, disponibilidad del modelo y tiempo de espera del upstream.

401

invalid api key

La clave falta, está mal escrita, se eliminó, o los encabezados Authorization / x-api-key no coinciden.

402

insufficient balance

El saldo de la cuenta es demasiado bajo. Recarga antes de enviar más solicitudes.

403

model_denylisted / account_restricted

Las llamadas al modelo, o a todos los modelos de la cuenta, están pausadas tras infracciones repetidas. Consulta Tarifas por gestión de infracciones y restricciones.

403

request_blocked

Esta solicitud se bloqueó antes de llegar al upstream y no se cobra, por ejemplo el reenvío sin cambios de una solicitud que el modelo acaba de rechazar, o un usuario final pausado (X-End-User-Id). El mensaje de error indica qué está bloqueado; modifica la solicitud como indica o vuelve a intentarlo más tarde. Las demás solicitudes no se ven afectadas.

429

rate limited

El tráfico es demasiado frecuente. Vuelve a intentarlo más tarde o reduce la concurrencia. Si solo un modelo, o un usuario final (X-End-User-Id), sigue devolviendo 429, puede ser un límite temporal tras infracciones.

499

client disconnected

El cliente cerró la conexión antes de que terminara la respuesta (código downstream_aborted). Por defecto no se cobra. Cuando una cuenta acumula al menos 50 desconexiones del cliente en las últimas 24 horas y representan el 10% o más de sus solicitudes, las solicitudes desconectadas posteriores se cobran según el uso que informó el upstream: la entrada procesada, incluidas lecturas y escrituras de caché, y la salida solo si el upstream la contabilizó. Una desconexión antes de que el upstream informe cualquier uso sigue siendo gratis. La cuenta recibe un aviso cuando empieza el cobro, y el cobro se detiene automáticamente en menos de una hora cuando la tasa de desconexión vuelve a la normalidad. La causa habitual es un tiempo de espera del cliente o del proxy demasiado corto, o un programa que cancela solicitudes antes de que terminen.

502

upstream unavailable

El servicio del modelo upstream no está disponible temporalmente. Cambia de modelo o vuelve a intentarlo más tarde.

504

upstream timeout

Se agotó el tiempo de espera de la respuesta del upstream. Acorta el contexto, reduce max_tokens o vuelve a intentarlo.

529

upstream overloaded

El modelo upstream está sobrecargado temporalmente y Wokey ya reintentó por otras rutas (código upstream_overloaded). No tiene relación con tu saldo. Vuelve a intentarlo en breve o cambia de modelo.

Preguntas frecuenteslink

¿El baseUrl de pi debe terminar en /v1?
Depende del campo api. Con anthropic-messages usa https://api.wokey.ai sin /v1; con openai-completions u openai-responses usa https://api.wokey.ai/v1.
¿Por qué no aparecen los modelos de Wokey en /model?
pi no muestra los modelos personalizados cuando no puede resolver la clave de API. Si apiKey es $WOKEY_API_KEY, exporta WOKEY_API_KEY en la misma terminal desde la que inicias pi y luego verifica que models.json sea JSON válido. /model vuelve a leer el archivo cada vez que se abre.
¿Cómo envío imágenes a un modelo de Wokey en pi?
Los modelos personalizados de pi declaran solo entrada de texto de forma predeterminada. Agrega "input": ["text", "image"] a un modelo que acepte imágenes para declarar que recibe entrada de imagen.
¿Tengo que cambiar la ventana de contexto y la salida máxima?
Sin ellos, pi asume contextWindow 128000 y maxTokens 16384. Cuando el modelo tiene una ventana más grande, configura contextWindow y maxTokens en la entrada del modelo con los valores de su página de modelo.
¿Puedo dejar la clave de API fuera del archivo?
Sí. apiKey acepta una variable de entorno escrita como $NAME, y una forma !command que lee la clave de la salida de un comando.