Mude para uma API compatível com a OpenAI com encaminhamento só na UE

Diff de código num cartão claro: uma linha com a chave da OpenAI removida, um URL base e uma chave da Nodion adicionados, com uma etiqueta da região EU Central

Em resumo

  • O Nodion AI Inference, em https://api.nodion.ai/v1, segue o formato da API da OpenAI, pelo que, nas chamadas suportadas, os SDK oficiais da OpenAI funcionam depois de alterar o URL base, a chave de API e o ID do modelo.
  • A API abrange chat completions, embeddings, rerank, OCR, voz para texto, texto para voz, geração de imagens, ferramentas web e decisões System One.
  • Cada projeto pode restringir as regiões que servem os seus pedidos e ativar zero data retention no separador Settings do AI Inference.
  • A utilização é faturada por token, ou por página, segundo, carácter, imagem ou chamada (o web_search também por página obtida), a partir de um saldo pré-pago; os modelos e os preços estão em AI Inference.

Se o seu código já chama a API da OpenAI, transferir chamadas suportadas, como chat completions, para o Nodion AI Inference exige três alterações: o URL base, a chave de API e o ID do modelo. A API em https://api.nodion.ai/v1 segue o formato da API da OpenAI, pelo que os SDK oficiais da OpenAI para Python e Node.js continuam a funcionar. Antes de transferir outras chamadas, confirme que os endpoints e as funcionalidades que utiliza são suportados.

O serviço Nodion AI Inference é da Nodion GmbH, na Alemanha. É faturado ao token a partir de um saldo pré-pago e mantém as chaves, a utilização e as definições de privacidade no mesmo projeto que a sua aplicação. Alguns modelos correm na Nodion, outros são encaminhados para um fornecedor. Para limitar o processamento à UE e exigir zero data retention, defina no projeto uma lista de regiões permitidas que inclua apenas regiões da UE e a política de zero data retention, como se mostra abaixo.

Do que precisa

  • Uma conta Nodion e um projeto. Abra o AI Inference nesse projeto.
  • Uma chave de inferência criada no separador Keys. As chaves de inferência começam por nodion_ai_ e só são mostradas uma vez. As chaves da API da plataforma Nodion não funcionam aqui.
  • Saldo pré-pago. Carregue-o com cartão ou PayPal no separador Billing.

Opção 1: altere duas variáveis de ambiente

Os dois SDK da OpenAI leem o URL base e a chave a partir do ambiente quando cria o cliente sem argumentos. Se o seu código chama OpenAI() em Python ou new OpenAI() em Node.js, defina estas duas variáveis, troque o ID do modelo pelo de um modelo da Nodion e deixe o resto do código como está:

OPENAI_BASE_URL=https://api.nodion.ai/v1
OPENAI_API_KEY=nodion_ai_your_key

Opção 2: altere as definições no código

Se passa as definições no código, adicione o URL base e troque a chave. Python:

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.nodion.ai/v1",
    api_key=os.environ["NODION_AI_KEY"],
)
reply = client.chat.completions.create(
    model="<model>",
    messages=[{"role": "user", "content": "Hello"}],
)
print(reply.choices[0].message.content)

Node.js:

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.nodion.ai/v1",
  apiKey: process.env.NODION_AI_KEY,
});
const reply = await client.chat.completions.create({
  model: "<model>",
  messages: [{ role: "user", content: "Hello" }],
});
console.log(reply.choices[0].message.content);

O streaming, as chamadas de ferramentas (tool calls), o modo JSON e a saída estruturada (structured output) usam as mesmas chamadas do SDK que antes, desde que o modelo os suporte.

Escolha um modelo

Falta alterar apenas o valor de model, porque a Nodion usa os seus próprios IDs de modelo. Uma única chamada lista-os e não precisa de chave:

curl https://api.nodion.ai/v1/models

Cada entrada tem o id a enviar como model, o seu kind (chat, embeddings ou rerank), o comprimento do contexto e da saída, o preço por token em USD e EUR, e supported_features como tools, json_mode, structured_outputs ou reasoning. O campo serving indica se os pesos correm na Nodion (hosted) ou se o pedido é encaminhado para um fornecedor (routed).

Os modelos de OCR, voz, imagem e ferramentas não estão nessa lista. O catálogo completo com preços está em AI Inference e no separador Models do dashboard. Os modelos marcados como Preview podem sair do catálogo com pouca antecedência.

Que endpoints existem

Estes são os principais endpoints em api.nodion.ai/v1; a lista completa está na referência da API.

EndpointO que fazFaturado por
GET /v1/modelsLista os modelos de chat, embeddings e rerankGratuito
POST /v1/chat/completionsChat, ferramentas, saída estruturadaTokens de entrada e de saída
POST /v1/embeddingsEmbeddings vetoriaisTokens de entrada
POST /v1/rerankOrdena documentos por relevância para uma consultaTokens de entrada
POST /v1/systemoneSystem One: decisões tipadas com probabilidadesTokens de entrada
POST /v1/ocrOCR de documentos e imagensPáginas
POST /v1/audio/transcriptions, mais um WebSocket em tempo realVoz para textoSegundos de áudio
POST /v1/audio/speechTexto para vozCaracteres
/v1/audio/voicesLista, cria, lê e elimina vozes clonadasGratuito
POST /v1/images/generationsGeração de imagensImagens
POST /v1/tools/web_search, web_news, web_fetch, web_images, web_videos, web_places, web_maps, web_shopping, web_lensFerramentas webChamadas; web_search também por página obtida

