گزینه‌های پیکربندی برای تجربیات ترکیبی در برنامه‌های اندروید


این صفحه گزینه‌های پیکربندی زیر را برای تجربیات ترکیبی شرح می‌دهد:

مطمئن شوید که راهنمای شروع به کار برای ساخت تجربیات ترکیبی را تکمیل کرده‌اید.

تنظیم حالت استنتاج

مثال‌های موجود در راهنمای شروع به کار از حالت PREFER_ON_DEVICE استفاده می‌کنند، اما این تنها یکی از چهار حالت استنتاج موجود است.

حالت‌های استنتاج موجود به شرح زیر هستند:

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

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)
    

    Java

    InferenceMode mode = InferenceMode.PREFER_ON_DEVICE;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • ONLY_ON_DEVICE : در صورت موجود بودن و پشتیبانی از نوع درخواست، سعی کنید از مدل روی دستگاه استفاده کنید. در غیر این صورت، یک استثنا ایجاد کنید .

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.ONLY_ON_DEVICE)
    

    Java

    InferenceMode mode = InferenceMode.ONLY_ON_DEVICE;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • PREFER_IN_CLOUD : اگر دستگاه آنلاین است و مدل در دسترس است، سعی کنید از مدل میزبانی ابری استفاده کنید. اگر دستگاه آفلاین است، به مدل روی دستگاه برگردید . در تمام موارد دیگر خرابی، یک استثنا ایجاد کنید .

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.PREFER_IN_CLOUD)
    

    Java

    InferenceMode mode = InferenceMode.PREFER_IN_CLOUD;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    
  • ONLY_IN_CLOUD : اگر دستگاه آنلاین است و مدل در دسترس است، سعی می‌کند از مدل میزبانی ابری استفاده کند. در غیر این صورت، یک استثنا ایجاد می‌کند .

    Kotlin

    val config = OnDeviceConfig(mode = InferenceMode.ONLY_IN_CLOUD)
    

    Java

    InferenceMode mode = InferenceMode.ONLY_IN_CLOUD;
    OnDeviceConfig config = new OnDeviceConfig(mode);
    

تعیین اینکه آیا از استنتاج درون دستگاهی یا درون ابری استفاده شده است

اگر از حالت‌های استنتاج PREFER_ON_DEVICE یا PREFER_IN_CLOUD استفاده می‌کنید، دانستن اینکه کدام حالت برای درخواست‌های داده شده استفاده شده است، می‌تواند مفید باشد. این اطلاعات توسط ویژگی inferenceSource هر پاسخ ارائه می‌شود.

وقتی به این ویژگی دسترسی پیدا می‌کنید، مقدار برگشتی یا ON_DEVICE یا IN_CLOUD خواهد بود.

Kotlin

// ...

print("You used: ${result.response.inferenceSource}")

print(result.response.text)

Java

// ...

System.out.println("You used: " + result.getResponse().getInferenceSource());

System.out.println(result.getResponse().getText());

یک مدل میزبانی ابری برای استفاده مشخص کنید

برای مشاهده محتوا و کد مخصوص ارائه‌دهنده در این صفحه، روی ارائه‌دهنده API Gemini خود کلیک کنید.

اگر استنتاج اولیه یا ثانویه شما ممکن است توسط یک مدل میزبانی شده توسط ابر انجام شود، باید هنگام ایجاد نمونه generativeModel ، صریحاً یک مدل ابری را برای استفاده مشخص کنید.

Kotlin

val model = Firebase.ai(backend = GenerativeBackend.googleAI())
    .generativeModel(
        modelName = "MODEL_NAME",
        onDeviceConfig = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)
    )

Java

GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
    .generativeModel(
        "MODEL_NAME",
        new OnDeviceConfig(InferenceMode.PREFER_ON_DEVICE)
    );

GenerativeModelFutures model = GenerativeModelFutures.from(ai);

نام مدل‌ها را برای همه مدل‌های پشتیبانی‌شده Gemini پیدا کنید.

استفاده از پیکربندی مدل برای کنترل پاسخ‌ها

برای مشاهده محتوا و کد مخصوص ارائه‌دهنده در این صفحه، روی ارائه‌دهنده API Gemini خود کلیک کنید.

در هر درخواست به یک مدل، می‌توانید پیکربندی مدل را برای کنترل نحوه تولید پاسخ توسط مدل ارسال کنید. مدل‌های میزبانی شده توسط ابر و مدل‌های روی دستگاه، گزینه‌های پیکربندی متفاوتی (پارامترهای ابری در مقابل پارامترهای روی دستگاه ) ارائه می‌دهند.

برای مدل‌های میزبانی‌شده توسط ابر، پیکربندی آنها را مستقیماً در پیکربندی مدل تنظیم کنید. با این حال، برای مدل‌های روی دستگاه، پیکربندی آنها را در یک onDeviceConfig تنظیم کنید.

این پیکربندی در طول عمر نمونه حفظ می‌شود. اگر می‌خواهید از پیکربندی متفاوتی استفاده کنید، یک نمونه GenerativeModel جدید با آن پیکربندی ایجاد کنید.

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

Kotlin

val model = Firebase.ai(backend = GenerativeBackend.googleAI())
    .generativeModel("MODEL_NAME",
        // Config for cloud-hosted model
        generationConfig = generationConfig {
          temperature = 0.8f,
          topK = 10
        },
        // Config for on-device model
        onDeviceConfig = onDeviceConfig {
          mode = InferenceMode.PREFER_ON_DEVICE,
          temperature = 0.8f,
          topK = 5
        })

Java

// Config for cloud-hosted model
GenerationConfig generationConfig = new GenerationConfig.Builder()
    .setTemperature(0.8f)
    .setTopK(10)
    .build();

// Config for on-device model
OnDeviceConfig onDeviceConfig = new OnDeviceConfig.Builder()
    .setMode(InferenceMode.PREFER_ON_DEVICE)
    .setTemperature(0.8f)
    .setTopK(5)
    .build();

GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
    .generativeModel(
        "MODEL_NAME",
        generationConfig,
        onDeviceConfig
    );

GenerativeModelFutures model = GenerativeModelFutures.from(ai);