Firebase-এর জন্য Vertex AI SDK ব্যবহার করে Gemini API দিয়ে শুরু করুন


Firebase-এর জন্য Vertex AI SDK ব্যবহার করে কীভাবে সরাসরি আপনার অ্যাপ থেকে Gemini API-তে কল করা শুরু করবেন তা এই নির্দেশিকা আপনাকে দেখায়।

পূর্বশর্ত

এই নির্দেশিকাটি অনুমান করে যে আপনি Android এর জন্য অ্যাপ তৈরি করতে Android Studio ব্যবহার করার সাথে পরিচিত।

  • নিশ্চিত করুন যে আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট এবং অ্যান্ড্রয়েড অ্যাপ নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করে:

    • অ্যান্ড্রয়েড স্টুডিও (সর্বশেষ সংস্করণ)
    • আপনার অ্যান্ড্রয়েড অ্যাপকে অবশ্যই API লেভেল 21 বা উচ্চতর টার্গেট করতে হবে।
  • (ঐচ্ছিক) নমুনা অ্যাপটি দেখুন।

    নমুনা অ্যাপ্লিকেশন ডাউনলোড করুন

    আপনি দ্রুত SDK ব্যবহার করে দেখতে পারেন, বিভিন্ন ব্যবহারের ক্ষেত্রে সম্পূর্ণ বাস্তবায়ন দেখতে পারেন, অথবা আপনার নিজের Android অ্যাপ না থাকলে নমুনা অ্যাপটি ব্যবহার করতে পারেন। নমুনা অ্যাপটি ব্যবহার করতে, আপনাকে এটি একটি Firebase প্রকল্পের সাথে সংযুক্ত করতে হবে।

ধাপ 1 : একটি Firebase প্রকল্প সেট আপ করুন এবং আপনার অ্যাপটিকে Firebase-এর সাথে সংযুক্ত করুন

আপনার যদি ইতিমধ্যেই একটি Firebase প্রকল্প এবং Firebase এর সাথে সংযুক্ত একটি অ্যাপ থাকে

  1. Firebase কনসোলে, Bild with Gemini পৃষ্ঠাতে যান এবং তারপরে একটি ওয়ার্কফ্লো চালু করতে দ্বিতীয় কার্ডে ক্লিক করুন যা আপনাকে নিম্নলিখিত কাজগুলি করতে সাহায্য করে। আপনি যদি একটি কার্ড লেআউট দেখতে না পান তবে এই কাজগুলি সম্পূর্ণ হয়েছে৷

  2. আপনার অ্যাপে SDK যোগ করতে এই গাইডের পরবর্তী ধাপে যান।

যদি আপনার কাছে ইতিমধ্যে একটি Firebase প্রকল্প এবং Firebase এর সাথে সংযুক্ত একটি অ্যাপ না থাকে

ধাপ 2 : SDK যোগ করুন

আপনার Firebase প্রকল্প সেট আপ এবং আপনার অ্যাপ Firebase-এর সাথে সংযুক্ত (আগের ধাপ দেখুন), আপনি এখন আপনার অ্যাপে Firebase-এর জন্য Vertex AI SDK যোগ করতে পারেন।

Android এর জন্য Vertex AI SDK ( firebase-vertexai ) Gemini API-এ অ্যাক্সেস প্রদান করে।

আপনার মডিউলে (অ্যাপ-লেভেল) গ্রেডল কনফিগারেশন ফাইল (যেমন <project>/<app-module>/build.gradle.kts ), Android এর জন্য Vertex AI SDK-এর নির্ভরতা যোগ করুন:

Kotlin+KTX

dependencies {
  // ... other androidx dependencies

  // add the dependency for the Vertex AI SDK for Android
  implementation("com.google.firebase:firebase-vertexai:16.0.0-alpha02")
}

Java

জাভার জন্য, আপনাকে দুটি অতিরিক্ত লাইব্রেরি যোগ করতে হবে।

