इस पेज पर, Android प्रोजेक्ट को सेट अप करने, genai-agent लाइब्रेरी को कॉन्फ़िगर करने, और उपयोगकर्ता के डिवाइस पर पहला एजेंट बनाने का तरीका बताया गया है.
ज़रूरी शर्तें
Gemini Nano की मदद से एजेंटिक वर्कफ़्लो बनाने से पहले, पक्का करें कि आपका एनवायरमेंट इन ज़रूरी शर्तों को पूरा करता हो:
- Android वर्शन: Android 14 (एपीआई लेवल 34) या इसके बाद का वर्शन, जो AICore Developer Preview program में रजिस्टर किया गया हो.
- इस्तेमाल किए जा सकने वाले डिवाइस: इस्तेमाल किए जा सकने वाले डिवाइसों और उनके 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 के साथ कम्यूनिकेट करता है और बातचीत को मैनेज करता है.
1. एजेंट और रनर को कॉन्फ़िगर करना
यहां दिए गए कोड सैंपल में, सिस्टम से जुड़े निर्देशों के साथ अपने एजेंट को तय करने और 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)
2. बातचीत करना
सिलसिलेवार बातचीत में, 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)
}
}
3. संसाधन मिटाना
AgentRunner क्लास, AutoCloseable इंटरफ़ेस को लागू करती है. जब आपका ViewModel या Activity कॉम्पोनेंट खत्म हो जाए, तो चालू सेशन को रिलीज़ करने और बैकग्राउंड कोरूटीन को रद्द करने के लिए, रनर को बंद करें:
runner.close()
अगले चरण
- टूल की मदद से सुविधाएं जोड़ना: अपने एजेंट को कार्रवाई करने या Android AppFunctions का इस्तेमाल करके, ऐप्लिकेशन के डेटा के बारे में क्वेरी करने की सुविधा दें. टूल तय करें देखें.
- स्क्रीन रोटेट होने पर सेशन को बनाए रखना: सेशन और लाइफ़साइकल मैनेज करना लेख में, कॉन्फ़िगरेशन में बदलाव होने पर
ViewModelक्लास मेंAgentSessionइंस्टेंस को बनाए रखने का तरीका जानें. - Compose से कनेक्ट करें: इवेंट स्ट्रीम करें और यूज़र इंटरफ़ेस इंटिग्रेट करें में जाकर, इवेंट स्ट्रीम करें और इंटरैक्टिव चैट बबल रेंडर करें.