ORYKSAORYKSADevelopers
Obter chaves de API

O modelo ORYKSA (compatível com OpenAI)

Use a ORYKSA como o modelo de IA de qualquer automação, no lugar da OpenAI ou do OpenRouter. Os nodes do seu n8n falam com YouTube, Instagram, LinkedIn, Google Drive ou Google Sheets com as suas contas; a ORYKSA escreve, resume, classifica, extrai e decide qual ferramenta chamar. O consumo sai das interações do seu plano.

POST/v1/chat/completions
GET/v1/models

Dois modelos

ModeloO que é
oryksaO modelo geral. Segue o seu prompt de sistema e as suas mensagens exatamente como você envia. Suporta ferramentas, saída em JSON e streaming. Não sabe nada da sua conta e nunca age nela. É este que substitui a OpenAI.
oryksa-assistantO seu próprio assistente ORYKSA, com o conhecimento e os dados do seu negócio. Só responde. As ferramentas são ignoradas.

Qualquer outro nome de modelo (por exemplo gpt-4o, já escrito em um fluxo) é respondido pelo oryksa, para os fluxos existentes continuarem funcionando.

curl https://api.oryksa.com/v1/chat/completions \
  -H "Authorization: Bearer oryk_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "oryksa",
    "messages": [
      {"role": "system", "content": "Você escreve posts para o LinkedIn. Curtos, uma ideia, sem hashtags."},
      {"role": "user", "content": "Vídeo novo: 5 erros ao dar preço aos seus serviços."}
    ]
  }'
import os
from openai import OpenAI

client = OpenAI(api_key=os.environ["ORYKSA_API_KEY"], base_url="https://api.oryksa.com/v1")
out = client.chat.completions.create(
    model="oryksa",
    messages=[
        {"role": "system", "content": "Você escreve posts para o LinkedIn. Curtos, uma ideia, sem hashtags."},
        {"role": "user", "content": "Vídeo novo: 5 erros ao dar preço aos seus serviços."},
    ],
)
print(out.choices[0].message.content, out.usage.total_tokens)

O que é suportado

RecursoSuporte
messagessystem, developer, user, assistant e tool, inteiras e em ordem. Texto e imagens (image_url com https ou data:image, até 4).
tools, tool_choiceChamada de funções no formato da OpenAI: a resposta traz tool_calls e finish_reason: "tool_calls".
response_formatjson_object e json_schema.
streamServer-sent events de verdade, pedaço a pedaço, incluindo chamadas de ferramentas, terminados por [DONE]. stream_options.include_usage é suportado.
usageContagem real de tokens. As suas interações vêm no campo extra oryksa.
temperature, top_p, stop, seed, max_tokens, max_completion_tokensSuportados.
nSó 1.
functions, function_callNão suportados: use tools.

Ferramentas

Envie as ferramentas que o seu fluxo tem. Quando o modelo quer uma, ele responde com a chamada; o seu fluxo executa e devolve o resultado em uma mensagem tool. Cada resposta do modelo gasta uma interação, então um agente que dá 4 voltas gasta 4.

{
  "model": "oryksa",
  "messages": [{"role": "user", "content": "Adicione a Ana com 3 unidades na planilha"}],
  "tools": [{
    "type": "function",
    "function": {
      "name": "sheets_append",
      "description": "Append a row to the sheet",
      "parameters": {"type": "object", "properties": {"row": {"type": "array", "items": {"type": "string"}}}, "required": ["row"]}
    }
  }]
}
{
  "id": "chatcmpl-8f1c2a7e5b9d4c3fa1e0b6d2c4f7a9e1",
  "object": "chat.completion",
  "created": 1791072000,
  "model": "oryksa",
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": null,
      "tool_calls": [{"id": "call_1", "type": "function", "function": {"name": "sheets_append", "arguments": "{\"row\": [\"Ana\", \"3\"]}"}}]
    },
    "finish_reason": "tool_calls"
  }],
  "usage": {"prompt_tokens": 96, "completion_tokens": 18, "total_tokens": 114},
  "oryksa": {"interactions_spent": 1, "interactions_remaining": 2873, "interactions_limit": 3000}
}

Saída em JSON

Para extração e classificação, peça um formato fixo:

"response_format": {
  "type": "json_schema",
  "json_schema": {
    "name": "lead",
    "strict": true,
    "schema": {
      "type": "object",
      "properties": {"name": {"type": "string"}, "email": {"type": "string"}},
      "required": ["name", "email"],
      "additionalProperties": false
    }
  }
}

Limites

