Gemini Nano-র সাহায্যে এজেন্টিক ওয়ার্কফ্লো তৈরি করুন

ML Kit-এর এজেন্টিক ওয়ার্কফ্লো (com.google.mlkit:genai-agent, Alpha) আপনাকে Gemini Nano ও Android AICore সিস্টেম পরিষেবার মাধ্যমে স্বয়ংক্রিয়, মাল্টি-টার্ন অন-ডিভাইস কথোপকথনের অভিজ্ঞতা তৈরি করতে দেয়।

GenerativeModel ক্লাসের (সরাসরি মডেল অ্যাক্সেস) উপরে তৈরি, AgentRunner ক্লাস সরাসরি আপনার অ্যাপের মধ্যে সম্পূর্ণ, লক্ষ্য-ভিত্তিক এজেন্টিক লুপ অটোমেট করে: প্রসঙ্গ পর্যবেক্ষণ করা, ব্যবহারকারীর ইনপুট নিয়ে যুক্তি দেওয়া, টাইপ করা Kotlin টুলের মাধ্যমে কাজ করা এবং সমাপ্তির শর্ত পূরণ না হওয়া পর্যন্ত মতামত মূল্যায়ন করা।

সাধারণ এজেন্টিক প্যাটার্ন

অন-ডিভাইস এজেন্টিক ওয়ার্কফ্লো ফোকাসড, নির্ধারক রিজনিং লুপের জন্য অপ্টিমাইজ করা হয় যেখানে ব্যবহারকারীর ইনটেন্ট স্ট্রাকচার্ড অ্যাপ অ্যাকশনে অনুবাদ করা হয়। সাধারণ প্যাটার্নের মধ্যে এগুলি পড়ে:

প্যাটার্ন

উদাহরণ

ইন-অ্যাপ অ্যাকশন এক্সিকিউশন ও শর্টকাট

ন্যাচারাল ল্যাঙ্গুয়েজ অনুরোধকে নির্দিষ্ট অ্যাপ কমান্ডে অনুবাদ করা, যেমন এডিটিং ক্যানভাসে ফটো অ্যাডজাস্টমেন্ট প্রয়োগ করা, প্লেব্যাক সেটিংস পরিবর্তন করা বা অ্যাপ পছন্দ টগল করা।

স্ট্রাকচার্ড লুকআপ ও স্থানীয় গণনা

আইডি (যেমন, অর্ডারের স্ট্যাটাস বা অ্যাকাউন্ট ব্যালেন্স) দিয়ে নির্দিষ্ট রেকর্ড ফেচ করা এবং একাধিক ধাপে গাণিতিক গণনা (যেমন, লোন অ্যামর্টাইজেশন বা ফিটনেস মেট্রিক) সম্পন্ন করা।

কথোপকথন ফিল্টার করা ও কিউরেশন

ইন্টার‍্যাক্টিভভাবে লোকাল অ্যাপ আইটেম কোয়েরি ও রিফাইন করা, যেমন লোকাল টাস্ক লিস্টের মাধ্যমে সার্চ করা, প্লেলিস্ট ফিল্টার করা অথবা ব্যবহারকারীর মাপকাঠি অনুযায়ী ক্যাটালগ আইটেম সাজানো।

গাইড করা মাল্টি-স্টেপ ইনপুট

ধাপে ধাপে স্ট্রাকচার্ড ডেটা এন্ট্রির মাধ্যমে ব্যবহারকারীদের গাইড করা, চূড়ান্ত জমা দেওয়ার আগে স্থানীয় টুল দিয়ে মধ্যবর্তী ইনপুট যাচাই করা।

অন-ডিভাইস পারফর্ম্যান্স ও গোপনীয়তা

