এই পৃষ্ঠায় আপনার Android প্রোজেক্ট সেট-আপ,
genai-agent লাইব্রেরি কনফিগার এবং আপনার প্রথম অন-ডিভাইস এজেন্ট তৈরি করার পদ্ধতি বর্ণনা করা হয়েছে।
পূর্বশর্ত
Gemini Nano-র সাথে এজেন্টিক ওয়ার্কফ্লো তৈরি করার আগে, আপনার এনভায়রনমেন্ট নিম্নলিখিত প্রয়োজনীয়তা পূরণ করছে কিনা তা নিশ্চিত করুন:
- Android ভার্সন: Android 14 (API লেভেল 34) বা তার পরবর্তী ভার্সন যা AICore ডেভেলপার প্রিভিউ প্রোগ্রামে এনরোল করা আছে।
- কাজ করে এমন ডিভাইস: কাজ করে এমন ডিভাইসের তালিকা এবং সেগুলির Gemini Nano মডেল ভার্সন দেখতে, কাস্টম জেনারেশন এবং এজেন্ট ডিভাইস সাপোর্ট দেখুন।
- ন্যূনতম SDK:
minSdk 26বা তার চেয়ে বেশি। - Kotlin: Kotlin 2.3 বা তার পরবর্তী যেকোনও ভার্সন।
আপনার প্রোজেক্ট কনফিগার করুন
আপনার মডিউলের build.gradle.kts ফাইলে genai-agent ডিপেন্ডেন্সি যোগ করুন:
dependencies {
// Gemini Nano agentic workflows
implementation("com.google.mlkit:genai-agent:1.0.0-alpha1")
// Optional: Only required when defining tools using Android AppFunctions
implementation("androidx.appfunctions:appfunctions:1.0.0-alpha13")
ksp("androidx.appfunctions:appfunctions-compiler:1.0.0-alpha13")
}
আপনার প্রথম এজেন্ট তৈরি করুন
এজেন্টের দুটি প্রাথমিক কম্পোনেন্ট আছে:
- এজেন্টের সংজ্ঞা: এজেন্টের আচরণ কনফিগার করার জন্য নির্দেশাবলী এবং গার্ডরেল।
- এজেন্ট রানার: এক্সিকিউশন ইঞ্জিন যা AICore-এর সাথে যোগাযোগ করে এবং কথোপকথন ম্যানেজ করে।
১. এজেন্ট ও রানার কনফিগার করুন
নিচের কোড স্যাম্পেল থেকে জানতে পারবেন যে কীভাবে সিস্টেম নির্দেশাবলী সহ আপনার এজেন্টকে সংজ্ঞায়িত করতে হয় এবং AgentRunner ক্লাস শুরু করতে হয়:
import com.google.mlkit.genai.agent.Agent
import com.google.mlkit.genai.agent.AgentRunner
// 1. Build the agent configuration
val agent = Agent.builder()
.setName("Assistant")
.setInstructions("You are a helpful on-device assistant.")
.build()
// 2. Initialize the runner
val runner = AgentRunner(agent)
২. কথোপকথন চালানো
মাল্টি-টার্ন কথোপকথন AgentSession ইনস্ট্যান্স ব্যবহার করে
টার্ন জুড়ে ডায়ালগের ইতিহাস ধরে রাখে। আপনার প্রম্পট টেক্সটকে Content অবজেক্টে র্যাপ করুন এবং
স্ট্রিম করা উত্তর সংগ্রহ করুন:
import android.util.Log
import androidx.lifecycle.lifecycleScope
import com.google.mlkit.genai.agent.textTokens
import com.google.mlkit.genai.prompt.Content
import kotlinx.coroutines.launch
// Create or retrieve a conversation session
val session = runner.getOrCreateSession("chat_session")
val prompt = Content.builder()
.text("Hello! Can you help me organize my day?")
.build()
// Collect streamed tokens in a coroutine
lifecycleScope.launch {
session.runAsync(prompt)
.textTokens()
.collect { token ->
Log.d("Agent", token)
}
}
একবারই করা কোয়েরির ক্ষেত্রে, যেখানে আপনাকে কথোপকথনের ইতিহাস রাখতে হবে না, সেখানে আপনি
সরাসরি runner.runSingleTurnAsync(prompt) মেথড কল করতে পারেন:
lifecycleScope.launch {
runner.runSingleTurnAsync(prompt)
.textTokens()
.collect { token ->
Log.d("Agent", token)
}
}
৩. রিসোর্স ক্লিন-আপ করা
AgentRunner ক্লাস AutoCloseable ইন্টারফেস প্রয়োগ করে। আপনার
ViewModel বা Activity কম্পোনেন্ট নষ্ট হয়ে গেলে, অ্যাক্টিভ সেশন রিলিজ করতে
রানার বন্ধ করুন এবং ব্যাকগ্রাউন্ড কোরুটিন বাতিল করুন:
runner.close()
পরবর্তী ধাপ
- টুলের মাধ্যমে ক্ষমতা যোগ করুন: আপনার এজেন্টকে অ্যাকশন নেওয়ার ক্ষমতা দিন অথবা Android AppFunctions ব্যবহার করে অ্যাপ ডেটা কোয়েরি করুন। টুল সংজ্ঞায়িত করুন দেখুন।
- রোটেশন জুড়ে সেশন বজায় রাখা: সেশন ও লাইফসাইকেল ম্যানেজ করুন-এ কনফিগারেশন পরিবর্তন জুড়ে
ViewModelক্লাসের মধ্যেAgentSessionইনস্ট্যান্স কীভাবে বজায় রাখবেন তা জানুন। - Compose-এর সাথে কানেক্ট করুন: ইভেন্ট স্ট্রিম করুন এবং ইভেন্ট স্ট্রিম ও UI ইন্টিগ্রেশন-এ ইন্টার্যাক্টিভ চ্যাট বাবল রেন্ডার করুন।