IA

IA com Node.js e TypeScript

Esta página mostra exemplos práticos para chamar a API de IA da Zenifra em aplicações Node.js e TypeScript usando clientes OpenAI-compatible.

Pré-requisitos

  • uma chave criada em Modelos IA no console
  • budget configurado para a chave
  • modelo habilitado para essa chave
  • Node.js 18+ ou runtime compatível com fetch

Guarde a chave em variável de ambiente:

export ZENIFRA_AI_API_KEY="sua-chave"

Exemplo com SDK da OpenAI

Instale o SDK:

npm install openai

Crie ai-example.ts:

import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: 'https://ai.zenifra.com/v1',
  apiKey: process.env.ZENIFRA_AI_API_KEY,
});

async function main() {
  const response = await client.chat.completions.create({
    model: 'zenifra/qwen3.6-35b-a3b',
    messages: [
      {
        role: 'user',
        content: 'Resuma em três tópicos o que é uma PaaS.',
      },
    ],
  });

  console.log(response.choices[0]?.message?.content);
}

main().catch((error) => {
  console.error(error);
  process.exit(1);
});

Troque o modelo pelo nome habilitado para sua chave no console.

Exemplo com curl

curl https://ai.zenifra.com/v1/chat/completions \
  -H "Authorization: Bearer $ZENIFRA_AI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "zenifra/qwen3.6-35b-a3b",
    "messages": [
      { "role": "user", "content": "Explique containers em uma frase." }
    ]
  }'

Tratamento de erros

Trate erros comuns antes de colocar a integração em produção.

try {
  const response = await client.chat.completions.create({
    model: 'zenifra/qwen3.6-35b-a3b',
    messages: [{ role: 'user', content: 'Olá' }],
  });

  console.log(response.choices[0]?.message?.content);
} catch (error: any) {
  const status = error?.status;

  if (status === 401) {
    throw new Error('Chave de IA inválida ou ausente.');
  }

  if (status === 403) {
    throw new Error('Modelo não permitido para esta chave.');
  }

  if (status === 429) {
    throw new Error('Limite excedido. Tente novamente em alguns segundos.');
  }

  throw error;
}

Uso em produção

  • use variável de ambiente para a chave
  • limite cada chave por budget
  • separe chaves por ambiente ou integração
  • registre apenas IDs, status e tempos; não registre prompts sensíveis sem necessidade
  • revise custos e uso por modelo no console

Próximos passos

FAQ

Posso usar JavaScript sem TypeScript?

Sim. O mesmo exemplo funciona em JavaScript removendo tipos e usando import ou require conforme seu projeto.

Preciso usar o SDK?

Não. Qualquer cliente HTTP pode chamar o endpoint OpenAI-compatible.

Onde vejo tokens e custo?

No console da Zenifra, na área de Modelos IA.