ساختن تجربه‌های ترکیبی در برنامه‌های Android با مدل‌های درون‌دستگاهی و میزبانی‌شده در فضای ابری


می‌توانید بااستفاده از Firebase AI Logic، برنامه‌ها و ویژگی‌های Android با بهره‌گیری از هوش مصنوعی را با استنتاج ترکیبی بسازید. استنتاج ترکیبی امکان اجرای استنتاج را بااستفاده از مدل‌های درون‌دستگاهی (درصورت دردسترس بودن) فراهم می‌کند و درغیراین‌صورت، به‌طور یکپارچه به مدل‌های میزبانی‌شده در فضای ابری (و بالعکس) برمی‌گردد.

این صفحه نحوه شروع به استفاده از کیت توسعه نرم‌افزار کارخواه و همچنین گزینه‌ها و قابلیت‌های پیکربندی اضافی را شرح می‌دهد.

توجه داشته باشید که استنباط درون‌دستگاهی ازطریق Firebase AI Logic برای برنامه‌های Android که از Firebase AI Logic SDK نسخه ۱۷.۱۰.۰+ (BoM نسخه ۳۴.۱۰.۰+) استفاده می‌کنند و در دستگاه‌های خاص اجرا می‌شوند پشتیبانی می‌شود. این ویژگی تحت حاکمیت شرایط ML Kit، و همچنین شرایط خاص جنبه‌های هوش مصنوعی زایای ML Kit است.

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

موارد استفاده توصیه‌شده

  • استفاده از مدل درون‌دستگاهی برای استنتاج این مزایا را دارد:

    • حریم خصوصی بهبودیافته
    • بافت محلی
    • استنتاج بدون هزینه
    • عملکرد آفلاین
  • استفاده از عملکرد ترکیبی این مزایا را دارد:

    • با درنظر گرفتن دردسترس بودن مدل درون‌دستگاهی و اتصال اینترنت، به بخش بیشتری از مخاطبان خود دسترسی پیدا کنید

قابلیت‌ها و ویژگی‌های پشتیبانی‌شده برای استنباط درون‌دستگاهی

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

حتماً فهرست ویژگی‌هایی را که هنوز برای استنتاج درون‌دستگاهی دردسترس نیستند در پایین این صفحه مرور کنید.

قبل از شروع

به موارد زیر توجه کنید:

دستگاه‌های Android پشتیبانی‌شده و مدل‌های درون‌دستگاهی آن‌ها

برای استنتاج درون‌دستگاهی (که از Prompt API از ML Kit استفاده می‌کند)، می‌توانید فهرستی از دستگاه‌های پشتیبانی‌شده و مدل‌های درون‌دستگاهی آن‌ها را در اسناد ML Kit پیدا کنید.

شروع کنید

این مراحل شروع به کار، تنظیمات عمومی موردنیاز برای هر درخواست پیام‌واره پشتیبانی‌شده‌ای را که می‌خواهید ارسال کنید شرح می‌دهد.

مرحله ۱: راه‌اندازی پروژه Firebase و متصل کردن برنامه به Firebase

  1. به کنسول Firebase وارد شوید، و سپس پروژه Firebase خود را انتخاب کنید.

  2. در کنسول Firebase، به سرویس‌های هوش مصنوعی > منطق هوش مصنوعی بروید.

  3. روی شروع به کار کلیک کنید تا گردش کار راهنمایی‌شده‌ای راه‌اندازی شود که به شما کمک می‌کند میاناهای برنامه‌سازی کاربردی و منابع لازم را برای پروژه‌تان راه‌اندازی کنید.

  4. درصورت درخواست، دستورالعمل‌های روی صفحه را برای ثبت برنامه و افزودن پیکربندی Firebase به برنامه دنبال کنید.

  5. وقتی از شما خواسته می‌شود «ارائه‌دهنده Gemini API» را انتخاب کنید، توصیه می‌کنیم Gemini Developer API را انتخاب کنید، که به شما امکان می‌دهد بدون هزینه به‌سرعت شروع کنید.

    هرزمان بخواهید می‌توانید Agent Platform Gemini API (formerly Vertex AI) (و الزامات آن برای صدور صورت‌حساب) را راه‌اندازی کنید.

  6. برای راه‌اندازی میاناهای برنامه‌سازی کاربردی موردنیاز و سرویس‌های مرتبط برای Firebase AI Logic، در گردش کار ادامه دهید.

    از اوایل ژوئیه ۲۰۲۶، این مرحله از گردش کار به‌طور خودکار Firebase App Check را برای AI Logic اعمال می‌کند، که سرویسی حیاتی برای کمک به محافظت از Gemini API هنگام دسترسی مستقیم از برنامه شما است. به‌عنوان بخشی از شروع کار (مراحل را در ادامه این راهنما ببینید)، وقتی App Check اعمال می‌شود، باید App Check ارائه‌دهنده اشکال‌زدایی را برای توسعه محلی پیکربندی کنید.

  7. برای افزودن کیت‌های توسعه نرم‌افزار لازم به برنامه‌تان، به مرحله بعدی در این راهنما بروید.