ব্যবহারকারীর ডিভাইসে সরাসরি ব্যক্তিগত, রেসপন্সিভ এক্সিকিউশন ডেলিভার করতে, Android AICore-এ এজেন্টিক ওয়ার্কফ্লো রান করে:

  • লোকাল রিজনিং ও প্রম্পট গোপনীয়তা: মডেল রিজনিং ও প্ল্যানিং লুপ সম্পূর্ণভাবে অন-ডিভাইস এক্সিকিউট হয় এবং নেটওয়ার্ক লেটেন্সি শূন্য থাকে। ব্যবহারকারীর প্রম্পট ডেটা ডিভাইসে ব্যক্তিগত থাকে। তবে, আপনার অ্যাপে প্রয়োগ করা স্বতন্ত্র টুল এখনও নেটওয়ার্ক কল করতে বা ক্লাউড API কোয়েরি করতে পারে, যদি আপনার ব্যবহারের ক্ষেত্রে বাহ্যিক ডেটার প্রয়োজন হয়।
  • ম্যানেজ করা মাল্টি-টার্ন সেশন: AgentSession ইন্টারফেস, টার্ন জুড়ে ইন-মেমরি কথোপকথনের ইতিহাস বজায় রাখে, যাতে আপনাকে ম্যানুয়ালি ট্রানস্ক্রিপ্ট ম্যানেজ করতে না হয়। আপনি যেকোনও সময় session.close(), deleteSession(sessionId) বা clearAllSessions() পদ্ধতি ব্যবহার করে মেমরি রিক্লেম করতে পারবেন।
  • এক্সিকিউশন গার্ডরেল: এজেন্ট কনফিগারেশন সর্বাধিক টার্ন সীমা প্রয়োগ করে (maxTurns সীমা, ডিফল্ট হিসেবে ১০) রিসোর্স বন্ধ করার শর্ত হিসেবে যাতে রানওয়ে এক্সিকিউশন লুপ প্রতিরোধ করা, ব্যাটারি সাশ্রয় করা এবং ডিভাইসের রেসপন্সিভনেস সুরক্ষিত করা যায়।

কাস্টম জেনারেশন, এজেন্ট এবং টাস্ক-নির্দিষ্ট API-এর মধ্যে বেছে নিন

আপনার ফিচারের কতটা কাস্টমাইজেশন ও অর্কেস্ট্রেশন প্রয়োজন তার উপর ভিত্তি করে ML Kit অন-ডিভাইস GenAI ক্ষমতাকে সাজায়:

  • কাস্টম জেনারেশন ও এজেন্ট: আপনার ফিচারের জন্য কাস্টম নির্দেশাবলী বা ডোমেন-নির্দিষ্ট লজিকের প্রয়োজন হলে সরাসরি Gemini Nano ফাউন্ডেশন মডেল ব্যবহার করুন। আপনি যখন ম্যানেজ করা মাল্টি-টার্ন সেশন এবং অটোমেটেড টুল-কলিং লুপ চান তখন এজেন্টিক ওয়ার্কফ্লো (AgentRunner ক্লাস ব্যবহার করে, GenerativeModel ক্লাসের উপরে তৈরি) বেছে নিন অথবা কাস্টম প্রম্পটিং, টাইপ করা স্ট্রাকচার্ড আউটপুট বা ক্লায়েন্ট-ম্যানেজ করা মাল্টি-টার্ন ইতিহাসের জন্য সরাসরি মডেল অ্যাক্সেস (GenerativeModel ক্লাস ব্যবহার করে) বেছে নিন।
  • স্পিচ ও অডিও: স্পোকেন অডিওকে টেক্সটে ট্রান্সক্রাইব করতে, নির্দিষ্ট স্পিচ ও GenAI মডেল (যেমন স্পিচ রিকগনিশন) ব্যবহার করুন।
  • টেক্সট ও ছবি সংক্রান্ত টাস্ক: প্রম্পট ইঞ্জিনিয়ারিং ছাড়াই টার্ন-কী ভিশন ও লেখার ব্যবহারের ক্ষেত্রে, শেয়ার করা বেস মডেলের (যেমন, ছবির বিবরণ, সারসংক্ষেপ, প্রুফরিডিং ও আবার লেখা) উপরে আগে থেকে কনফিগার করা, টাস্ক-নির্দিষ্ট ফিচার টাইপ ও ফাইন-টিউন করা LoRA অ্যাডাপ্টার ব্যবহার করুন।

