Middleware مدل‌های زبانی سرویس AI


Middleware مدل زبانی راهی است برای بهینه‌سازی رفتار مدل‌های هوش مصنوعی با اصلاح فراخوانی‌های مدل. Middleware می‌تواند برای افزودن قابلیت‌هایی مثل guardrailها، RAG، کشینگ و لاگ‌گیری در مدل زبانی، به شکلی مستقل، به کار رود. چنین میان‌افزاری می‌تواند به‌صورت جداگانه توسعه یافته و توزیع شود، بدون آن‌که وابستگی مستقیمی به مدل‌های زبانی که روی آن‌ها اعمال می‌شود داشته باشد.


استفاده از middleware مدل زبانی

شما می‌توانید از middleware مدل زبانی از طریق تابع wrapLanguageModel استفاده کنید. این تابع یک مدل زبان و یک middleware مدل زبانی را می‌گیرد و یک مدل زبانی که با middleware ادغام شده است، برمی‌گرداند.

کپی
import { wrapLanguageModel } from 'ai';
import { createOpenAI } from '@ai-sdk/openai';
import { config } from 'dotenv';

config();
const my_model = createOpenAI({
  baseURL: process.env.BASE_URL!,
  apiKey: process.env.LIARA_API_KEY!,
});

const wrappedLanguageModel = wrapLanguageModel({
  model: my_model("openai/gpt-4o-mini"),
  middleware: yourLanguageModelMiddleware,
});

مدل زبانیِ بسته‌بندی‌شده (Wrapped Language Model) می‌تواند درست مانند هر مدل زبانی دیگر مورد استفاده قرار گیرد؛ برای مثال، در streamText:

کپی
const result = streamText({
  model: wrappedLanguageModel,
  prompt: 'What cities are in the United States?',
});

middlewareهای متعدد

می‌توان چندین middleware را به تابع wrapLanguageModel ارائه کرد. این middlewareها به همان ترتیبی اعمال خواهند شد که ارائه شده‌اند.

کپی
const wrappedLanguageModel = wrapLanguageModel({
  model: yourModel,
  middleware: [firstMiddleware, secondMiddleware],
});

// applied as: firstMiddleware(secondMiddleware(yourModel))