dependencies {
  // ... other androidx dependencies

  // add the dependency for the Vertex AI SDK for Android
  implementation("com.google.firebase:firebase-vertexai:16.0.0-alpha02")

  // 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")
}

ধাপ 3 : ভার্টেক্স এআই পরিষেবা এবং জেনারেটিভ মডেল শুরু করুন

আপনি যেকোনো API কল করার আগে, আপনাকে Vertex AI পরিষেবা এবং জেনারেটিভ মডেল শুরু করতে হবে।

Kotlin+KTX

// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
val generativeModel = Firebase.vertexAI.generativeModel("gemini-1.5-pro-preview-0409")
Kotlin-এর জন্য, এই SDK-এর পদ্ধতিগুলি হল সাসপেন্ড ফাংশন এবং একটি Coroutine স্কোপ থেকে কল করা প্রয়োজন৷ আপনি যদি Coroutines এর সাথে অপরিচিত হন, তাহলে Android-এ Kotlin Coroutines পড়ুন।

Java

// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
GenerativeModel gm = FirebaseVertexAI.getInstance()
        .generativeModel("gemini-1.5-pro-preview-0409");

// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(gm);
জাভার জন্য, এই SDK-এর স্ট্রিমিং পদ্ধতিগুলি প্রতিক্রিয়াশীল স্ট্রীমস লাইব্রেরি থেকে একটি Publisher প্রকার ফেরত দেয়।

আপনি যখন শুরু করার নির্দেশিকাটি শেষ করেছেন, তখন আপনার ব্যবহারের ক্ষেত্রে উপযুক্ত একটি মিথুন মডেল কীভাবে চয়ন করবেন তা শিখুন।

ধাপ 4 : Gemini API কল করুন

এখন যেহেতু আপনি আপনার অ্যাপটিকে Firebase-এ সংযুক্ত করেছেন, SDK যোগ করেছেন এবং Vertex AI পরিষেবা এবং জেনারেটিভ মডেল শুরু করেছেন, আপনি Gemini API কল করতে প্রস্তুত৷

আপনি প্রতিক্রিয়াটি স্ট্রিম করতে চান কিনা তা চয়ন করুন ( generateContentStream ) বা সম্পূর্ণ ফলাফল তৈরি না হওয়া পর্যন্ত প্রতিক্রিয়াটির জন্য অপেক্ষা করুন ( generateContent )৷

স্ট্রিমিং

ডিফল্টরূপে, মডেল পুরো প্রজন্মের প্রক্রিয়া শেষ করার পরে একটি প্রতিক্রিয়া প্রদান করে। যাইহোক, আপনি সম্পূর্ণ ফলাফলের জন্য অপেক্ষা না করে দ্রুত মিথস্ক্রিয়া অর্জন করতে পারেন, এবং পরিবর্তে আংশিক ফলাফল পরিচালনা করতে স্ট্রিমিং ব্যবহার করতে পারেন।

আপনি generateContentStream() ব্যবহার করতে পারেন একটি প্রম্পট অনুরোধ থেকে জেনারেট করা টেক্সট স্ট্রিম করতে যাতে শুধুমাত্র টেক্সট থাকে:

Kotlin+KTX

// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
val generativeModel = Firebase.vertexAI.generativeModel("gemini-1.5-pro-preview-0409")

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

// To stream generated text output, call generateContentStream and pass in the prompt
var response = ""
generativeModel.generateContentStream(prompt).collect { chunk ->
    print(chunk.text)
    response += chunk.text
}
Kotlin-এর জন্য, এই SDK-এর পদ্ধতিগুলি হল সাসপেন্ড ফাংশন এবং একটি Coroutine স্কোপ থেকে কল করা প্রয়োজন৷ আপনি যদি Coroutines এর সাথে অপরিচিত হন, তাহলে Android-এ Kotlin Coroutines পড়ুন।

Java

// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
GenerativeModel gm = FirebaseVertexAI.getInstance()
        .generativeModel("gemini-1.5-pro-preview-0409");
GenerativeModelFutures model = GenerativeModelFutures.from(gm);

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

// To stream generated text output, call generateContentStream with the text input
Publisher<GenerateContentResponse> streamingResponse =
    model.generateContentStream(prompt);

// Subscribe to partial results from the response
final String[] fullResponse = {""};
streamingResponse.subscribe(new Subscriber<GenerateContentResponse>() {
  @Override
  public void onNext(GenerateContentResponse generateContentResponse) {
    String chunk = generateContentResponse.getText();
    fullResponse[0] += chunk;
  }

  @Override
  public void onComplete() {
    System.out.println(fullResponse[0]);
  }

  @Override
  public void onError(Throwable t) {
    t.printStackTrace();
  }

  @Override
  public void onSubscribe(Subscription s) { }
});
জাভার জন্য, এই SDK-এর স্ট্রিমিং পদ্ধতিগুলি প্রতিক্রিয়াশীল স্ট্রীমস লাইব্রেরি থেকে একটি Publisher টাইপ ফেরত দেয়।

স্ট্রিমিং ছাড়াই

বিকল্পভাবে, আপনি স্ট্রিমিংয়ের পরিবর্তে সম্পূর্ণ ফলাফলের জন্য অপেক্ষা করতে পারেন; মডেলটি পুরো প্রজন্মের প্রক্রিয়াটি সম্পূর্ণ করার পরেই ফলাফলটি ফিরে আসে।

আপনি একটি প্রম্পট অনুরোধ থেকে পাঠ্য তৈরি করতে generateContent() ব্যবহার করতে পারেন যাতে শুধুমাত্র পাঠ্য অন্তর্ভুক্ত থাকে:

Kotlin+KTX

// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
val generativeModel = Firebase.vertexAI.generativeModel("gemini-1.5-pro-preview-0409")

// 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 = generativeModel.generateContent(prompt)
print(response.text)
কোটলিনের জন্য, এই SDK-এর পদ্ধতিগুলি হল সাসপেন্ড ফাংশন এবং একটি Coroutine স্কোপ থেকে কল করা প্রয়োজন৷ আপনি যদি Coroutines এর সাথে অপরিচিত হন, তাহলে Android-এ Kotlin Coroutines পড়ুন।

Java

// Initialize the Vertex AI service and the generative model
// Specify a model that supports your use case
// Gemini 1.5 Pro is versatile and can accept both text-only and multimodal prompt inputs
GenerativeModel gm = FirebaseVertexAI.getInstance()
        .generativeModel("gemini-1.5-pro-preview-0409");
GenerativeModelFutures model = GenerativeModelFutures.from(gm);

// 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);
জাভার জন্য, এই SDK-এর পদ্ধতিগুলি একটি ListenableFuture প্রদান করে। আপনি যদি এই API এর সাথে অপরিচিত হন তবে একটি ListenableFuture ব্যবহার করার বিষয়ে Android ডকুমেন্টেশন দেখুন।

তুমি আর কি করতে পারো?

মিথুন মডেল সম্পর্কে আরও জানুন

বিভিন্ন ব্যবহারের ক্ষেত্রে উপলব্ধ মডেল এবং তাদের কোটা এবং মূল্য সম্পর্কে জানুন।

Gemini API-এর অন্যান্য ক্ষমতা ব্যবহার করে দেখুন

কন্টেন্ট জেনারেশন কিভাবে নিয়ন্ত্রণ করতে হয় তা জানুন

আপনি Vertex AI Studio ব্যবহার করে প্রম্পট এবং মডেল কনফিগারেশন নিয়ে পরীক্ষা করতে পারেন।


Firebase-এর জন্য Vertex AI SDK-এর সাথে আপনার অভিজ্ঞতা সম্পর্কে মতামত দিন