Clientes/pi

Use a API da Wokey com o pi

Obtenha uma chave de API da Wokey, aponte o pi para a base URL da Wokey e confirme a conexão com uma requisição curl.

Atualizado

Nesta páginaexpand_more

Obtenha uma chave de API e a base URLlink

Todos os clientes usam a mesma chave de API da Wokey e a mesma base URL.

Crie uma chave de API

Entre e crie uma chave da plataforma na página API. As chaves de uma mesma conta compartilham o saldo dela.

Criar chave de APIkey

Use a base URL da Wokey

Defina como base URL do cliente o domínio do gateway; a configuração abaixo mostra se é preciso acrescentar /v1.

Configure o clientelink

O pi lê providers personalizados de models.json. A configuração abaixo chama os modelos Claude pelo Anthropic Messages; para GPT, DeepSeek e outros modelos, adicione um segundo provider com api definido como openai-completions e um baseUrl terminado em /v1.

  1. 1

    Exporte a chave de API

    Execute export WOKEY_API_KEY="YOUR_API_KEY" no terminal que inicia o pi, ou adicione ao ~/.zshrc.

  2. 2

    Escreva o models.json

    Salve o conteúdo abaixo em ~/.pi/agent/models.json. Se o arquivo já tiver outros providers, adicione apenas a entrada wokey sob providers.

  3. 3

    Selecione o modelo

    Inicie o pi, digite /model e escolha um modelo sob 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 e base URLslink

Quando um mesmo cliente troca de formato de API, pode mudar se a base URL termina em /v1.

FormatoBase URLUse para
Anthropic Messageshttps://api.wokey.aiModelos Claude
OpenAI Chat Completionshttps://api.wokey.ai/v1DeepSeek, GLM, Kimi e outros modelos
OpenAI Responseshttps://api.wokey.ai/v1Modelos GPT

Onde é configurado: ~/.pi/agent/models.json

Verifique com curllink

Se o cliente mostrar um erro, primeiro descarte problemas com a chave e a base URL usando curl.

pi usa o formato Anthropic Messages por padrão. Se esta requisição retornar 200, a chave e a base URL estão corretas. Substitua YOUR_API_KEY pela sua chave antes de enviar.

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" }
    ]
  }'

Erros e solução de problemaslink

Primeiro separe os casos de autenticação, saldo, limite de taxa, disponibilidade do modelo e tempo limite do upstream.

401

invalid api key

A chave está ausente, foi digitada errado, foi excluída, ou os cabeçalhos Authorization / x-api-key são conflitantes.

402

insufficient balance

O saldo da conta está baixo demais. Recarregue antes de enviar mais requisições.

403

model_denylisted / account_restricted

As chamadas ao modelo, ou a todos os modelos da conta, estão pausadas após violações repetidas. Veja Taxas de tratamento de violação e restrições.

403

request_blocked

Esta requisição foi bloqueada antes de chegar ao upstream e não é cobrada, por exemplo o reenvio sem alterações de uma requisição que o modelo acabou de recusar, ou um usuário final pausado (X-End-User-Id). A mensagem de erro diz o que está bloqueado; altere a requisição conforme indicado ou tente de novo mais tarde. As outras requisições não são afetadas.

429

rate limited

O tráfego está frequente demais. Tente de novo mais tarde ou reduza a concorrência. Se só um modelo, ou um usuário final (X-End-User-Id), continua retornando 429, pode ser um limite temporário após violações.

499

client disconnected

O cliente fechou a conexão antes de a resposta terminar (código downstream_aborted). Por padrão isso é gratuito. Quando uma conta tem pelo menos 50 desconexões do cliente nas últimas 24 horas e elas representam 10% ou mais das suas requisições, as requisições desconectadas seguintes são cobradas pelo uso que o upstream informou: a entrada processada, incluindo leituras e gravações de cache, e a saída apenas quando o upstream a contabilizou. Uma desconexão antes de o upstream informar qualquer uso continua gratuita. A conta é avisada quando a cobrança começa, e a cobrança para automaticamente em até uma hora quando a taxa de desconexão volta ao normal. A causa comum é um tempo limite do cliente ou do proxy curto demais, ou um programa que cancela requisições antes de terminarem.

502

upstream unavailable

O serviço do modelo upstream está temporariamente indisponível. Troque de modelo ou tente de novo mais tarde.

504

upstream timeout

A resposta do upstream excedeu o tempo limite. Encurte o contexto, reduza max_tokens ou tente de novo.

529

upstream overloaded

O modelo upstream está temporariamente sobrecarregado e a Wokey já tentou de novo por outras rotas (código upstream_overloaded). Não tem relação com o seu saldo. Tente de novo em instantes ou troque de modelo.

Perguntas frequenteslink

O baseUrl do pi deve terminar em /v1?
Depende do campo api. Com anthropic-messages use https://api.wokey.ai sem /v1; com openai-completions ou openai-responses use https://api.wokey.ai/v1.
Por que os modelos da Wokey não aparecem em /model?
O pi não lista modelos personalizados quando não consegue resolver a chave de API. Se apiKey for $WOKEY_API_KEY, exporte WOKEY_API_KEY no mesmo terminal que inicia o pi e depois verifique se models.json é um JSON válido. O /model relê o arquivo toda vez que é aberto.
Como envio imagens para um modelo da Wokey no pi?
Modelos personalizados no pi declaram apenas entrada de texto por padrão. Adicione "input": ["text", "image"] a um modelo que aceita imagens para declarar que ele recebe entrada de imagem.
Preciso alterar a janela de contexto e a saída máxima?
Sem eles, o pi assume contextWindow 128000 e maxTokens 16384. Quando o modelo tem uma janela maior, defina contextWindow e maxTokens na entrada do modelo com os valores da página dele.
Posso manter a chave de API fora do arquivo?
Sim. apiKey aceita uma variável de ambiente escrita como $NAME, e uma forma !command que lê a chave da saída de um comando.