به صورت پویا Vertex AI خود را در برنامه Firebase با Firebase Remote Config به روز کنید

هنگام فراخوانی Gemini API از برنامه خود با استفاده از Vertex AI در Firebase SDK، درخواست شما حاوی تعدادی پارامتر است که پاسخ‌های هوش مصنوعی تولیدی را کنترل می‌کنند. اینها معمولاً شامل نام مدل، پیکربندی تولید مدل (حداکثر نشانه‌ها، دما، و غیره)، تنظیمات ایمنی، دستورالعمل‌های سیستم و داده‌های سریع است.

در بیشتر موارد، شما می خواهید این موارد را به صورت درخواستی یا در صورت نیاز برای تعدادی از سناریوها تغییر دهید:

  • مدل هوش مصنوعی مولد خود را بدون انتشار اپلیکیشن جدید به روز کنید. می‌توانید قبل از از کار انداختن نسخه‌های قبلی، به نسخه‌های مدل جدیدتر و پایدار ارتقا دهید، بر اساس نیازها و ویژگی‌های کاربرانتان به مدل‌های کم‌هزینه یا با کارایی بالاتر رها شوید، یا به‌طور مشروط جدیدترین و بهترین مدل‌ها را در بخش‌های خاص کاربر (مانند آزمایش‌کنندگان بتا) مستقر کنید.
  • مکان دسترسی به مدل را طوری تنظیم کنید که به کاربران شما نزدیکتر باشد.
  • A/B دستورالعمل‌ها و درخواست‌های مختلف سیستم را آزمایش کنید، سپس به آرامی مقادیر آزمایشی برنده را در اختیار کاربران خود قرار دهید.
  • از پرچم‌های ویژگی برای افشای سریع یا پنهان کردن سریع ویژگی‌های هوش مصنوعی در برنامه خود استفاده کنید.

Firebase Remote Config همه اینها و موارد دیگر را انجام می دهد و به شما امکان می دهد مقادیر پارامترها را در صورت نیاز و به صورت مشروط برای نمونه های برنامه ای که با ویژگی هایی که در کنسول Firebase تنظیم کرده اید مطابقت دارد، بدون انتشار نسخه جدیدی از برنامه خود، به روز کنید.

این راهنمای راه حل موارد استفاده توصیه شده خاص را ارائه می دهد و نحوه اضافه کردن Remote Config به برنامه هوش مصنوعی مولد خود توضیح می دهد.

پرش به اجرای کد

چرا از Firebase Remote Config با برنامه خود استفاده کنید؟

Firebase Remote Config به شما امکان می دهد به صورت پویا رفتار برنامه خود را بدون نیاز به به روز رسانی برنامه تنظیم کنید. این به ویژه برای برنامه‌هایی که از هوش مصنوعی مولد استفاده می‌کنند قدرتمند است، جایی که تکرار سریع و تنظیم دقیق بسیار مهم است.

موارد استفاده ضروری برای Remote Config با برنامه های هوش مصنوعی مولد

توصیه می کنیم از Remote Config با Vertex AI در Firebase برای موارد استفاده ضروری زیر استفاده کنید:

  • ارتقاء به آخرین نسخه مدل بدون به‌روزرسانی برنامه: از پارامترهای Remote Config برای تغییر نام مدل در صورت نیاز استفاده کنید، تا بتوانید به‌محض در دسترس شدن، آن را به آخرین نسخه مدل دلخواه Gemini خود ارتقا دهید.
  • دستورالعمل‌های سیستم و تنظیمات ایمنی را بدون به‌روزرسانی برنامه به‌روزرسانی کنید: دستورالعمل‌های سیستم و تنظیمات ایمنی را در پارامترهای Remote Config ذخیره کنید تا اطمینان حاصل کنید که اگر بعد از استقرار مشکلی پیدا کردید، می‌توانید آن‌ها را بر اساس درخواست تغییر دهید.
  • کاهش خطر و تقویت ایمنی هوش مصنوعی: از Remote Config Rollouts استفاده کنید تا به طور ایمن و تدریجی تغییرات مولد هوش مصنوعی را برای کاربران iOS و Android خود منتشر کنید.

موارد استفاده پیشرفته و توصیه شده برای Remote Config با برنامه‌های هوش مصنوعی مولد