مرحله ۲: افزودن کیت‌های توسعه نرم‌افزار لازم

Firebase AI Logic SDK for Android (firebase-ai) همراه با Firebase AI Logic On-Device SDK (firebase-ai-ondevice) دسترسی به میاناهای برنامه‌سازی کاربردی را برای تعامل با مدل‌های زایا فراهم می‌کنند.

در فایل Gradle واحد (سطح برنامه) (مثل <project>/<app-module>/build.gradle.kts)، وابستگی‌های Firebase AI Logic و App Check کتابخانه‌ها را برای Android اضافه کنید:

Kotlin

dependencies {
  // ... other androidx dependencies

  // Add the dependencies for the Firebase AI Logic and App Check libraries
  // Note that the on-device SDK is not yet included in the Firebase Android BoM
  implementation("com.google.firebase:firebase-ai:18.0.0")
  implementation("com.google.firebase:firebase-ai-ondevice:16.0.0-beta06")
  implementation("com.google.firebase:firebase-appcheck-debug:20.0.0")
}

Java

برای Java، باید دو کتابخانه دیگر اضافه کنید.

dependencies {
  // ... other androidx dependencies

  // Add the dependencies for the Firebase AI Logic and App Check libraries
  // Note that the on-device SDK is not yet included in the Firebase Android BoM
  implementation("com.google.firebase:firebase-ai:18.0.0")
  implementation("com.google.firebase:firebase-ai-ondevice:16.0.0-beta06")
  implementation("com.google.firebase:firebase-appcheck-debug:20.0.0")

  // Required for one-shot operations (to use `ListenableFuture` from Guava Android)
  implementation("com.google.guava:guava:31.0.1-android")

  // Required for streaming operations (to use `Publisher` from Reactive Streams)
  implementation("org.reactivestreams:reactive-streams:1.0.4")
}

مرحله ۳: پیکربندی ارائه‌دهنده اشکال‌زدایی App Check برای توسعه محلی

از اوایل ژوئیه ۲۰۲۶، به‌عنوان بخشی از گردش کار راه‌اندازی هدایت‌شده برای AI Logic در کنسول، Firebase App Check به‌طور خودکار برای محافظت از Gemini API اعمال می‌شود. برای توسعه محلی، باید App Check ارائه‌دهنده اشکال‌زدایی را پیکربندی کنید تا گواهی را دور بزند و درعین‌حال اجرای App Check را حفظ کند.

  1. در ساخت اشکال‌زدایی، App Check را برای استفاده از کارخانه ارائه‌کننده اشکال‌زدایی پیکربندی کنید:

    Kotlin

    Firebase.initialize(context = this)
    Firebase.appCheck.installAppCheckProviderFactory(
        DebugAppCheckProviderFactory.getInstance(),
    )
    

    جاوا

    FirebaseApp.initializeApp(/*context=*/ this);
    FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
    firebaseAppCheck.installAppCheckProviderFactory(
            DebugAppCheckProviderFactory.getInstance());
    
  2. نمودار اشکال‌زدایی خود را دریافت کنید:

    1. برنامه‌تان را در شبیه‌ساز یا دستگاه آزمایشی‌تان اجرا کنید.

    2. در گزارش‌هایتان به‌دنبال کد تصحیح App Check بگردید. برای مثال:

      D DebugAppCheckProvider: Enter this debug secret into the allow list
      in the Firebase Console for your project: 123a4567-b89c-12d3-e456-789012345678
      
    3. کد را کپی کنید (برای مثال، 123a4567-b89c-12d3-e456-789012345678).

  3. توکن اشکال‌زدایی خود را در App Check ثبت کنید:

    1. در کنسول Firebase، به برگه امنیت > بررسی برنامه > برنامه‌ها بروید.

    2. برنامه‌تان را پیدا کنید، روی منوِ سرریز () کلیک کنید، و سپس مدیریت کردن کدهای اشکال‌زدایی را انتخاب کنید.

    3. دستورالعمل‌های روی صفحه را برای ثبت کردن کد اشکال‌زدایی دنبال کنید.

