অ্যান্ড্রয়েড অ্যাপে হাইব্রিড অভিজ্ঞতার জন্য কনফিগারেশন বিকল্পগুলি


এই পৃষ্ঠায় হাইব্রিড অভিজ্ঞতার জন্য নিম্নলিখিত কনফিগারেশন বিকল্পগুলি বর্ণনা করা হয়েছে:

হাইব্রিড অভিজ্ঞতা তৈরির জন্য প্রারম্ভিক নির্দেশিকাটি আপনি সম্পূর্ণ করেছেন কিনা, তা নিশ্চিত করুন।

একটি ইনফারেন্স মোড সেট করুন

শুরু করার নির্দেশিকার উদাহরণগুলিতে 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 : যদি অন-ডিভাইস মডেলটি উপলব্ধ থাকে এবং অনুরোধের ধরণটি সমর্থন করে, তবে সেটি ব্যবহার করার চেষ্টা করুন। অন্যথায়, একটি ব্যতিক্রম (exception) নিক্ষেপ করুন

    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());

ব্যবহারের জন্য একটি মডেল নির্দিষ্ট করুন

এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট বিষয়বস্তু এবং কোড দেখতে আপনার জেমিনি এপিআই প্রদানকারীর উপর ক্লিক করুন।

generativeModel ইনস্ট্যান্স তৈরি করার সময় আপনি ব্যবহারের জন্য একটি মডেল নির্দিষ্ট করে দিতে পারেন ( Kotlin | Java )।

  • একটি ক্লাউড-হোস্টেড মডেল নির্দিষ্ট করুন :

    • আপনার ইনফারেন্স মোড যদি PREFER_ON_DEVICE , PREFER_IN_CLOUD , বা ONLY_IN_CLOUD হয়, তাহলে ব্যবহারের জন্য আপনাকে অবশ্যই একটি ক্লাউড-হোস্টেড মডেল স্পষ্টভাবে উল্লেখ করতে হবে । SDK-তে কোনো ডিফল্ট ক্লাউড-হোস্টেড মডেল নেই

    • সকল সমর্থিত ক্লাউড-হোস্টেড জেমিনি মডেলের নাম খুঁজুন।

  • ডিভাইসের মডেল নির্দিষ্ট করুন :

    • আপনার ইনফারেন্স মোড যদি PREFER_ON_DEVICE , PREFER_IN_CLOUD , বা ONLY_ON_DEVICE হয়, তাহলে আপনি ঐচ্ছিকভাবে onDeviceConfig এ ব্যবহারের জন্য অন-ডিভাইস মডেলের একটি "ক্যাটাগরি" নির্দিষ্ট করতে পারেন। ক্যাটাগরিগুলো হলো রিলিজ পর্যায় এবং পারফরম্যান্স বৈশিষ্ট্যের একটি সমন্বয়।

    • সমর্থিত ক্যাটাগরির মানগুলো নিচে তালিকাভুক্ত করা হলো।
      AICore স্বয়ংক্রিয়ভাবে ডিভাইসের সেই মডেলটি নির্বাচন করে যা নির্দিষ্ট ক্যাটাগরির শর্ত পূরণ করে এবং ডিভাইসটি দ্বারা সমর্থিত। উদাহরণস্বরূপ, যদি আপনি PREVIEW নির্দিষ্ট করেন এবং ডিভাইসটি একটি Pixel 9 হয়, তাহলে সম্ভবত Gemini Nano 4 Full [Preview] ( nano-v4-full ) স্বয়ংক্রিয়ভাবে নির্বাচিত হবে।

      • STABLE : ডিভাইসের সর্বশেষ স্থিতিশীল মডেল।

        • সম্পূর্ণরূপে পরীক্ষিত এবং ভোক্তা ডিভাইসগুলিতে ব্যবহৃত।

        • উদাহরণস্বরূপ, জেমিনি ন্যানো ৩ ( nano-v3 ) বা জেমিনি ন্যানো ২ ( nano-v2 )।

        • যদি কোনো OnDeviceModelOption নির্দিষ্ট করা না থাকে, তবে এটি অন-ডিভাইস মডেলের জন্য ডিফল্ট সেটিং।

      • PREVIEW : সম্পূর্ণ পারফরম্যান্স ক্ষমতাসম্পন্ন সর্বশেষ অন-ডিভাইস প্রিভিউ মডেল।

        • উচ্চতর যুক্তিবোধ এবং জটিল কাজের জন্য ডিজাইন করা হয়েছে।

        • উদাহরণস্বরূপ, Gemini Nano 4 Full [Preview] ( nano-v4-full , যা Gemma 4 E4B-এর উপর ভিত্তি করে তৈরি)।

      • PREVIEW_FAST : ডিভাইসে থাকা সর্বশেষ প্রিভিউ মডেল যা দ্রুত

        • সর্বোচ্চ গতি এবং কম ল্যাটেন্সির জন্য অপ্টিমাইজ করা হয়েছে।

        • উদাহরণস্বরূপ, Gemini Nano 4 Fast [Preview] ( nano-v4-fast , যা Gemma 4 E2B-এর উপর ভিত্তি করে তৈরি)।

