3 min read
npm install ai @ai-sdk/openaiimport { createOpenAI } from "@ai-sdk/openai";
export const pinstripes = createOpenAI({
apiKey: process.env.PLUMB_API_KEY,
baseURL: "https://api.pinstripes.io/v1",
});Put this in lib/pinstripes.ts and import it wherever you need it.
// app/api/chat/route.ts
import { streamText } from "ai";
import { pinstripes } from "@/lib/pinstripes";
export async function POST(req: Request) {
const { messages } = await req.json();
const result = streamText({
model: pinstripes("ps/qwen3.6-a3b"),
messages,
});
return result.toDataStreamResponse();
}useChat on the client// app/chat/page.tsx
"use client";
import { useChat } from "ai/react";
export default function Chat() {
const { messages, input, handleInputChange, handleSubmit } = useChat();
return (
<div>
{messages.map(m => (
<div key={m.id}>
<strong>{m.role}:</strong> {m.content}
</div>
))}
<form onSubmit={handleSubmit}>
<input value={input} onChange={handleInputChange} />
<button type="submit">Send</button>
</form>
</div>
);
}import { generateObject } from "ai";
import { z } from "zod";
import { pinstripes } from "@/lib/pinstripes";
const { object } = await generateObject({
model: pinstripes("ps/qwen3.6-a3b"),
schema: z.object({
sentiment: z.enum(["positive", "negative", "neutral"]),
confidence: z.number().min(0).max(1),
}),
prompt: "Analyse this review: 'Fast inference, great pricing.'",
});
console.log(object); // { sentiment: 'positive', confidence: 0.97 }Add to your .env.local:
PLUMB_API_KEY=sk-ps-...Ready to build?