برای جزئیات مربوط به ارائه‌دهنده اشکال‌زدایی (ازجمله نحوه دریافت کد اشکال‌زدایی جدید)، اسناد رسمی App Check را بررسی کنید.

مرحله ۴: بررسی کنید که آیا مدل درون‌دستگاهی دردسترس است یا نه

بااستفاده از FirebaseAIOnDevice، بررسی کنید که آیا مدل درون‌دستگاهی دردسترس است یا نه، و اگر دردسترس نیست، مدل را بارگیری کنید.

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

Kotlin

val status = FirebaseAIOnDevice.checkStatus()
when (status) {
  OnDeviceModelStatus.UNAVAILABLE -> {
    Log.w(TAG, "On-device model is unavailable")
  }

  OnDeviceModelStatus.DOWNLOADABLE -> {
    FirebaseAIOnDevice.download().collect { status ->
      when (status) {
        is DownloadStatus.DownloadStarted ->
          Log.w(TAG, "Starting download - ${status.bytesToDownload}")

        is DownloadStatus.DownloadInProgress ->
          Log.w(TAG, "Download in progress ${status.totalBytesDownloaded} bytes downloaded")

        is DownloadStatus.DownloadCompleted ->
          Log.w(TAG, "On-device model download complete")

        is DownloadStatus.DownloadFailed ->
          Log.e(TAG, "Download failed ${status}")
      }
    }
  }
  OnDeviceModelStatus.DOWNLOADING -> {
    Log.w(TAG, "On-device model is being downloaded")
  }

  OnDeviceModelStatus.AVAILABLE -> {
    Log.w(TAG, "On-device model is available")
  }
}

Java

Checking for, downloading, and warming up the model is not yet available for Java.

However, all other APIs and interactions in this guide are available for Java.

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

  • مدت‌زمان لازم برای بارگیری مدل درون‌دستگاهی به عوامل زیادی بستگی دارد، ازجمله شبکه شما.

  • اگر کد شما از مدل درون‌دستگاهی برای استنتاج اصلی یا بازگشتی استفاده می‌کند، مطمئن شوید که مدل در اوایل چرخه حیات برنامه‌تان بارگیری شده باشد تا مدل درون‌دستگاهی قبل‌از اینکه کاربران نهایی با کد در برنامه‌تان مواجه شوند دردسترس باشد.

  • اگر مدل درون‌دستگاهی هنگام درخواست استنباط درون‌دستگاهی دردسترس نباشد، کیت توسعه نرم‌افزار بارگیری مدل درون‌دستگاهی را به‌طور خودکار راه‌اندازی نخواهد کرد. کیت توسعه نرم‌افزار یا به مدل میزبانی‌شده در فضای ابری برمی‌گردد یا یک استثنا ایجاد می‌کند (جزئیات مربوط به رفتار حالت‌های استنتاج را ببینید).

  • AICore (خدمات سیستم Android) مدیریت می‌کند که کدام مدل و نسخه بارگیری شود، مدل را به‌روز نگه می‌دارد، و غیره. توجه داشته باشید که فقط یک مدل در دستگاه بارگیری می‌شود، بنابراین اگر برنامه دیگری در دستگاه قبلاً مدل درون‌دستگاهی را با موفقیت بارگیری کرده باشد، این بررسی نشان می‌دهد که مدل دردسترس است.

بهینه‌سازی تأخیر

برای بهینه‌سازی اولین فراخوانی استنتاج، می‌توانید از برنامه‌تان بخواهید onDeviceExtension?.warmUp() را فراخوانی کند (درحال‌حاضر فقط برای Kotlin دردسترس است). این کار مدل درون‌دستگاهی را در حافظه بار می‌کند و اجزای زمان اجرا را مقداردهی اولیه می‌کند.