پس از تنظیم برنامه خود با Remote Config و Google Analytics ، می توانید موارد استفاده پیشرفته را کاوش کنید:

  • تنظیم مکان بر اساس مکان مشتری: از شرایط Remote Config برای تنظیم مکان مدل بر اساس مکان شناسایی شده مشتری استفاده کنید.
  • مدل‌های مختلف را آزمایش کنید : به سرعت بین مدل‌های هوش مصنوعی مولد مختلف آزمایش کنید و جابه‌جا شوید، یا حتی مدل‌های مختلف را در بخش‌های مختلف کاربر مستقر کنید تا بهترین مناسب را برای مورد خاص خود پیدا کنید.
  • بهینه‌سازی عملکرد مدل : پارامترهای مدل، مانند اعلان سیستم، حداکثر نشانه‌های خروجی، دما و تنظیمات دیگر را دقیق تنظیم کنید.
  • استفاده از دستورالعمل‌های مختلف سیستم، درخواست‌ها و پیکربندی مدل بر اساس ویژگی‌های مشتری: هنگام استفاده از Remote Config با Google Analytics ، می‌توانید شرایطی را بر اساس ویژگی‌های مشتری یا مخاطبان سفارشی ایجاد کنید و پارامترهای مختلفی را بر اساس این ویژگی‌ها تنظیم کنید.

    برای مثال، اگر از هوش مصنوعی مولد برای ارائه پشتیبانی فنی در برنامه خود استفاده می‌کنید، ممکن است بخواهید دستورالعمل‌های سیستم را مختص پلتفرم برنامه تنظیم کنید تا اطمینان حاصل کنید که دستورالعمل‌های دقیق به کاربران Android، iOS و پلت فرم وب شما ارائه می‌شود.

  • شخصی سازی تجربیات برای هر کاربر: از شخصی سازی Remote Config برای تعیین خودکار تنظیمات بهینه هوش مصنوعی مولد برای هر کاربر استفاده کنید.

  • کنترل هزینه ها: از راه دور تنظیم کنید که کدام مدل های هوش مصنوعی مولد نامیده می شوند، تعداد دفعات استفاده از آنها و پیکربندی پویا حداکثر مقادیر نشانه خروجی بر اساس مخاطبان کاربر برای کاهش هزینه های غیر ضروری.

  • تجربه و نتایج برنامه را بهینه کنید: از A/B Testing با Remote Config با برنامه‌های iOS، Android و Flutter خود استفاده کنید تا تغییرات پارامترهای هوش مصنوعی را در بخش‌های مختلف کاربر آزمایش کنید تا ببینید چگونه بر معیارهای کلیدی مانند حفظ و درآمد تأثیر می‌گذارد.

با استفاده از برنامه هوش مصنوعی مولد خود با Firebase Remote Config ، می توانید برنامه های کاربردی مبتنی بر هوش مصنوعی انعطاف پذیر، ایمن و مقرون به صرفه بسازید و در عین حال تجربیات لذت بخشی را برای کاربران خود ایجاد کنید.

Firebase Remote Config به برنامه خود اضافه کنید

در این راهنمای راه‌حل، از Firebase Remote Config برای به‌روزرسانی پویا پارامترهای برنامه Android خود که از Vertex AI در Firebase SDK استفاده می‌کنند، استفاده می‌کنید. شما یاد خواهید گرفت که چگونه:

  • پارامترهایی مانند نام مدل ها و دستورالعمل های سیستم را از Firebase Remote Config واکشی و فعال کنید.
  • تماس‌های Gemini API خود را به‌روزرسانی کنید تا از پارامترهای بازیابی شده به صورت پویا استفاده کنید و به شما امکان می‌دهد بین مدل‌های مختلف جابجا شوید یا دستورالعمل‌های سیستم را بدون به‌روزرسانی برنامه تغییر دهید.
  • کنترل پارامترها از راه دور، تنظیم رفتار و قابلیت های مدل در صورت نیاز.

پیش نیازها

این راهنما فرض می‌کند که شما با استفاده از Xcode برای توسعه برنامه‌ها برای پلتفرم‌های اپل (مانند iOS) آشنا هستید. قبل از شروع، مطمئن شوید که موارد زیر را انجام داده اید:

  • راهنمای شروع برای Vertex AI در Firebase SDK را کامل کنید. مطمئن شوید که تمام کارهای زیر را انجام داده اید:

    1. یک پروژه Firebase جدید یا موجود راه اندازی کنید، از جمله استفاده از طرح قیمت گذاری Blaze و فعال کردن API های مورد نیاز.
    2. برنامه خود را به Firebase وصل کنید، از جمله ثبت برنامه خود و افزودن پیکربندی Firebase به برنامه خود.
    3. SDK را اضافه کنید و سرویس Vertex AI و مدل تولیدی را در برنامه خود راه اندازی کنید.
  • Google Analytics را در پروژه خود فعال کنید و SDK آن را به برنامه خود اضافه کنید (برای هدف گیری مشروط، مانند تنظیم مکان سرویس و مدل بر اساس مکان دستگاه مشتری، لازم است).

