Docs
TypeScript / JavaScript
TypeScript / JavaScript
Use o Ignus Code com o SDK oficial da OpenAI para TypeScript e JavaScript.
Instalação
npm install openai
# ou
pnpm add openai
# ou
yarn add openaiConfiguração
import OpenAI from "openai";
export const ignus = new OpenAI({
baseURL: "https://proxy.ignustec.com.br/v1",
apiKey: process.env.IGNUS_API_KEY,
});Em aplicações Next.js ou Node.js, nunca exponha IGNUS_API_KEY no client-side. Use apenas em rotas de API (app/api/...) ou funções server-side.
Chat Completion
import { ignus } from "./lib/ignus";
const response = await ignus.chat.completions.create({
model: "gpt-4o",
messages: [
{ role: "system", content: "Você é um assistente técnico." },
{ role: "user", content: "Explique closures em JavaScript." },
],
temperature: 0.7,
});
console.log(response.choices[0].message.content);Streaming
const stream = await ignus.chat.completions.create({
model: "claude-sonnet-4",
messages: [{ role: "user", content: "Gere uma API REST em Express.js" }],
stream: true,
});
for await (const chunk of stream) {
const delta = chunk.choices[0]?.delta?.content;
if (delta) process.stdout.write(delta);
}Uso com Next.js App Router
import { ignus } from "@/lib/ignus";
import { NextResponse } from "next/server";
export async function POST(req: Request) {
const { messages } = await req.json();
const response = await ignus.chat.completions.create({
model: "gpt-4o-mini",
messages,
});
return NextResponse.json({
content: response.choices[0].message.content,
usage: response.usage,
});
}Uso com Vercel AI SDK
npm install aiimport { ignus } from "@/lib/ignus";
import { OpenAIStream, StreamingTextResponse } from "ai";
export async function POST(req: Request) {
const { messages } = await req.json();
const response = await ignus.chat.completions.create({
model: "gpt-4o",
messages,
stream: true,
});
const stream = OpenAIStream(response);
return new StreamingTextResponse(stream);
}Tipagem
O SDK da OpenAI inclui tipos completos. Use-os para autocompletar e type safety:
import type {
ChatCompletion,
ChatCompletionMessageParam,
ChatCompletionCreateParamsNonStreaming,
} from "openai/resources";
const messages: ChatCompletionMessageParam[] = [
{ role: "system", content: "Você é um assistente." },
{ role: "user", content: "Olá!" },
];
const params: ChatCompletionCreateParamsNonStreaming = {
model: "gpt-4o",
messages,
temperature: 0.8,
};
const response: ChatCompletion = await ignus.chat.completions.create(params);