مرحله ۵: مقداردهی اولیه سرویس و ایجاد نمونه مدل

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

قبل‌از ارسال درخواست پیام‌واره به مدل، موارد زیر را راه‌اندازی کنید.

  1. سرویس را برای ارائه‌دهنده API انتخابی‌تان مقداردهی اولیه کنید.

  2. نمونه GenerativeModel ایجاد کنید و mode را روی یکی از موارد زیر تنظیم کنید. شرح‌های اینجا بسیار کلی است، اما می‌توانید جزئیات مربوط به عملکرد این حالت‌ها را در تنظیم حالت استنباط بیاموزید.

    • PREFER_ON_DEVICE: تلاش برای استفاده از مدل درون‌دستگاهی؛ درغیراین‌صورت، استفاده از مدل میزبانی‌شده در فضای ابری.

    • ONLY_ON_DEVICE: تلاش برای استفاده از مدل درون‌دستگاهی؛ درغیراین‌صورت، استثنایی ایجاد می‌شود.

    • PREFER_IN_CLOUD: تلاش برای استفاده از مدل میزبانی‌شده در فضای ابری؛ درغیراین‌صورت، بازگشت به مدل درون‌دستگاهی.

    • ONLY_IN_CLOUD: تلاش برای استفاده از مدل میزبانی‌شده در فضای ابری؛ درغیراین‌صورت، استثنایی ایجاد کنید.

Kotlin

// Using this SDK to access on-device inference is an Experimental release and requires opt-in
@OptIn(PublicPreviewAPI::class)

// ...

// Initialize the Gemini Developer API backend service
// Create a GenerativeModel instance with a model that supports your use case
// Set the inference mode (like PREFER_ON_DEVICE to use the on-device model if available)
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
    .generativeModel(
        modelName = "CLOUD_MODEL_NAME",
        onDeviceConfig = OnDeviceConfig(mode = InferenceMode.PREFER_ON_DEVICE)
    )

Java

// Initialize the Gemini Developer API backend service
// Create a GenerativeModel instance with a model that supports your use case
// Set the inference mode (like PREFER_ON_DEVICE to use the on-device model if available)
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
    .generativeModel(
        "CLOUD_MODEL_NAME",
        new OnDeviceConfig(InferenceMode.PREFER_ON_DEVICE)
    );

// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(ai);

مرحله ۶: ارسال درخواست پیام‌واره به مدل

این بخش به شما نشان می‌دهد که چگونه انواع مختلف ورودی را برای تولید انواع مختلف خروجی ارسال کنید، ازجمله:

تولید نوشتار از ورودی فقط نوشتاری

قبل‌از امتحان کردن این نمونه، مطمئن شوید که بخش شروع به کار این راهنما را تکمیل کرده‌اید.

می‌توانید از generateContent() برای تولید نوشتار از پیام‌واره‌ای که حاوی نوشتار است استفاده کنید:

Kotlin

// Imports + initialization of Gemini API backend service + creation of model instance

// Provide a prompt that contains text
val prompt = "Write a story about a magic backpack."

// To generate text output, call generateContent with the text input
val response = model.generateContent(prompt)
print(response.text)

Java

// Imports + initialization of Gemini API backend service + creation of model instance

// Provide a prompt that contains text
Content prompt = new Content.Builder()
    .addText("Write a story about a magic backpack.")
    .build();

// To generate text output, call generateContent with the text input
ListenableFuture<GenerateContentResponse> response = model.generateContent(prompt);
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
    @Override
    public void onSuccess(GenerateContentResponse result) {
        String resultText = result.getText();
        System.out.println(resultText);
    }

    @Override
    public void onFailure(Throwable t) {
        t.printStackTrace();
    }
}, executor);

توجه داشته باشید که Firebase AI Logic از جاری‌سازی پاسخ‌های نوشتاری بااستفاده از generateContentStream (به‌جای generateContent) نیز پشتیبانی می‌کند.

تولید نوشتار از ورودی نوشتار و تصویر (چندحالتی)

قبل‌از امتحان کردن این نمونه، مطمئن شوید که بخش شروع به کار این راهنما را تکمیل کرده‌اید.