مرحله 1 : مقادیر پارامتر را در کنسول Firebase تنظیم کنید

یک الگوی Remote Config مشتری ایجاد کنید و پارامترها و مقادیر را برای واکشی و استفاده در برنامه پیکربندی کنید.

  1. پروژه Firebase خود را در کنسول Firebase باز کنید و از منوی پیمایش، Run را باز کرده و Remote Config انتخاب کنید.
  2. اطمینان حاصل کنید که Client از انتخابگر Client/Server در بالای صفحه Remote Config انتخاب شده است.
    • اگر این اولین باری است که از الگوهای سرویس گیرنده Remote Config استفاده می کنید، روی ایجاد پیکربندی کلیک کنید. پنجره Create your first parameter ظاهر می شود.
    • اگر این اولین بار نیست که از الگوهای Remote Config استفاده می‌کنید، روی افزودن پارامتر کلیک کنید.
  3. پارامترهای Remote Config زیر را تعریف کنید:

    نام پارامتر توضیحات تایپ کنید مقدار پیش فرض
    model_name نام مدل برای لیست های به روز نام مدل ها برای استفاده در کد خود، به نام مدل های موجود مراجعه کنید. رشته gemini-2.0-flash
    system_instructions دستورالعمل‌های سیستم مانند یک «مقدمه» هستند که قبل از اینکه مدل در معرض هر دستورالعمل دیگری از کاربر نهایی قرار گیرد تا بر رفتار مدل بر اساس نیازها و موارد استفاده خاص تأثیر بگذارد، اضافه می‌کنید. رشته You are a helpful assistant who knows everything there is to know about Firebase!
    prompt درخواست پیش‌فرض برای استفاده با ویژگی هوش مصنوعی مولد شما. رشته I am a developer who wants to know more about Firebase!
    vertex_location به صورت اختیاری مکان را برای اجرای سرویس Vertex AI و دسترسی به یک مدل کنترل کنید. می توانید شرایطی را برای پیکربندی این گزینه بر اساس مکان مشتری شناسایی شده توسط Google Analytics تنظیم کنید. رشته us-central1
  4. وقتی افزودن پارامترها تمام شد، روی انتشار تغییرات کلیک کنید. اگر این یک الگوی Remote Config جدید نیست، تغییرات را مرور کنید و دوباره روی انتشار تغییرات کلیک کنید.

مرحله 2 : Remote Config در برنامه خود اضافه و مقداردهی اولیه کنید

وابستگی های Remote Config را اضافه کنید و Remote Config در برنامه خود تنظیم کنید. به عنوان بخشی از Vertex AI در راه اندازی Firebase ، شما قبلاً Firebase SDK را به برنامه خود اضافه کرده اید، اما باید Remote Config نیز اضافه کنید.

  1. در Xcode، با پروژه باز، به File > Add Package Dependencies بروید.
  2. firebase-ios-sdk را انتخاب کنید و سپس روی افزودن بسته کلیک کنید.
  3. از مسیریابی پروژه، برنامه خود > اهداف > برنامه خود را انتخاب کنید.
  4. از برگه عمومی ، به Frameworks, Libraries, and Embedded Content بروید.
  5. روی + کلیک کنید و FirebaseRemoteConfig را انتخاب کنید، سپس روی Add کلیک کنید.
  6. وارد کردن FirebaseRemoteConfig را به کد خود اضافه کنید:

    import FirebaseRemoteConfig
    
  7. در کلاس مناسب برای برنامه شما (در برنامه نمونه ، این در داخل VertexAISampleApp ، در کلاس AppDelegate است)، Firebase را مقداردهی اولیه کنید و Remote Config به منطق برنامه اصلی خود اضافه کنید.

    در اینجا، Remote Config و Remote Config شنونده بلادرنگ را به عنوان ورودی اضافه می‌کنید تا برنامه بتواند مقادیر جدید را در زمان واقعی واکشی کند و حداقل فاصله واکشی را اضافه کند:

    let remoteConfig = RemoteConfig.remoteConfig()
    let settings = RemoteConfigSettings()
    settings.minimumFetchInterval = 3600
    remoteConfig.configSettings = settings
    

در این مثال، فاصله واکشی پیش‌فرض 3600 ثانیه است، اما توصیه می‌کنیم در طول توسعه، حداقل فاصله واکشی نسبتاً کم را در داخل کد خود تنظیم کنید.

مرحله 3 : مقادیر پارامترهای درون برنامه را تنظیم کنید

