Guides
Vercel AI SDK
Use Scalaix as an OpenAI-compatible provider in the AI SDK.
Install
npm install ai @ai-sdk/openai-compatibleCreate the provider
lib/scalaix.ts
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
export const scalaix = createOpenAICompatible({
name: "scalaix",
baseURL: "https://www.scalaix.com/v1",
apiKey: process.env.SCALAIX_API_KEY,
includeUsage: true,
});Generate and stream text
import { generateText, streamText } from "ai";
import { scalaix } from "@/lib/scalaix";
const { text, usage } = await generateText({
model: scalaix("gpt-4o-mini"),
prompt: "Write a one-line release note for a caching feature.",
});
const result = streamText({
model: scalaix("auto"),
prompt: "Explain exponential backoff to a new engineer.",
});
for await (const delta of result.textStream) process.stdout.write(delta);In a Next.js route handler
app/api/chat/route.ts
import { convertToModelMessages, streamText, type UIMessage } from "ai";
import { scalaix } from "@/lib/scalaix";
export async function POST(req: Request) {
const { messages }: { messages: UIMessage[] } = await req.json();
const result = streamText({
model: scalaix("claude-3-5-haiku-latest"),
messages: convertToModelMessages(messages),
});
return result.toUIMessageStreamResponse();
}The key stays on the server; the browser talks to your route.
Structured output
import { generateObject } from "ai";
import { z } from "zod";
const { object } = await generateObject({
model: scalaix("gpt-4o-mini"),
schema: z.object({ title: z.string(), tags: z.array(z.string()) }),
prompt: "Suggest a title and tags for a post about API versioning.",
});