می‌توانید از generateContent() برای تولید نوشتار از پیام‌واره‌ای که حاوی نوشتار و حداکثر یک فایل تصویر است (فقط Bitmap) استفاده کنید — با ارائه mimeType هر فایل ورودی و خود فایل.

Kotlin

// Imports + initialization of Gemini API backend service + creation of model instance

// Loads an image from the app/res/drawable/ directory
val bitmap: Bitmap = BitmapFactory.decodeResource(resources, R.drawable.sparky)

// Provide a prompt that includes the image specified above and text
val prompt = content {
  image(bitmap)
  text("What developer tool is this mascot from?")
}

// To generate text output, call generateContent with the prompt
val response = model.generateContent(prompt)
print(response.text)

Java

// Imports + initialization of Gemini API backend service + creation of model instance

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sparky);

// Provide a prompt that includes the image specified above and text
Content content = new Content.Builder()
        .addImage(bitmap)
        .addText("What developer tool is this mascot from?")
        .build();

// To generate text output, call generateContent with the prompt
ListenableFuture<GenerateContentResponse> response = model.generateContent(content);
Futures.addCallback(response, new FutureCallback<GenerateContentResponse>() {
    @Override
    public void onSuccess(GenerateContentResponse result) {
        String resultText = result.getText();
        System.out.println(resultText);
    }

    @Override
    public void onFailure(Throwable t) {
        t.printStackTrace();
    }
}, executor);

توجه داشته باشید که Firebase AI Logic از جاری‌سازی پاسخ‌های نوشتاری بااستفاده از generateContentStream (به‌جای generateContent) نیز پشتیبانی می‌کند.

چه کارهای دیگری می‌توانید انجام دهید؟

می‌توانید از گزینه‌ها و قابلیت‌های پیکربندی اضافی مختلفی برای تجربه‌های ترکیبی خود استفاده کنید:

ویژگی‌هایی که هنوز برای استنتاج درون‌دستگاهی دردسترس نیستند

به‌عنوان نسخه آزمایشی، همه قابلیت‌های مدل‌های ابری برای استنباط درون‌دستگاهی دردسترس نیست. ویژگی‌های زیر هنوز برای استنتاج درون‌دستگاهی دردسترس نیستند (اما معمولاً برای استنتاج مبتنی بر ابر دردسترس هستند).

  • درحال تولید تصاویر

    • می‌تواند به مدل میزبانی‌شده در فضای ابری برگردد؛ بااین‌حال، حالت ONLY_ON_DEVICE استثنا ایجاد خواهد کرد.
  • تولید نوشتار از انواع ورودی فایل تصویر به‌جز «بیت‌مپ» (تصویر در حافظه بار شده است)

    • می‌تواند به مدل میزبانی‌شده در فضای ابری برگردد؛ اما حالت ONLY_ON_DEVICE استثنا ایجاد خواهد کرد.
  • درحال تولید نوشتار از ورودی فایل فقط تصویری. برای استنباط درون‌دستگاهی، باید نوشتار را به‌عنوان بخشی از درخواست چندحالته ارائه دهید.

    • می‌تواند به مدل میزبانی‌شده در فضای ابری برگردد؛ اما حالت ONLY_ON_DEVICE استثنا ایجاد خواهد کرد.
  • تولید نوشتار از بیش از یک فایل تصویری ورودی

    • می‌تواند به مدل میزبانی‌شده در فضای ابری برگردد؛ بااین‌حال، حالت ONLY_ON_DEVICE استثنا ایجاد می‌کند.
  • تولید نوشتار از ورودی‌های صوتی، ویدیویی، و اسناد (مثل PDF)

    • می‌تواند به مدل میزبانی‌شده در فضای ابری برگردد؛ اما حالت ONLY_ON_DEVICE استثنا ایجاد خواهد کرد.
  • ارائه فایل‌ها بااستفاده از نشانی‌های وب در درخواست‌های چندحالته. برای استنتاج درون‌دستگاهی، باید یک تصویر تکی را به‌صورت Bitmap ارائه دهید.

    • اگر نشانی وب فایل را بااستفاده از fileData (FileDataPart) ارائه دهید، می‌تواند به مدل میزبانی‌شده در فضای ابری برگردد (حالت ONLY_ON_DEVICE استثنا ایجاد خواهد کرد).
    • اگر نشانی وب را مستقیماً در پیام‌واره نوشتاری جاسازی کنید، به‌طور خودکار به مدل میزبانی‌شده در فضای ابری برنمی‌گردد (نشانی‌های وب جاسازی‌شده توسط مدل درون‌دستگاهی نادیده گرفته می‌شوند).
  • ارسال درخواست‌هایی که از ۴۰۰۰ توکن (یا تقریباً ۳۰۰۰ کلمه انگلیسی) فراتر می‌روند

    • می‌تواند به مدل میزبانی‌شده در فضای ابری برگردد؛ اما حالت ONLY_ON_DEVICE استثنا ایجاد خواهد کرد.
  • گپ چندنوبتی

    • به‌طور خودکار به مدل میزبانی‌شده در فضای ابری برنمی‌گردد (استنتاج درون‌دستگاهی سابقه پیام‌واره را به یک پیام‌واره نوشتاری واحد متصل می‌کند؛ چون مدل درون‌دستگاهی بین نقش‌ها تمایز قائل نمی‌شود و سابقه را به‌عنوان یک پیام واحد می‌بیند، به‌اندازه مدل میزبانی‌شده در فضای ابری دقیق نخواهد بود).
    • اگر می‌خواهید از گپ چندنوبتی استفاده کنید، توصیه می‌کنیم از حالت ONLY_IN_CLOUD استفاده کنید.
  • ارائه ابزار به مدل برای کمک به آن در تولید پاسخ (مثل فراخوانی تابع، اجرای کد، بافت نشانی وب، «پشتیبانی با Google Search»، و «پشتیبانی با Google Maps»)

    • به‌طور خودکار به مدل میزبانی‌شده در ابر بازنمی‌گردد. اگر می‌خواهید از ابزارها استفاده کنید، توصیه می‌کنیم از حالت ONLY_IN_CLOUD استفاده کنید.

پایش هوش مصنوعی در کنسول Firebase هیچ داده‌ای برای استنباط درون‌دستگاهی (ازجمله گزارش‌های درون‌دستگاهی) نشان نمی‌دهد. بااین‌حال، هر استنتاجی که از مدل میزبانی‌شده در فضای ابری استفاده می‌کند می‌تواند درست مانند سایر استنتاج‌ها ازطریق Firebase AI Logic نظارت شود.

محدودیت‌های بیشتر

علاوه‌بر موارد بالا، استنتاج درون‌دستگاهی محدودیت‌های زیر را دارد (در اسناد ML Kit بیشتر بدانید):

  • کاربر نهایی برنامه شما باید از دستگاه پشتیبانی‌شده برای استنتاج درون‌دستگاهی استفاده کند.

  • برنامه‌تان فقط زمانی می‌تواند استنتاج درون‌دستگاهی را اجرا کند که در پیش‌زمینه باشد.

  • فقط انگلیسی و کره‌ای برای استنتاج درون‌دستگاهی اعتبارسنجی شده‌اند.

  • حداکثر محدودیت داده‌واحد برای کل درخواست استنباط درون‌دستگاهی ۴۰۰۰ داده‌واحد است. اگر درخواست‌هایتان ممکن است از این حد فراتر برود، حتماً حالت استنتاجی را پیکربندی کنید که بتواند از مدل میزبانی‌شده در ابر استفاده کند.

  • توصیه می‌کنیم از موارد استفاده استنتاج درون‌دستگاهی که به خروجی طولانی (بیش‌از ۲۵۶ نشانه) نیاز دارند اجتناب کنید.

  • AICore (سرویس سیستم Android که مدل‌های درون‌دستگاهی را مدیریت می‌کند) سهمیه استنتاجی را برای هر برنامه اعمال می‌کند. ارسال درخواست‌های API بیش‌ازحد در مدت‌زمان کوتاه منجر به پاسخ ErrorCode.BUSY می‌شود. اگر این خطا را دریافت می‌کنید، از پس‌گیری نمایی برای تلاش مجدد برای درخواست استفاده کنید. همچنین، اگر برنامه‌ای از سهمیه طولانی‌مدت (برای مثال، سهمیه روزانه) فراتر رود، ErrorCode.PER_APP_BATTERY_USE_QUOTA_EXCEEDED می‌تواند برگردانده شود.


درباره تجربه‌تان با Firebase AI Logic بازخورد ارائه دهید