O que funciona de forma diferente

  • Comprimento da saída: sem max_tokens, o gateway define esse valor como o comprimento máximo de saída do modelo. Valores superiores são reduzidos a esse máximo.
  • Utilização em streams: o gateway ativa stream_options.include_usage, por isso o último chunk traz normalmente a contagem de tokens.
  • PDF: envie-os inline como bloco de conteúdo file com um data URI em base64. As primeiras 20 páginas são convertidas em imagens, por isso é necessário um modelo que aceite imagens como entrada. As referências file_id são rejeitadas.
  • Imagens: a geração de imagens devolve apenas b64_json, sem URLs.
  • Erros: o formato de erro da OpenAI, com 402 quando o saldo não cobre um pedido e 429 quando é atingido um limite da chave. Cada resposta inclui um cabeçalho X-Request-ID que pode indicar ao suporte.
  • Limites: por omissão, 300 pedidos e 2 000 000 tokens por minuto e 10 pedidos simultâneos por chave. Contacte o suporte se precisar de mais.

Privacidade: zero data retention e regiões por projeto

O separador Settings do AI Inference controla a forma como os pedidos de um projeto são servidos:

  • permitir ou excluir fornecedores,
  • uma lista opcional de regiões permitidas, que restringe as regiões que podem servir o projeto,
  • opções de política como zero data retention.

As definições aplicam-se ao projeto e, por isso, abrangem todas as suas chaves. Se nenhuma rota disponível para um modelo corresponder a estas definições, o pedido falha com um erro 503. Mantenha separados os projetos com necessidades de privacidade diferentes, por exemplo um para dados de clientes e outro para experiências internas.

Faturação: saldo pré-pago, ao token

Os gastos com IA saem de um saldo pré-pago, separado da fatura mensal da plataforma. Pode carregá-lo com cartão ou PayPal no separador Billing, ou ativar o carregamento automático.

  • O chat é faturado pelos tokens de entrada e de saída ao preço do modelo, e a entrada em cache ao preço de cache quando a rota o reporta.
  • Os embeddings, o rerank e o System One são faturados pelos tokens de entrada. O OCR é faturado por página, a conversão de voz em texto por segundo de áudio, a conversão de texto em voz por carácter, as imagens por imagem e as ferramentas web por chamada, sendo o web_search faturado também por cada página que obtém.
  • Antes de cada chamada, é reservado no saldo um valor igual ao custo máximo do pedido. O pedido é depois liquidado com base na utilização reportada, nunca acima do valor reservado, e o restante é libertado.
  • Cada chave pode ter um limite de gastos diário, e pode definir um limite de gastos mensal no separador Billing.

Os preços por modelo estão em AI Inference, não na tabela de preços da plataforma.

Próximos passos

  • Todos os endpoints com exemplos, limites e códigos de erro: referência da API de IA.
  • Chaves, saldo e separadores do dashboard: documentação do AI Inference.
  • Experimente um modelo antes de mudar: o separador Playground executa chat e outros modos. O tráfego do Playground é contabilizado como qualquer outro pedido.
  • Prefere que o seu agente de programação gira aplicações e bases de dados? Para isso, use o MCP com uma chave da plataforma, não com uma chave de inferência.

Perguntas frequentes

O SDK da OpenAI funciona com o Nodion AI Inference?

Sim. A API segue o formato da OpenAI, pelo que, nas chamadas suportadas, os SDK oficiais para Python e Node.js funcionam se definir o URL base como https://api.nodion.ai/v1 e usar uma chave de inferência e um ID de modelo da Nodion. Confirme o suporte de endpoints e funcionalidades antes de mover outras chamadas.

Como altero o URL base do SDK da OpenAI para Python?

Passe base_url="https://api.nodion.ai/v1" e a sua chave a OpenAI(), ou defina as variáveis de ambiente OPENAI_BASE_URL e OPENAI_API_KEY, que o SDK lê quando não passa argumentos.

Posso restringir o local onde os meus pedidos de IA são processados?

Sim, por projeto. O separador Settings do AI Inference tem uma lista opcional de regiões permitidas, controlos por fornecedor e uma opção de zero data retention. Se nenhuma rota operacional corresponder a estas definições, o pedido falha com um erro 503.

Como é faturado o Nodion AI Inference?

A partir de um saldo pré-pago que carrega com cartão ou PayPal, separado da fatura da plataforma. O chat é faturado por token de entrada e de saída ao preço do modelo; os outros endpoints faturam por página, segundo de áudio, carácter, imagem ou chamada, e o web_search também por página obtida.

Dê uma cloud ao seu agente.

Ganhe até 15 € de crédito ao registar-se.

Continuar com o GitHub

ou com e-mail

Fique a par das novidades.

Novidades do produto, sem spam. Pode cancelar a subscrição a qualquer momento.