Kotlin

val model = Firebase.ai(backend = GenerativeBackend.googleAI())
    .generativeModel(
        // Specify a cloud-hosted model.
        // Required for `PREFER_ON_DEVICE`, `PREFER_IN_CLOUD`, and `ONLY_IN_CLOUD` inference modes.
        modelName = "CLOUD_HOSTED_MODEL_NAME",
        onDeviceConfig = OnDeviceConfig(
            mode = InferenceMode.INFERENCE_MODE,
            // (Optional) Specify an on-device model category.
            // AICore will auto-select an on-device model based on this category.
            // If not specified, AICore will auto-select the default stable on-device model.
            modelOption = OnDeviceModelOption.ON-DEVICE_MODEL_CATEGORY)
    )

Java

GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
    .generativeModel(
        // Specify a cloud-hosted model.
        // Required for `PREFER_ON_DEVICE`, `PREFER_IN_CLOUD`, and `ONLY_IN_CLOUD` inference modes.
        "CLOUD_HOSTED_MODEL_NAME",
        /* config = */ null,
        /* safetySettings = */ null,
        /* tools = */ null,
        /* toolConfig = */ null,
        /* systemInstruction = */ null,
        /* requestOptions = */ new RequestOptions(),
        new OnDeviceConfig(
                /* mode = */ InferenceMode.INFERENCE_MODE,
                /* maxOutputTokens = */ null,
                /* temperature = */ null,
                /* topK = */ null,
                /* seed = */ null,
                /* candidateCount = */ 1,
                // (Optional) Specify an on-device model category.
                // AICore will auto-select an on-device model based on this category.
                // If not specified, AICore will auto-select the default stable on-device model.
                /* modelOption = */ OnDeviceModelOption.ON-DEVICE_MODEL_CATEGORY)
    );

GenerativeModelFutures model = GenerativeModelFutures.from(ai);

প্রতিক্রিয়া নিয়ন্ত্রণ করতে মডেল কনফিগারেশন ব্যবহার করুন

এই পৃষ্ঠায় প্রদানকারী-নির্দিষ্ট বিষয়বস্তু এবং কোড দেখতে আপনার জেমিনি এপিআই প্রদানকারীর উপর ক্লিক করুন।

মডেলে প্রতিটি অনুরোধের সাথে, মডেলটি কীভাবে প্রতিক্রিয়া তৈরি করবে তা নিয়ন্ত্রণ করতে আপনি একটি মডেল কনফিগারেশন পাঠাতে পারেন। ক্লাউড-হোস্টেড মডেল এবং অন-ডিভাইস মডেল বিভিন্ন কনফিগারেশন বিকল্প প্রদান করে ( ক্লাউড বনাম অন-ডিভাইস প্যারামিটার)।

ক্লাউড-হোস্টেড মডেলগুলির ক্ষেত্রে, সেগুলির কনফিগারেশন সরাসরি মডেলের কনফিগারেশনেই সেট করুন। তবে, অন-ডিভাইস মডেলগুলির ক্ষেত্রে, সেগুলির কনফিগারেশন একটি 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);