SDK गाइड
Vercel AI SDK
Vercel AI SDK में api14 को OpenAI-संगत प्रोवाइडर के रूप में इस्तेमाल करें: generateText, streamText, टूल, generateObject, एम्बेडिंग और त्रुटि प्रबंधन।
Vercel AI SDK अपने OpenAI-संगत प्रोवाइडर के ज़रिए api14 से बात करता है। हर मॉडल id एक ऐसा मॉडल बन जाता है जिसे आप generateText, streamText, generateObject या embed को पास कर सकते हैं।
इंस्टॉल करें
npm install ai @ai-sdk/openai-compatible zod
export API14_API_KEY="sk-api14-..."
कॉन्फ़िगर करें
import { createOpenAICompatible } from "@ai-sdk/openai-compatible";
export const api14 = createOpenAICompatible({
name: "api14",
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
includeUsage: true,
});
@ai-sdk/openai भी काम करता है: createOpenAI({ baseURL: "https://api14.com/api/v1", apiKey }), फिर openai.chat("anthropic/claude-sonnet-4.5") इस्तेमाल करें ताकि अनुरोध /chat/completions पर जाएँ।
टेक्स्ट जनरेट करें
import { generateText } from "ai";
const { text, usage } = await generateText({
model: api14("anthropic/claude-sonnet-4.5"),
prompt: "Explain vector databases in two sentences.",
});
console.log(text, usage);
स्ट्रीमिंग
import { streamText } from "ai";
const result = streamText({
model: api14("openai/gpt-5-mini"),
prompt: "Write a haiku about APIs.",
});
for await (const delta of result.textStream) process.stdout.write(delta);
Next.js route handler में स्ट्रीम सीधे लौटाएँ:
// app/api/chat/route.ts
import { convertToModelMessages, streamText, type UIMessage } from "ai";
export async function POST(req: Request) {
const { messages }: { messages: UIMessage[] } = await req.json();
const result = streamText({ model: api14("openai/gpt-5-mini"), messages: convertToModelMessages(messages) });
return result.toUIMessageStreamResponse();
}
टूल और स्ट्रक्चर्ड आउटपुट
import { generateObject, generateText, tool } from "ai";
import { z } from "zod";
const { text } = await generateText({
model: api14("openai/gpt-5-mini"),
prompt: "What is the weather in Istanbul?",
tools: {
getWeather: tool({
description: "Get the current weather",
inputSchema: z.object({ city: z.string() }),
execute: async ({ city }) => ({ city, tempC: 21 }),
}),
},
});
const { object } = await generateObject({
model: api14("openai/gpt-5-mini"),
schema: z.object({ city: z.string(), country: z.string() }),
prompt: 'Extract the place from: "I live in Lisbon, Portugal."',
});
एम्बेडिंग
import { embedMany } from "ai";
const { embeddings } = await embedMany({
model: api14.textEmbeddingModel("openai/text-embedding-3-small"),
values: ["The quick brown fox", "Lorem ipsum"],
});
त्रुटियाँ
import { APICallError } from "ai";
try {
await generateText({ model: api14("openai/gpt-5-mini"), prompt: "Hi" });
} catch (e) {
if (APICallError.isInstance(e) && e.statusCode === 402) console.error("Balance too low, add funds");
else if (APICallError.isInstance(e) && e.statusCode === 429) console.error("Retry after", e.responseHeaders?.["retry-after"]);
else throw e;
}
SDK डिफ़ॉल्ट रूप से 429 और 5xx को दो बार दोबारा आज़माता है (हर कॉल पर maxRetries)। देखें त्रुटियाँ।