این صفحه نحوه راهاندازی پروژه Android، پیکربندی کتابخانه
genai-agent، و ایجاد اولین عامل دروندستگاهی را شرح میدهد.
پیشنیازها
قبلاز ساختن گردشهای کاری عاملی با Gemini Nano، مطمئن شوید که محیط شما الزامات زیر را برآورده میکند:
- نسخه Android: Android 14 (سطح میانای برنامهسازی کاربردی ۳۴) یا بالاتر که در برنامه پیشنمای توسعهدهندگان نرمافزار AICore ثبتنام شده باشد.
- دستگاههای پشتیبانیشده: برای مشاهده فهرست دستگاههای پشتیبانیشده و نسخههای مدل Gemini Nano آنها، به پشتیبانی دستگاه عامل و تولید سفارشی مراجعه کنید.
- حداقل کیت توسعه نرمافزار:
minSdk 26یا بالاتر. - Kotlin: Kotlin نسخه ۲.۳ یا بالاتر.
پیکربندی پروژه
وابستگی genai-agent را به فایل build.gradle.kts واحدتان اضافه کنید:
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، کنشهایی را انجام دهد یا دادههای برنامه را پُرسمان کند. تعریف ابزارها را ببینید.
- حفظ جلسهها درطول چرخش: با نحوه حفظ نمونه
AgentSessionدر کلاسViewModelدرطول تغییرات پیکربندی در مدیریت جلسهها و چرخه حیات آشنا شوید. - اتصال به Compose: جاریسازی رویدادها و ارائه حبابکهای گپ تعاملی در جاریسازی رویدادها و ادغام میانای کاربر.