AI Observability

مقیاس‌پذیری مشاهده‌پذیری هوش مصنوعی: تسلط بر جداسازی چند مستأجری و تخصیص هزینه با Langfuse

با گذار از نمونه‌های اولیه تک‌مستأجری به پلتفرم‌های SaaS چند مستأجری با حجم بالا، پیچیدگی مشاهده‌پذیری چند برابر می‌شود. دیگر کافی نیست که فقط ببینید یک پرامپت موفق بوده است؛ باید اطمینان حاصل کنید که مستأجر A به داده‌های مستأجر B دسترسی ندارد و باید بدانید دقیقاً مصرف هر مشتری چقدر هزینه برای زیرساخت شما دارد. Langfuse، یک پلتفرم مهندسی LLM با سورس باز، بلوک‌های ساختمانی را برای حل این چالش‌ها فراهم می‌کند، اما پیاده‌سازی صحیح آن‌ها در محیط تولید نیازمند یک رویکرد ساختاریافته است.

چالش وضعیت مشترک در معماری‌های چند مستأجری

در یک معماری میکروسرویس سنتی، جداسازی داده اغلب در سطح پایگاه داده یا کانتینر مدیریت می‌شود. با این حال، در مشاهده‌پذیری هوش مصنوعی، داده‌ها از طریق ردیابی‌های پرامپت، تولیدات و ارزیابی‌ها جریان می‌یابند. اگر از یک پروژه Langfuse سراسری واحد برای همه مستأجران استفاده کنید، با دو ریسک بحرانی مواجه می‌شوید: نشت داده و کدر شدن هزینه‌ها. یک ردیابی از یک مشتری حوزه سلامت هرگز نباید در داشبورد یک خدمات مالی ظاهر شود و نمی‌توانید به سادگی هزینه توکن‌ها را برای فوتربندی سطوح مختلف مشتریان میانگین بگیرید.

استراتژی ۱: جداسازی در سطح پروژه از طریق کلیدهای API

قوی‌ترین راه برای اطمینان از جداسازی در Langfuse، استفاده از پشتیبانی بومی آن از چند پروژه است. هر پروژه Langfuse به عنوان یک فضای نام متمایز با کلیدهای API، سیاست‌های نگهداری و کنترل‌های دسترسی خاص خود عمل می‌کند.

ایجاد پویای پروژه هنگام عضویت

وقتی مستأجر جدیدی برای پلتفرم SaaS شما ثبت‌نام می‌کند، بک‌اند شما باید به صورت برنامه‌ای یک پروژه جدید Langfuse ایجاد کند (یا آن‌ها را به یک استخر از پیش ایجاد شده اختصاص دهد) و کلیدهای Public و Secret منحصربه‌فرد تولید کند. این کلیدها را به صورت امن در مخزن متادیتای مستأجران خود ذخیره کنید، نه در کد سمت کلاینت.

// مثال: اختصاص اعتبارنامه‌های Langfuse هنگام عضویت مستأجر
async function provisionTenant(tenantId, email) {
  // ۱. ایجاد یا دریافت یک پروژه Langfuse
  const project = await langfuseAdminClient.createProject({
    name: `tenant-${tenantId}`,
    metadata: { ssa_tenant_id: tenantId }
  });

  // ۲. تولید کلیدهای API خاص این پروژه
  const keys = await langfuseAdminClient.createApiKeys({
    publicKey: `pk-${tenantId}`,
    secretKey: await generateSecureSecret(),
    projectId: project.id
  });

  // ۳. ذخیره امن در پایگاه داده شما (رمزگذاری شده)
  await db.tenants.update({
    where: { id: tenantId },
    data: {
      langfuse_public_key: keys.publicKey,
      langfuse_secret_key: keys.secretKey
    }
  });
}

استراتژی ۲: تخصیص دقیق هزینه با برچسب‌های متادیتا

اگر ایجاد یک پروژه جداگانه برای هر مستأجر برای موارد استفاده با حجم بالا (مثلاً صدها هزار مستأجر کوچک) از نظر عملیاتی سنگین است، می‌توانید از یک پروژه مشترک واحد استفاده کنید اما با استفاده از metadata و tags جداسازی منطقی سختگیرانه را اعمال کنید.

Langfuse به شما امکان می‌دهد جفت‌های کلید-ارbitrary را به هر ردیابی، اسپن و تولید متصل کنید. با تزریق مداوم شناسه داخلی مستأجر خود در این فیلدها، می‌توانید هزینه‌ها را بر اساس مستأجر فیلتر و تجمیع کنید.

پیاده‌سازی ردیابی هزینه

Langfuse به طور خودکار استفاده از توکن‌ها و قیمت‌گذاری مدل‌ها را ثبت می‌کند. برای تخصیص هزینه‌ها، باید اطمینان حاصل کنید که ردیابی‌های شما به درستی برچسب‌گذاری شده‌اند. در اینجا نحوه یکپارچه‌سازی این کار در لایه برنامه شما آمده است:

import { Langfuse } from 'langfuse';

const langfuse = new Langfuse({
  publicKey: 'pk-shared',
  secretKey: 'sk-shared',
  baseUrl: 'https://cloud.langfuse.com'
});

export function logLLMGeneration(tenantId, model, input, output, tokens) {
  return langfuse.generation({
    name: "customer-support-bot",
    model: model,
    input: input,
    output: output,
    usage: {
      promptTokens: tokens.prompt,
      completionTokens: tokens.completion
    },
    // حیاتی: برچسب‌گذاری با شناسه مستأجر برای جداسازی و فوتربندی
    metadata: {
      tenantId: tenantId,
      feature: "auto-response",
      version: "v2.1"
    },
    tags: [`tenant:${tenantId}`]
  });
}

یکپارچه‌سازی فوتربندی و حریم خصوصی داده

با برچسب‌گذاری یا جداسازی صحیح داده‌ها، اکنون می‌توانید یک خط لوله فوتربندی بسازید. برای جداسازی در سطح پروژه، می‌توانید متریک‌ها را مستقیماً از پروژه هر مستأجر دریافت کنید. برای پروژه‌های مشترک، از API Langfuse برای پرس‌وجو از لاگ‌های تولید فیلتر شده بر اساس metadata.tenantId استفاده کنید.

ملاحظات حریم خصوصی: اطمینان حاصل کنید که میانی‌افور لاگ‌برداری شما PII (اطلاعات قابل شناسایی شخصی) را قبل از ارسال داده به Langfuse پاکسازی می‌کند، به ویژه در صنایع با الزامات سختگیرانه مانند HIPAA یا GDPR. Langfuse از سانسور (Redaction) پشتیبانی می‌کند، اما فیلترسازی در سطح برنامه خط دفاعی امن‌تری است.

نتیجه‌گیری

پیاده‌سازی مشاهده‌پذیری چند مستأجری در یک محیط SaaS فقط درباره دیدن لاگ‌ها نیست؛ بلکه درباره محافظت از مرزهای داده و ارائه شفافیت هزینه‌ای شفاف و ریزبینانه است. چه انتخاب کنید امنیت سختگیرانه پروژه‌های Langfuse برای هر مستأجر یا مقیاس‌پذیری برچسب‌گذاری مبتنی بر متادیتا در یک پروژه مشترک، Langfuse قلاب‌های مورد نیاز را برای ساخت یک پشته مشاهده‌پذیری هوش مصنوعی درجه تولید فراهم می‌کند. با جریان عضویت خود شروع کنید، برچسب‌گذاری یکپارچه را تضمین کنید و منطق فوتربندی خود را بر اساس داده‌های ردیابی تأیید شده بسازید.

Share: