نگرانی در مورد خرابی LLM را متوقف کنید: برنامه های AI انعطاف پذیر را با “AI-FALLBACK” بسازید

مدل های بزرگ زبان (LLM) به طور فزاینده ای برای برنامه های مدرن مهم هستند و از ویژگی های تولید محتوا تا استدلال پیچیده برخوردار هستند. با این حال ، با تکیه بر یک ارائه دهنده واحد (مانند OpenAi ، Anthropic ، Google) خطرات را ایجاد می کند: خرابی API ، محدودیت نرخ ، مسائل مربوط به ظرفیت یا خطاهای گذرا می تواند خدمات شما را مختل کند ، تجربه کاربر را تخریب کند و بر تداوم تجارت تأثیر بگذارد.
چگونه می توانیم ویژگی های قدرتمند هوش مصنوعی تری بسازیم؟ در حالی که منطق سفارشی گزینه ای است ، پیچیدگی را اضافه می کند. یک راه حل ساده تر و زیبا تر است ai-fallback
بشر
معرفی ai-fallback
: انعطاف پذیری ساده و اتوماتیک LLM
ai-fallback
یک بسته سبک NPM سبک و وابسته به صفر است که به طور خاص برای ارائه بازپرداخت اتوماتیک بین مدلهای مختلف AI طراحی شده است. این یکپارچه با Vercel Ai SDK محبوب () ادغام می شود (ai
بسته)
ایده اصلی ساده است:
- شما یک لیست سفارش داده شده از مدل های AI را با استفاده از
ai
عملکرد ارائه دهنده SDK (به عنوان مثال ،anthropic()
باopenai()
). - شما با استفاده از مدل مدل Fallback ایجاد می کنید
createFallback
بشر - شما از این نمونه مدل Fallback مستقیم استفاده می کنید
ai
توابع SDK مانندgenerateText
باstreamText
، یاstreamObject
بشر - اگر مدل اصلی شما شکست بخورد ،
ai-fallback
به طور خودکار درخواست را با مدل بعدی در لیست خود احیا می کند.
این امر به طور قابل توجهی مقاومت برنامه شما را با حداقل تغییرات کد تقویت می کند.
چگونه کار می کند: یک نمونه عملی با Vercel Ai SDK
ادغام کننده ai-fallback
ساده است ، به خصوص اگر از قبل استفاده می کنید ai
بسته بندی
import { createFallback } from "ai-fallback";
import { anthropic } from "@ai-sdk/anthropic";
import { openai } from "@ai-sdk/openai";
import { generateText, streamText, streamObject } from "ai";
import { z } from "zod";
// 1. Create the fallback model instance
const model = createFallback({
// Define models in preferred order using ai SDK functions
models: [
anthropic("claude-3-haiku-20240307"), // Try Claude 3 Haiku first
openai("gpt-3.5-turbo"), // Fallback to GPT-3.5 Turbo
// Add more models if needed
],
// Optional: Log errors when a fallback occurs
onError: (error, modelId) => {
console.warn(`Error with model ${modelId}: ${error.message}. Attempting fallback.`);
},
// Optional: Automatically try switching back to the primary model
// after a specified interval (e.g., 5 minutes) following an error.
modelResetInterval: 5 * 60 * 1000, // 5 minutes in milliseconds
// Optional: For streaming, decide if retrying should happen even
// if some output was already sent. Set to true to restart generation
// on the fallback model from scratch if an error occurs mid-stream.
// retryAfterOutput: true,
});
// --- Usage Examples ---
// 2. Use the fallback 'model' directly with Vercel AI SDK functions
// Example 1: Generate Text
async function generate(prompt: string) {
try {
const { text } = await generateText({
model: model, // Pass the fallback model instance
system: "You are a helpful assistant.",
prompt: prompt,
});
console.log("Generated Text:", text);
} catch (error) {
console.error("All AI fallbacks failed for generateText:", error);
}
}
// Example 2: Stream Text
async function stream(prompt: string) {
try {
const { textStream } = await streamText({
model: model, // Pass the fallback model instance
system: "You are a helpful assistant.",
prompt: prompt,
});
console.log("Streaming Text:");
for await (const chunk of textStream) {
process.stdout.write(chunk);
}
console.log(); // Newline after stream
} catch (error) {
console.error("All AI fallbacks failed for streamText:", error);
}
}
// Example 3: Stream Structured Object (using Zod)
async function generateStructured() {
try {
const { partialObjectStream } = await streamObject({
model: model, // Pass the fallback model instance
system: "You are a helpful assistant.",
prompt: "Generate a person object with name and age.",
schema: z.object({
name: z.string(),
age: z.number(),
}),
});
console.log("Streaming Object:");
for await (const partialObject of partialObjectStream) {
console.log(partialObject);
}
} catch (error) {
console.error("All AI fallbacks failed for streamObject:", error);
}
}
// --- Run Examples ---
generate("Explain the concept of idempotency in APIs.");
stream("Write a short story about a curious robot.");
generateStructured();
ویژگی های کلیدی برای قابلیت اطمینان تولید
- ادغام یکپارچه: مستقیم با
ai
عملکردهای اصلی SDK. - سوئیچینگ خودکار: خطاها و ارائه دهنده خرابی شفاف را به صورت شفاف انجام می دهد.
- تنظیم مجدد قابل تنظیم: در
modelResetInterval
گزینه به سیستم اجازه می دهد تا بعد از یک دوره Cooldown ، به طور خودکار به مدل اصلی (اغلب ترجیح داده شده یا ارزان تر) برگردد ، و اطمینان حاصل کنید که شما در یک برگشتی بالقوه گران قیمت بیش از حد لازم باقی نمی مانند. - مقاومت در برابر جریان: در
retryAfterOutput
گزینه کنترل خرابی های میانی را فراهم می کند. تنظیم آن رویtrue
تضمین می کند که اگر خطایی پس از شروع جریان رخ دهد ، کل فرآیند نسل از ابتدا روی مدل موجود دوباره شروع می شود و از خروجی های ناقص یا فاسد جلوگیری می کند. در صورت استفاده از این ، باید محتوای کپی بالقوه را در منطق کاربرد خود کنترل کنید. - نظارت بر خطا: در
onError
پاسخ به تماس ، برای ورود به سیستم و نظارت بر رویدادهای برگشت پذیر فراهم می کند.
چرا این برای برنامه های تولید اهمیت دارد
- قابلیت اطمینان پیشرفته: مستقیماً خطر مشکلات تک ارائه دهنده را کاهش می دهد.
- تجربه کاربر بهبود یافته: کاربران را از خرابی های پس زمینه محافظت می کند ، و تعامل های صاف تری را فراهم می کند.
- عملیات ساده: نیاز به رسیدگی به خطای پیچیده و سفارشی را برای تعویض ارائه دهنده کاهش می دهد.
- افزایش اعتماد به نفس: ویژگی های AI را مستقر کنید و دانستن اینکه شما یک مکانیزم فال بازگشت قوی دارید.
انتخاب استراتژی بازگشت خود
سفارش خود را models
آرایه بر اساس:
- قابلیت/عملکرد: با بهترین مدل برای کار شروع کنید.
- هزینه: دوباره به گزینه های ارزان تر برگردید.
- سرعت: اگر تأخیر مهم است ، مدل های سریعتر را در اولویت قرار دهید.
- سازگاری ویژگی: اطمینان حاصل کنید که Fallbacks از ویژگی های لازم پشتیبانی می کند (به عنوان مثال ، تماس با عملکرد ، طرح های خاص برای
streamObject
).
امروز شروع کنید
انعطاف پذیری کاربرد بسیار مهم است ، به خصوص برای ویژگی های وابسته به هوش مصنوعی. ai-fallback
روشی ساده و قدرتمند برای محافظت در برابر بی ثباتی ارائه دهنده ارائه می دهد.
اجازه دهید اجازه دهید ارائه دهنده خرابی ارائه دهنده برنامه خود را به روز کند. اضافه کردن ai-fallback
به پروژه خود:
npm install ai-fallback @ai-sdk/anthropic @ai-sdk/openai ai zod
# or using yarn, pnpm, bun
بسته را در NPM مشاهده کنید: https://www.npmjs.com/package/ai-fallback
با استفاده از Vercel AI SDK آن را در برنامه خود ادغام کنید. این یک تغییر کوچک است که پیشرفت قابل توجهی در ثبات تولید ایجاد می کند.