Pular para o conteúdo

JavaScript / Node.js

Requer Node.js 24, com fetch nativo. Execute no servidor: não exponha a API key em uma aplicação de navegador. Configure as três variáveis dos primeiros passos.

chat.mjs
// Node.js 24: fetch nativo. Não incluir uma API key em código de navegador.
for (const name of ['NEXVRA_BASE_URL', 'NEXVRA_API_KEY', 'NEXVRA_MODEL']) {
if (!process.env[name]) throw new Error(`Configure ${name}`);
}
const response = await fetch(`${process.env.NEXVRA_BASE_URL.replace(/\/$/, '')}/chat/completions`, {
method: 'POST',
redirect: 'error',
signal: AbortSignal.timeout(60_000),
headers: {
Authorization: `Bearer ${process.env.NEXVRA_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: process.env.NEXVRA_MODEL,
messages: [{ role: 'user', content: 'Olá! Responda em uma frase.' }],
max_tokens: 128,
}),
});
if (!response.ok) {
console.error(`HTTP ${response.status}; request-id=${response.headers.get('x-nexvra-request-id') ?? ''}`);
console.error(await response.text());
process.exit(1);
}
const result = await response.json();
console.log(result.choices[0].message.content);

Execute com node chat.mjs. HTTP 4xx/5xx não causa uma exceção automática no fetch; por isso o exemplo verifica response.ok antes de ler o resultado.