Pular para o conteúdo

Node.js

A Norlen é compatível com OpenAI, então a SDK oficial openai em Node.js funciona apontando a baseURL para a Norlen.

Terminal window
npm install openai
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.norlen.io/v1",
apiKey: process.env.NORLEN_API_KEY,
});
const resp = await client.chat.completions.create({
model: "qwen3.6-35b",
messages: [{ role: "user", content: "Olá, Norlen!" }],
});
console.log(resp.choices[0].message.content);
const stream = await client.chat.completions.create({
model: "qwen3.6-35b",
messages: [{ role: "user", content: "Conte até cinco." }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
const resp = await client.embeddings.create({
model: "qwen3-embedding",
input: ["primeiro texto", "segundo texto"],
});
console.log(resp.data[0].embedding.slice(0, 5));

A geração de imagem usa outra base URL (app.norlen.io/api/v1) e não passa pela SDK — use fetch:

const r = await fetch("https://app.norlen.io/api/v1/images/generations", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.NORLEN_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ model: "qwen-image", prompt: "Um farol ao amanhecer", size: "1024x1024" }),
});
const { data } = await r.json();
const buffer = Buffer.from(data[0].b64_json, "base64");
await import("node:fs/promises").then((fs) => fs.writeFile("imagem.png", buffer));