Firebase-এর জন্য Vertex AI SDK ব্যবহার করে কীভাবে সরাসরি আপনার অ্যাপ থেকে Gemini API-তে কল করা শুরু করবেন তা এই নির্দেশিকা আপনাকে দেখায়।
পূর্বশর্ত
এই নির্দেশিকাটি অনুমান করে যে আপনি Android এর জন্য অ্যাপ তৈরি করতে Android Studio ব্যবহার করার সাথে পরিচিত।
নিশ্চিত করুন যে আপনার ডেভেলপমেন্ট এনভায়রনমেন্ট এবং অ্যান্ড্রয়েড অ্যাপ নিম্নলিখিত প্রয়োজনীয়তাগুলি পূরণ করে:
- অ্যান্ড্রয়েড স্টুডিও (সর্বশেষ সংস্করণ)
- আপনার অ্যান্ড্রয়েড অ্যাপকে অবশ্যই API লেভেল 21 বা উচ্চতর টার্গেট করতে হবে।
(ঐচ্ছিক) নমুনা অ্যাপটি দেখুন।
নমুনা অ্যাপ্লিকেশন ডাউনলোড করুন
আপনি দ্রুত SDK ব্যবহার করে দেখতে পারেন, বিভিন্ন ব্যবহারের ক্ষেত্রে সম্পূর্ণ বাস্তবায়ন দেখতে পারেন, অথবা আপনার নিজের Android অ্যাপ না থাকলে নমুনা অ্যাপটি ব্যবহার করতে পারেন। নমুনা অ্যাপটি ব্যবহার করতে, আপনাকে এটি একটি Firebase প্রকল্পের সাথে সংযুক্ত করতে হবে।
ধাপ 1 : একটি Firebase প্রকল্প সেট আপ করুন এবং আপনার অ্যাপটিকে Firebase-এর সাথে সংযুক্ত করুন
আপনার যদি ইতিমধ্যেই একটি Firebase প্রকল্প এবং Firebase এর সাথে সংযুক্ত একটি অ্যাপ থাকে
Firebase কনসোলে, Bild with Gemini পৃষ্ঠাতে যান এবং তারপরে একটি ওয়ার্কফ্লো চালু করতে দ্বিতীয় কার্ডে ক্লিক করুন যা আপনাকে নিম্নলিখিত কাজগুলি করতে সাহায্য করে। আপনি যদি একটি কার্ড লেআউট দেখতে না পান তবে এই কাজগুলি সম্পূর্ণ হয়েছে৷
ব্লেজ পে-অ্যাজ-ইউ-গো প্রাইসিং প্ল্যান ব্যবহার করতে আপনার প্রোজেক্ট আপগ্রেড করুন।
আপনার প্রকল্পের জন্য নিম্নলিখিত দুটি API সক্রিয় করুন:
aiplatform.googleapis.com
এবংfirebaseml.googleapis.com
।
আপনার অ্যাপে SDK যোগ করতে এই গাইডের পরবর্তী ধাপে যান।
যদি আপনার কাছে ইতিমধ্যে একটি Firebase প্রকল্প এবং Firebase এর সাথে সংযুক্ত একটি অ্যাপ না থাকে
Firebase কনসোলে সাইন ইন করুন।
প্রকল্প তৈরি করুন ক্লিক করুন, এবং তারপরে নিম্নলিখিত বিকল্পগুলির মধ্যে একটি ব্যবহার করুন:
বিকল্প 1 : একটি সম্পূর্ণ নতুন ফায়ারবেস প্রকল্প তৈরি করুন (এবং এর অন্তর্নিহিত Google ক্লাউড প্রকল্প স্বয়ংক্রিয়ভাবে) "প্রকল্প তৈরি করুন" কর্মপ্রবাহের প্রথম ধাপে একটি নতুন প্রকল্পের নাম প্রবেশ করান৷
বিকল্প 2 : "প্রকল্প তৈরি করুন" কর্মপ্রবাহের প্রথম ধাপে ড্রপ-ডাউন মেনু থেকে আপনার Google ক্লাউড প্রকল্পের নাম নির্বাচন করে একটি বিদ্যমান Google ক্লাউড প্রকল্পে "Firebase যোগ করুন"।
মনে রাখবেন যে যখন অনুরোধ করা হয়, আপনাকে Firebase-এর জন্য Vertex AI SDK ব্যবহার করার জন্য Google Analytics সেট-আপ করতে হবে না ।
Firebase কনসোলে, Bild with Gemini পৃষ্ঠাতে যান এবং তারপরে একটি ওয়ার্কফ্লো চালু করতে দ্বিতীয় কার্ডে ক্লিক করুন যা আপনাকে নিম্নলিখিত কাজগুলি করতে সাহায্য করে। আপনি যদি একটি কার্ড লেআউট দেখতে না পান তবে এই কাজগুলি সম্পূর্ণ হয়েছে৷
ব্লেজ পে-অ্যাজ-ইউ-গো প্রাইসিং প্ল্যান ব্যবহার করতে আপনার প্রোজেক্ট আপগ্রেড করুন।
আপনার প্রকল্পের জন্য নিম্নলিখিত দুটি API সক্রিয় করুন:
aiplatform.googleapis.com
এবংfirebaseml.googleapis.com
।
আপনার অ্যাপটিকে Firebase-এর সাথে সংযুক্ত করতে কনসোলের জেনারেটিভ এআই ওয়ার্কফ্লোতে চালিয়ে যান, যার মধ্যে এই কাজগুলি রয়েছে:
আপনার Firebase প্রকল্পের সাথে আপনার অ্যাপ নিবন্ধন করা হচ্ছে।
আপনার ফায়ারবেস কনফিগারেশন ফাইল যোগ করা হচ্ছে (
google-services.json
) এবংgoogle-services
Gradle প্লাগইন আপনার অ্যাপে।
এই গাইডের পরবর্তী ধাপে, আপনি আপনার অ্যাপে Firebase-এর জন্য Vertex AI SDK যোগ করবেন এবং SDK এবং Gemini API ব্যবহার করার জন্য নির্দিষ্ট প্রয়োজনীয় আরম্ভ সম্পূর্ণ করবেন।
ধাপ 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-এর সাথে আপনার অভিজ্ঞতা সম্পর্কে মতামত দিন