LimiteValor
Texto em um pedido (mensagens, definições de ferramentas, argumentos)32 000 caracteres
Resposta2 000 tokens (um max_tokens mais alto é limitado a este valor; uma resposta que não cabe termina com finish_reason: "length")
Pedidos60 por minuto por conta
Imagens4 por pedido

Acima de um limite a API responde 400 e informa o campo em param. Nada é cortado em silêncio.

Interações

Uma interação para cada resposta que o modelo gera, pela mesma contagem de todos os outros canais. Quando o plano não tem mais, a API responde 402 interaction_limit_reached.

Usar no n8n

  1. No n8n, crie uma credencial do tipo OpenAI. Em API Key cole a sua chave oryk_live_ e em Base URL escreva https://api.oryksa.com/v1.
  2. Em qualquer node que receba um modelo de chat (AI Agent, Basic LLM Chain, Information Extractor, Text Classifier, Summarization Chain), adicione um OpenAI Chat Model com essa credencial e escolha o modelo oryksa.
  3. A opção Use Responses API pode ficar ligada ou desligada: a ORYKSA responde nos dois formatos.
  4. Conecte os seus outros nodes (YouTube, Google Sheets, Google Drive, LinkedIn) com as suas contas, como faria com qualquer outro modelo.

Erros

CódigoO que é
400 invalid_requestO corpo não é válido. param informa o campo.
400 input_too_largeMais de 32 000 caracteres de texto.
400 content_policyO pedido foi recusado pelo filtro de segurança de conteúdo.
402 interaction_limit_reachedSem interações neste período.
429 rate_limitedMais de 60 pedidos por minuto.
503 model_unavailableO modelo não está disponível agora. Tente daqui a pouco.

Identificar as solicitações no extrato de consumo

No node HTTP Request, ative Send Headers e adicione:

  • X-Oryksa-Source = n8n
  • X-Oryksa-Workflow = {{ encodeURIComponent($workflow.name) }}
  • X-Oryksa-Workflow-Id = {{ $workflow.id }}
  • X-Oryksa-Execution-Id = {{ $execution.id }}

No node OpenAI só dá para colocar um cabeçalho fixo, na credencial: adicione X-Oryksa-Source = n8n. O extrato mostra n8n, sem o nome do workflow. Para ver cada workflow, use o node HTTP Request.

O Make e o Zapier funcionam do mesmo jeito, com make ou zapier em X-Oryksa-Source.

Responses API

POST https://api.oryksa.com/v1/responses é o formato Responses da OpenAI em cima do mesmo modelo de /v1/chat/completions. Serve para os nodes e bibliotecas que já usam esse formato: mude só o endereço base e a chave.

O que funciona: input (texto ou lista de mensagens), instructions, ferramentas de função (tools, tool_choice, e os itens function_call e function_call_output na conversa), saída em JSON (text.format com json_object ou json_schema), max_output_tokens, temperature, top_p e stream.

O que não existe: as ferramentas próprias da OpenAI (busca na web, busca em arquivos, interpretador de código) e conversas salvas. A ORYKSA não guarda nada: store é sempre false e previous_response_id dá erro 400. Envie a conversa inteira em cada pedido.

Custo: 1 interação por resposta, igual a /v1/chat/completions. Limites: os mesmos (32 000 caracteres de texto por pedido, resposta de até 2 000 tokens, 60 pedidos por minuto). Nada é cobrado quando o pedido falha.

Os modelos são os mesmos: oryksa (modelo geral; qualquer outro nome é tratado como oryksa) e oryksa-assistant (o seu assistente, só resposta).

curl https://api.oryksa.com/v1/responses \
  -H "Authorization: Bearer oryk_live_..." -H "Content-Type: application/json" \
  -d '{"model": "oryksa", "instructions": "Answer in one sentence.", "input": "What is an embedding?"}'

Embeddings

POST https://api.oryksa.com/v1/embeddings transforma textos em vetores, no formato da OpenAI, para busca por significado e bases de conhecimento (por exemplo os nodes de vetores do n8n).

Envie input (um texto ou uma lista de textos; até 256 textos e 32 000 caracteres no total por pedido). Opcionais: dimensions e encoding_format (float ou base64). O campo model é aceito e ignorado: o modelo é sempre oryksa-embeddings.

Custo: 1 interação por pedido, qualquer que seja o número de textos. Nada é cobrado quando o pedido falha.

Importante: os vetores só se comparam com vetores feitos pelo mesmo modelo. Não misture, na mesma base, vetores da ORYKSA com vetores de outro fornecedor.

curl https://api.oryksa.com/v1/embeddings \
  -H "Authorization: Bearer oryk_live_..." -H "Content-Type: application/json" \
  -d '{"input": ["first text", "second text"]}'