নিচের সারণীতে এই পদ্ধতিগুলির তুলনা করা হয়েছে:

বিবেচনা

এজেন্টিক ওয়ার্কফ্লো (AgentRunner)

সরাসরি মডেল অ্যাক্সেস (GenerativeModel)

টেক্সট ও ইমেজ টাস্ক API

আর্কিটেকচার

GenerativeModel-এর উপরে তৈরি করা হাই-লেভেল অর্কেস্ট্রেশন লেয়ার।

কাস্টম প্রম্পটের জন্য Gemini Nano ফাউন্ডেশন মডেলের সাথে সরাসরি ইন্টারফেস।

শেয়ার করা বেস মডেলের উপরে ফাইন-টিউন করা LoRA অ্যাডাপ্টার দ্বারা সমর্থিত টাস্ক-নির্দিষ্ট ফিচার টাইপ।

মাল্টি-টার্ন প্রসঙ্গ

ম্যানেজ করা মাল্টি-টার্ন সেশন (AgentSession)। টার্ন জুড়ে অটোমেটিক ইন-মেমরি কথোপকথনের ইতিহাস বজায় রাখে যাতে আপনাকে ম্যানুয়ালি ট্রান্সক্রিপ্ট ম্যানেজ করতে না হয় (এছাড়াও ক্ষণস্থায়ী সিঙ্গেল-টার্ন এক্সিকিউশন সাপোর্ট করে)।

ক্লায়েন্ট-ম্যানেজড মাল্টি-টার্ন কনটেক্সট। GenerateContentRequest মাল্টি-টার্ন List<Content> (USER এবং MODEL ভূমিকা) এবং sessionId সাপোর্ট করে, যা সেইসব ডেভেলপারদের জন্য যারা সরাসরি নিজেদের চ্যাট ইতিহাস ম্যানেজ করতে চান।

স্টেটলেস, সিঙ্গল-ইনপুট টাস্ক কল।

টুল কলিং ও অ্যাকশন

অটোমেটেড টুল-কলিং লুপ। রেজিস্টার করা Android AppFunctions খোঁজে, মডেল-বেছে নেওয়া কল এক্সিকিউট করে এবং ফলাফল অটোমেটিক মডেলে ফিড করে।

ক্লায়েন্ট-ম্যানেজড টুল সংক্রান্ত ঘোষণা। GenerateContentRequest টুল স্কিমা গ্রহণ করে এবং আপনার অ্যাপের জন্য ফাংশন কল সংক্রান্ত অনুরোধ প্রকাশ করে যাতে আপনি ম্যানুয়ালি তা এক্সিকিউট করে ফেরত দিতে পারেন।

প্রযোজ্য নয় (ফিক্সড টাস্ক পাইপলাইন)।

কখন ব্যবহার হবে

মাল্টি-স্টেপ টুল এক্সিকিউশন এবং ম্যানেজ করা ইন-মেমরি মাল্টি-টার্ন সেশনের জন্য অটোমেটেড অর্কেস্ট্রেশন চাইলে এটি ব্যবহার করুন।

কাস্টম প্রম্পটিং, মাল্টিমোডাল ছবি বোঝা, টাইপ করা স্ট্রাকচার্ড আউটপুট (@Generable) অথবা আপনি সরাসরি নিজের চ্যাট ইতিহাস বা টুল ডিসপ্যাচ ম্যানেজ করতে চাইলে ব্যবহার করুন।

আপনার ফিচার কোনও স্ট্যান্ডার্ড লেখা বা ভিশন টাস্কের সাথে ম্যাচ করলে এবং আপনি ন্যূনতম সেট-আপ সহ ফাইন-টিউন করা LoRA থেকে আউট-অফ-দ্য-বক্স কোয়ালিটি চাইলে এটি ব্যবহার করুন।

পরবর্তী ধাপ