شما باید مقادیر پارامترهای پیش‌فرض درون برنامه را در شی Remote Config تنظیم کنید، به طوری که برنامه شما قبل از اتصال به باطن Remote Config ، اگر دسترسی به شبکه مشتری قطع شد و/یا اگر هیچ مقداری در backend پیکربندی نشده باشد، کاربردی باشد.

  1. از کنسول Firebase ، Remote Config باز کنید.
  2. در برگه پارامترها ، منو را باز کنید و مقادیر پیش فرض را دانلود کنید .
  3. وقتی از شما خواسته شد، plist. را برای iOS فعال کنید، سپس روی دانلود فایل کلیک کنید.
  4. فایل را در فهرست برنامه خود ذخیره کنید (اگر از برنامه نمونه استفاده می کنید، در FirebaseVertexAI/Sample/VertexAISample ذخیره کنید).
  5. در Xcode، روی برنامه خود کلیک راست کرده و Add Files را انتخاب کنید (اگر از نمونه استفاده می کنید، روی VertexAISample راست کلیک کنید و Add Files to "VertexAISample" را انتخاب کنید).
  6. remote_config_defaults.plist را انتخاب کنید، سپس روی افزودن کلیک کنید.
  7. کد برنامه خود را برای ارجاع به فایل پیش فرض به روز کنید:

    // Set default values
    remoteConfig.setDefaults(fromPlist: "remote_config_defaults")
    

مرحله 4 : مقادیر را واکشی و فعال کنید

پس از تنظیم پیش فرض ها، موارد زیر را برای واکشی و فعال کردن مقادیر اضافه کنید:

// Fetch and activate Remote Config values
remoteConfig.fetchAndActivate { status, error in
  if let error = error {
    print("Error fetching Remote Config: \(error.localizedDescription)")
  }
}

هر زمان که یک الگوی Remote Config جدید منتشر می شود، این باید شی Remote Config به روز کند.

مرحله 5 : یک شنونده Remote Config بیدرنگ اضافه کنید

یک شنونده بیدرنگ Remote Config اضافه کنید تا مطمئن شوید که تغییراتی که در قالب Remote Config ایجاد می‌کنید به محض به‌روزرسانی به مشتری منتشر می‌شوند.

کد زیر هر زمان که مقدار پارامتر تغییر کند، شی Remote Config به روز می کند.

// Add real-time Remote Config
remoteConfig.addOnConfigUpdateListener { configUpdate, error in
  guard let configUpdate = configUpdate, error == nil else {
    print("Error listening for config updates: \(error?.localizedDescription ?? "No error available")")
    return
  }

  print("Updated keys: \(configUpdate.updatedKeys)")
  remoteConfig.activate { changed, error in
    guard error == nil else {
      print("Error activating config: \(error?.localizedDescription ?? "No error available")")
      return
    }
    print("Activated config successfully")
  }
}

هر زمان که یک الگوی Remote Config جدید منتشر می شود، این باید شی Remote Config به روز کند.

مرحله 6 : مقادیر Remote Config را به متغیرهای Vertex AI اختصاص دهید

اکنون که Remote Config به طور کامل پیکربندی شده است، کد خود را به‌روزرسانی کنید تا مقادیر سخت‌کد شده را با مقادیر منبع‌شده از Remote Config جایگزین کنید.

مقادیری را برای ذخیره مقادیر درخواستی مدل و سیستم خود ایجاد کنید. کد زیر دریافت مکان، نام مدل، دستورالعمل‌های سیستم، درخواست کاربر و موقعیت AI Vertex از Remote Config را نشان می‌دهد:

// Initialize the Vertex AI service
// Optionally specify a location in which to run the service and access the model
let vertexLocation = remoteConfig.configValue(forKey: "vertex_location").stringValue
let vertex = VertexAI.vertexAI(location: vertexLocation)

// Initialize the generative model with a model that supports your use case
// Specify a model that supports system instructions, like a Gemini 1.5 model
let modelName = remoteConfig.configValue(forKey: "model_name").stringValue
let systemInstructions = remoteConfig.configValue(forKey: "system_instructions").stringValue

let model = vertex.generativeModel(
  modelName: modelName,
  systemInstruction: ModelContent(role: "system", parts: systemInstructions)
)

// Provide a prompt that contains text
let userPrompt = remoteConfig.configValue(forKey: "prompt").stringValue

// To generate text output, call generateContent with the text input
let response = try await model.generateContent(userPrompt)
if let text = response.text {
  print(text)
}

مرحله 7 : برنامه را اجرا کنید

برنامه خود را بسازید و اجرا کنید و بررسی کنید که کار می کند. از صفحه Remote Config در کنسول Firebase تغییراتی در پیکربندی خود ایجاد کنید، تغییرات را منتشر کنید و نتیجه را تأیید کنید.

مراحل بعدی