ইন্টেলিজেন্ট অ্যাপ

ML Kit ও Gemini Nano ব্যবহার করে Android-এ Formula E কো-ড্রাইভার তৈরি করা

স্পিকার

  • Alastair Breeze

    স্টাফ সফ্টওয়্যার ইঞ্জিনিয়ার - Google Cloud-এর সিটিও অফিস

  • Oli Thompson

    জুনিয়র ডেটা সায়েন্টিস্ট, Formula E

সম্পর্কে

টক সম্পর্কে

রেসিং কারের ক্ষেত্রে উচ্চ গতি, তাপ ও টেলিমেট্রি সংক্রান্ত সীমাবদ্ধতার মতো কঠিন পরিবেশের মধ্যে কাজ করতে হয়। স্পোর্টস ও ইঞ্জিনিয়ারিং অ্যাপ্লিকেশনের জন্য রিয়েল-টাইম ভেহিকল ডেটা প্রসেস করতে অন-ডিভাইস এজেন্ট কীভাবে সাহায্য করতে পারে?

এই টেকনিক্যাল সেশন এজ হার্ডওয়্যার ও ক্লাউড এজেন্টের সমন্বয়ে তৈরি একটি এক্সপেরিমেন্টাল হাইব্রিড আর্কিটেকচার এক্সপ্লোর করে। আমরা CAN বাস টেলিমেট্রি স্ট্রিম করার জন্য Raspberry Pi, ML Kit এবং Gemini Nano দ্বারা পরিচালিত অন-ডিভাইস কনভার্সেশনাল এজেন্ট সহ Pixel ফোন এবং রেস-পরবর্তী ওয়ার্কফ্লোর জন্য এজেন্ট-টু-এজেন্ট (A2A) ক্লাউড কানেকশন ব্যবহার করে একটি রিসার্চ প্রুফ-অফ-কনসেপ্ট দেখব।

সারাংশ

  • Formula E রেসের পরিবেশ প্রচন্ড গরম ও কম লেটেন্সি সংক্রান্ত প্রয়োজনীয়তার মাধ্যমে এজ AI-কে চ্যালেঞ্জ করে। ২০০ কিমি/ঘণ্টার বেশি গতিতে ভ্রমণকারী ড্রাইভারদের উত্তর দেওয়ার জন্য একটি Pixel ফোন একজন এজেন্টকে হোস্ট করেছে।
  • Android, ML Kit-এর মাধ্যমে Agent Developer Kit এবং Gemini Nano ব্যবহার করে এজ আর্কিটেকচার হোস্ট করে। এজ এজেন্টরা A2A প্রোটোকলের মাধ্যমে সরাসরি ক্লাউড এজেন্টদের সাথে কথোপকথন চালাতে পারে।
  • MQTT-তে ডাউনস্যাম্পেল করা ১০ হার্জ ডেটা প্রকাশ করার জন্য, ভেহিকল ইন্টিগ্রেশন, Raspberry Pi-এর মাধ্যমে লাইভ CAN বাস টেলিমেট্রি রুট করে। Android এজেন্ট এই ডেটা ড্রাইভারের ভয়েস ইনপুটের সাথে একত্রিত করে কোয়েরি মূল্যায়ন করে এবং উত্তর দেয়।
  • গুডউডে ট্র্যাক টেস্টিং থেকে প্রমাণিত হয়েছে যে ফোনটি কোনও সমস্যা ছাড়াই তীব্র তাপ সহ্য করতে পারে। গাড়িটি পাহাড়ে ওঠার আগে শেষ মুহূর্তের ডিবাগিং ড্রাইভারের হেলমেটের সাথে ব্লুটুথ কানেকশন সংক্রান্ত সমস্যার সমাধান করেছে।

Gemini Notebook

বিষয়

  • gemini-nano
  • ml-kit
  • on-device-ai
  • ai-agents
  • ফর্মুলা-ই

ট্রান্সস্ক্রিপ্ট করা

ভূমিকা

  • হ্যালো।

  • আমার নাম অ্যালাস্টেয়ার এবং আজ আমি আপনাদের সাথে Formula E-এর সাথে গত বছর শুরু করা একটি ছোট প্রোজেক্টের ব্যাপারে কথা বলতে পেরে খুবই আনন্দিত।

  • আর আজ আমাদের সাথে যোগ দেওয়ার জন্য এখানে অলি আছে, আমরা একসাথে কী করেছি সেই বিষয়ে কিছু কথা বলার জন্য।

  • তাই, আমি-- আমি Google Cloud-এর CTO-এর অফিসে কাজ করি এবং আমরা প্রায়ই চেষ্টা করি এবং আজ মোবাইলে কী কী সম্ভব তার সীমানা বাড়ানোর চেষ্টা করি এবং Cloud এবং তারা কীভাবে একসাথে কাজ করতে পারে।

  • আমি আপনাকে একটি ছোট ভিডিও দেখাব যা আমরা কী করেছি তার একটি সংক্ষিপ্ত ভূমিকা দেবে।

  • Gen 4 গাড়িতে ৬০০ কিলোওয়াটের রেসিং বিস্ট আছে।

  • সম্পূর্ণ ইলেকট্রিক পাওয়ার, স্থায়ী অল-হুইল ড্রাইভ।

  • আমি বলব, এটা দারুণ দ্রুত।

  • আমরা কি Pixel ফোনে এমন কোনও এজেন্ট ব্যবহার করতে পারি যা গাড়ির টেলিমেট্রি ডেটার সাথে কানেক্ট করা আছে?

  • ড্রাইভার গুডউডের পাহাড়ে ওঠার সময়, আসলে, গাড়ির সাথে কথা বলতে পারবেন।

  • দারুণ!

  • হ্যালো Gemma, আমার টায়ারের অবস্থা কেমন?

  • টায়ারের প্রেসার ঠিক আছে, প্রায় ১.৪ বার।

  • একটি ফোন সরাসরি ECU-তে প্লাগ করা আছে, যা আমি ড্রাইভার হিসেবে কী করছি তার অনেক ডেটা পয়েন্ট পড়ছে।

  • রেস কারের ক্ষেত্রে এই প্রথমবার এমনটা ঘটেছে।

  • আমি শুধু মনে করি যে এটি দেখানোর জন্য সত্যিই এর চেয়ে ভাল কোনও জায়গা নেই।

  • হ্যালো Gemma, আমরা কি রেডি?

  • আপনার রেডি হওয়ার জন্য অপেক্ষা করছি।

এজে এজেন্ট চালানোর চ্যালেঞ্জ

  • সুতরাং, আমরা সেখানে যা দেখেছি তা হল এমন একটি প্রোজেক্ট যেখানে আমরা ড্রাইভারের সাথে ককপিটে একজন কো-ড্রাইভার এজেন্টকে আনার চেষ্টা করতে চেয়েছিলাম।

  • আর মূলত, আমরা এখানে যা করার চেষ্টা করছি তা হল এজ ডিভাইসে এজেন্টদের মাধ্যমে কী কী করা সম্ভব তার সীমা বাড়ানো, কারণ এটি একটি অত্যন্ত কঠিন চ্যালেঞ্জের একটি দুর্দান্ত উদাহরণ।

  • রেস কারে আপনি যে ধরনের চ্যালেঞ্জ দেখতে পান তা স্পষ্টতই উচ্চ তাপ।

  • রেস কার গরম হয়ে যাওয়ার জন্য কুখ্যাত এবং আপনি জানেন যে এটিই হল সবচেয়ে বড় চ্যালেঞ্জের অংশ।

  • কানেকশন ঠিকমতো কাজ করছে না।

  • তাই, আমরা আসলে গুডউড ফেস্টিভ্যাল অফ স্পিডে এটি করছি, যেখানে, আপনি জানেন, লক্ষ লক্ষ মোটর স্পোর্টস অনুরাগী পাহাড়ে গাড়ির রেস দেখতে জড়ো হন।

  • এবং আপনি যেমনটা কল্পনা করতে পারেন, যখন কোনও ফিল্ডে লক্ষ লক্ষ মানুষ থাকে, তখন কানেক্টিভিটি বেশ চ্যালেঞ্জিং হতে পারে।

  • ব্লুটুথও চালু করতে হবে।

  • যেমন, এই গাড়িটি মূলত একটি ফ্যারাডে কেজ, তাই রেস ড্রাইভারের হেলমেটের সাথে কানেক্ট করার ক্ষেত্রে কী ধরনের চ্যালেঞ্জের সম্মুখীন হতে হয় তা আপনি কল্পনা করতে পারেন।

  • এবং সবশেষে, কম লেটেন্সি সংক্রান্ত প্রয়োজনীয়তা।

  • এই ড্রাইভার ঘণ্টায় ২০০ কিমি গতিতে গাড়ি চালাচ্ছেন, তাই তার কো-ড্রাইভার এজেন্টের থেকে খুব দ্রুত ও চটপট উত্তর পাওয়াটা তার জন্য অত্যন্ত গুরুত্বপূর্ণ।

  • আর মূলত, আমরা এই বিষয়ে সত্যিই আগ্রহী কারণ আমরা বিশ্বাস করি যে এজেন্টরা সর্বব্যাপী হয়ে উঠবে।

  • আমরা ইতিমধ্যেই এটি দেখতে শুরু করেছি।

  • এগুলি এখন আর শুধু আমাদের কম্পিউটারে নেই।

  • এগুলি আমাদের ফোন, ঘড়ি, চশমা, স্মার্ট হোম এবং এখন এমনকি আমাদের গাড়িতেও রয়েছে।

  • তাই, মূলত, আমরা সত্যিই দেখতে চেয়েছিলাম যে এইরকম কঠিন পরিস্থিতিতে আমরা কী অর্জন করতে পারি।

  • এবং আমরা যখন এটি কীভাবে তৈরি করা যায় তা নিয়ে ব্রেনস্টর্মিং করছিলাম, তখন আমরা কি একটি ছোট মাইক্রোকম্পিউটার তৈরি করব যাতে একটি ছোট অ্যাক্সিলারেটর থাকবে এবং সেখানে একটি মডেল থাকবে?

  • আমরা হঠাৎ করে বুঝতে পারলাম যে আমাদের প্রয়োজনীয় সব উপাদান আগে থেকেই ছিল এবং সেটি হল Android।

Android কেন আদর্শ হোস্ট

  • Android হল এর জন্য নিখুঁত হোস্ট কারণ আপনার কাছে ADK আছে, যা হল আমাদের Agent Developer Kit।

  • এটি একটি খুব ভালো লাইব্রেরি যা আপনাকে সরাসরি আপনার অ্যাপ্লিকেশনে এজেন্ট তৈরি করতে দেয়।

  • বিলিয়ন বিলিয়ন ব্যবহারকারী আছেন, তাই, এবং, আপনি জানেন, বিভিন্ন ফর্ম ফ্যাক্টর যাতে আমরা এটি খুব সহজেই চালাতে পারি, তাই এটি টেস্ট করা এবং কোডটি ডিস্ট্রিবিউট করা সত্যিই সহজ।

  • ডেভেলপার টুল যা আপনাকে ডিবাগ করতে এবং বিভিন্ন জিনিস চেষ্টা করতে এবং কী ভুল হচ্ছে তা খুঁজে বের করতে দেয়।

  • অন-ডিভাইস AI, Google Pixel ফোন এখন ফোনের মধ্যেই TPU সহ আসে, যা ফোনের মধ্যেই থাকা অন-ডিভাইস মডেলের জন্য অপ্টিমাইজ করা হয়েছে, যার ফলে ML Kit-এর মতো API ব্যবহার করে একটি শক্তিশালী মডেল অ্যাক্সেস করা খুব সহজ হয়।

  • এছাড়াও, আমাদের কাছে টেক্সট-টু-স্পিচ এবং স্পিচ রিকগনিশনের মতো ফিচার আছে, সম্পূর্ণ অফলাইন API যা আপনাকে সত্যিই শক্তিশালী কথোপকথনের অভিজ্ঞতা পেতে দেয়।

  • এবং তারপর, অবশেষে, অবশ্যই, কানেক্টিভিটি।

  • মোবাইল নেটওয়ার্ক, ওয়াই-ফাই বা অন্য কোনও উপায়ে কানেক্টিভিটির জন্য ফোন তৈরি করা হয়।

  • তবে, একটি চ্যালেঞ্জ হল, এজ-এ থাকা এজেন্টরা সবকিছু করতে পারে না, তাই তারা কীভাবে ক্লাউডে থাকা এজেন্টদের সাথে কাজ করবে?

  • আর সমাধানটি হাইব্রিড হলে কী হবে?

  • ফোনে থাকা কোনও এজেন্ট যদি ক্লাউডে থাকা কোনও এজেন্টের সাথে সরাসরি কথা বলতে পারে, তাহলে কি আরও জটিল কাজ করা সম্ভব?

  • আপনি কল্পনা করতে পারেন, যেমন, ধরা যাক ড্রাইভার জানতে চান যে তিনি রেসে কোন পজিশনে আছেন।

  • গাড়িটি নিজে থেকে জানতে পারবে না যে রেসে তার পজিশন কী, তবে ক্লাউডে থাকা কোনও এজেন্ট হয়ত তা জানতে পারবে।

  • এছাড়াও, আমাদের কাছে এজেন্ট-টু-এজেন্ট নামক একটি প্রোটোকল আছে, যার অর্থ হল আপনি এজেন্টে এজ এবং ক্লাউডে তৈরি করতে পারবেন এবং আরও জটিল অ্যাকশন পারফর্ম করার জন্য একে অপরের সাথে সরাসরি কথোপকথন চালাতে পারবেন।

এজেন্টের মূল আর্কিটেকচার

  • তাহলে, আমরা এটি কীভাবে তৈরি করেছি?

  • তাই, আমি আপনাকে এই সিস্টেমের উপাদানগুলির মাধ্যমে রান করতে যাচ্ছি।

  • হার্নেস থেকে শুরু করা।

  • এখন, এখানে হার্নেস হল মূলত Android-এর জন্য Agent Developer Kit চালানো একটি Android অ্যাপ্লিকেশন।

  • দ্বিতীয় অংশটি হল একটি মডেল।

  • এটি চালানোর জন্য আপনার একটি মডেল প্রয়োজন এবং আমাদের জন্য, আমরা ML Kit-এর মাধ্যমে Gemini Nano ব্যবহার করছিলাম, যা আপনার হাতের নাগালে থাকা একটি অত্যন্ত শক্তিশালী অন-ডিভাইস মডেল।

  • তারপর, ডেটা।

  • অলি এই বিষয়ে এক মিনিটের মধ্যে কিছু কথা বলবে, তবে আপনার কাছে গাড়ির ডেটা আছে এবং সম্ভবত ড্রাইভারের স্পিচ রেকগনিশনও আছে।

  • এবং সবশেষে, এজেন্ট যেসব অ্যাকশন নিতে পারে সেগুলিও আপনি দেখতে পাবেন।

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

  • আমি এখন অলিকে মঞ্চে আমন্ত্রণ জানাতে চাই, যাতে তিনি Formula E-এর সাথে আমরা কীভাবে এটি করেছি সে সম্পর্কে কিছু কথা বলতে পারেন।

গাড়ির টেলিমেট্রি ও হার্ডওয়্যার ইন্টিগ্রেশন

  • ধন্যবাদ, Alastair.

  • তাহলে, আমরা ইনগ্রিডিয়েন্টগুলি পেয়ে গেছি, এবার কঠিন কাজটা করতে হবে: Formula E গাড়িতে আমরা কীভাবে AI এজেন্ট ইন্টিগ্রেট করব?

  • তাই, এটি এখানে VCU বা ভেহিকল কন্ট্রোল ইউনিটে শুরু হয়।

  • এখন, গাড়ির প্রতিটি সেন্সর এবং প্রতিটি কম্পোনেন্ট CAN বাস নামক কিছুর মাধ্যমে রিপোর্ট করে।

  • এবং গাড়িটি প্রতি সেকেন্ডে হাজার হাজার টেলিমেট্রি পয়েন্ট তৈরি করছে, যেমন গতি, ত্বরণ, থ্রটল, ব্রেকিং এবং আরও অনেক কিছু।

  • তাই, প্লাগ করার জন্য-- তাই, এই টেলিমেট্রি পড়ার জন্য, আমরা যা করার সিদ্ধান্ত নিয়েছিলাম তা হল এই CAN কানেকশনের মাধ্যমে সরাসরি গাড়ির VCU-তে একটি Raspberry Pi প্লাগ করা।

  • এখন, Raspberry Pi কয়েকটি আলাদা কাজ করে।

  • প্রথমে, এটি র-সিগন্যাল ডিকোড করে, সেগুলিকে ট্রান্সফর্ম করে এবং প্রায় ১০ Hz-এ ডাউনস্যাম্পেল করে, যা একজন সহ-চালকের জন্য প্রচুর তথ্য।

  • তারপর Raspberry Pi এই রিফাইন করা ডেটা MQTT-এর মাধ্যমে গাড়ির ককপিটে থাকা Pixel 10 Pro-তে প্রকাশ করে।

  • এবং এটি হল একটি ইনপুট যা আমাদের এজেন্ট অ্যাপ্লিকেশন হোস্ট করা অ্যাপ গ্রহণ করতে পারে।

  • দ্বিতীয়টি হল Android স্পিচ রিকগনিশন।

  • তাই, ড্রাইভার কথা বললে, অ্যাপ ইনপুটকে টেক্সটে কনভার্ট করে এবং Gemini Nano এই দুটি ইনপুটের উপর ভিত্তি করে কারণ বিশ্লেষণ করতে পারে।

  • এখন, এজেন্ট দুটি সিদ্ধান্ত নিতে পারে: প্রথমত, এটি ড্রাইভারের সাথে কথা বলার জন্য Android-এর টেক্সট-টু-স্পিচ ইঞ্জিন ব্যবহার করতে পারে।

  • দ্বিতীয়ত, অ্যালাস্টেয়ার যেমন আগে উল্লেখ করেছেন, এটি A2A প্রোটোকলের মাধ্যমে ক্লাউড এজেন্টের সাথে যোগাযোগ করতে পারে।

  • এখন, এর আশেপাশে, এজেন্ট ফ্লো বেশ সহজ: হটওয়ার্ড বলুন, এই ক্ষেত্রে "Hey, Gemma.", একটি প্রশ্ন জিজ্ঞাসা করুন এবং উত্তর পান।

  • এজেন্ট প্রায় ৫ সেকেন্ড পর্যন্ত আপনার কথা শোনে যাতে আপনি ফলো-আপ প্রশ্ন জিজ্ঞাসা করতে পারেন এবং আপনাকে আবার শুরু করতে না হয়, ঠিক যেমন আপনি কোনও রেস ইঞ্জিনিয়ারের সাথে কথা বলছেন।

  • এছাড়াও, অ্যাপটি একটি মাল্টি-টার্ন এজেন্ট, যার অর্থ হল এটি কথোপকথনের ইতিহাস অ্যাক্সেস করতে পারে যাতে এটি আরও কথোপকথনমূলক হতে পারে।

  • তাই, আপনি হয়ত আশা করছেন যে এর কোড একটু জটিল হবে, তাই তো?

ADK ও ML Kit-এর মাধ্যমে প্রয়োগ করা

  • আসলে, এটি করা খুবই সহজ।

  • প্রথম কয়েকটি লাইন ML Kit ব্যবহার করে onDeviceModel-কে কল করে এবং Gemini Nano হিসেবে এটিকে র‍্যাপ করে।

    val generativeModel: GenerativeModel = Generation.getClient()
    val onDeviceModel = GenaiPrompt.create(
        generativeModel = generativeModel,
        name = "gemini-nano",
    )
    val agent = LlmAgent(
        name = "race_engineer",
        model = onDeviceModel,
        staticInstruction = /* System prompt */,
        instruction = Instruction {
            /* Dynamic context */
        },
        tools = listOf(
            /* Custom tools */
        )
    )
  • তারপর, আমরা ADK-এর মাধ্যমে আমাদের এজেন্টকে সংজ্ঞায়িত করি।

  • এটির একটি নাম দিন এবং দুই ধরনের নির্দেশাবলী দিন: প্রথমটি হল স্ট্যাটিক নির্দেশাবলী, এবং এটি হল এর ব্যক্তিত্ব এবং এটি কে।

  • এবং এর মধ্যে ড্রাইভারের সাথে এটি কীভাবে কথা বলে এবং রেসট্র্যাক সম্পর্কে কিছু তথ্য অন্তর্ভুক্ত থাকতে পারে।

  • দ্বিতীয়টি হল ডায়নামিক নির্দেশাবলী।

  • এখন, এটি লেটেস্ট টেলিমেট্রি সারাংশ সহ প্রতিটি কোয়েরিতে জেনারেট করা হয়, তাই এজেন্ট সবসময় জানে যে ড্রাইভার যেকোনও মুহূর্তে কী করছেন।

  • আগে যেমন উল্লেখ করা হয়েছে, এতে বর্তমান কথোপকথনের ইতিহাসও অন্তর্ভুক্ত থাকে।

  • এর পাশাপাশি, আমরা কিছু টুলও সংজ্ঞায়িত করি, যেমন, আগের সেশনের ডেটার সাথে কথা বলার ক্ষমতা, ক্লাউড এজেন্টের সাথে কথা বলার ক্ষমতা এবং টেক্সট-টু-স্পিচ ব্যবহার করে ড্রাইভারের সাথে কথা বলার ক্ষমতা।

  • এখন Formula E অফিসে আমাদের সিম রিগে অ্যাকশনে থাকা এজেন্টের একটি দ্রুত ডেমো দেখা যাক।

সিমুলেটর প্রদর্শন

  • Hey Gemma, আমি কতটা আগ্রাসীভাবে স্টিয়ারিং ঘোরাই?

  • স্মুথ ও পরিমিত।

  • পিক লক ছিল ৪৮ ডিগ্রি এবং আপনি গড়ে প্রতি সেকেন্ডে ১১ ডিগ্রি করে চাকা ঘোরাচ্ছিলেন।

  • হ্যালো Gemma, আমার পিক G-ফোর্স কত?

  • সর্বোচ্চ G-ফোর্স ছিল ২.২ G, কোণ দিয়ে।

  • হ্যালো Gemma, আমার দৌড় কেমন ছিল?

  • দারুণ দৌড়, ড্যান।

  • সর্বোচ্চ গতি ৩০৬ কিমি/ঘণ্টা, ৩৫ সেকেন্ডে গড় ১৮৬।

  • আপনি ৫৮% সময় ফ্ল্যাট আউট ছিলেন এবং ২.২ জি-তে পিক করেছেন।

  • তাহলে এইটুকুই।

  • এটি হল ফোনে Gemini Nano, যা একজন ড্রাইভারের সাথে কথা বলছে এবং রিয়েল-টাইমে তার প্রশ্নের উত্তর দিচ্ছে।

  • সিম রিগ এক জিনিস, ফর্মুলা ই কার সম্পূর্ণ অন্য জিনিস।

গুডউড ডেপ্লয়মেন্ট ও ট্র্যাক টেস্টিং

  • তাহলে, আমরা কীভাবে এই সব কিছু একসাথে করলাম?

  • প্রথমে আমাদের প্যারিসে স্পার্ক রেসিং টেকনোলজিতে যেতে হয়েছিল, যেখানে আমাদের গাড়ি তৈরি করা হয়।

  • এখন, বাঁদিকে আমি Raspberry Pi-কে Formula E গাড়ির আসল VCU-এর সাথে ওয়্যারিং করছি।

  • আমরা এখনও পর্যন্ত যা কিছু তৈরি করেছি তা এমুলেট করা ডেটার উপর রান করেছে এবং টেস্ট সেশন থেকে রিপ্লে করা হয়েছে, তাই আমরা সত্যিই জানতাম না যে এটি আসল ডেটার সাথে কাজ করবে কিনা।

  • তাই আমরা এটি প্লাগ-ইন করলাম, চালু করলাম, অপেক্ষা করলাম, আরও একটু অপেক্ষা করলাম এবং অবশেষে ডিভাইসে টেলিমেট্রি আসতে শুরু করল, যা প্রমাণ করে যে ডেটা আমাদের প্রত্যাশা অনুযায়ী সিস্টেমের মাধ্যমে ট্রান্সফার হচ্ছিল।

  • ডানদিকে, আপনি সম্পূর্ণ সিস্টেমটি দেখতে পাবেন এবং আপনি দেখতে পাবেন যে ফোনটি আসলে ককপিটে প্রয়োগ করা হয়েছে, ঠিক যেখানে ড্রাইভার বসবেন তার পাশে।

  • তাই, আমরা সবাই গুডউডের জন্য প্রস্তুত ছিলাম।

  • তাহলে, সেদিন আসলে কী হয়েছিল?

  • অ্যালাস্টেয়ার যে চারটি চ্যালেঞ্জের কথা আগে বলেছিলেন, সেগুলি মনে আছে?

  • গুডউড সত্যিই তাদের মধ্যে দুটি পরীক্ষা করেছে।

  • এখন, প্রথমটি ছিল তাপ।

  • এখন, ব্রিটেনে, আমরা সাধারণত রোদ ছাড়া অন্য যেকোনও আবহাওয়ার জন্য পরিকল্পনা করি।

  • তাই, স্বাভাবিকভাবেই, আমরা যা পেয়েছি তা হল রেকর্ডে থাকা সবচেয়ে উষ্ণ সপ্তাহগুলির মধ্যে একটি, যা ঠিক একটি তাপপ্রবাহের মাঝখানে।

  • Formula E গাড়ির মধ্যে কম্পিউটার রাখার জন্য এটিই উপযুক্ত সময়।

  • কিন্তু এখানে একটা টুইস্ট আছে।

  • ফোনটি আসলে ঠিকই ছিল।

  • Android-এর কোনও ক্ষতি হয়নি।

  • দেখা গেল যে Raspberry Pi-এর ক্ষেত্রে সবচেয়ে বেশি সমস্যা হয়েছে।

  • আর আমরা যেহেতু সরাসরি গাড়িতে প্লাগ করতে পারিনি, তাই আমাদের UPS ব্যবহার করতে হয়েছিল, যা, আপনি যদি না জানেন, মূলত Pi-এর নিচে আটকে থাকা একগুচ্ছ ব্যাটারির মতো দেখতে।

  • কিন্তু সৌভাগ্যবশত, আমরা সারাদিন ধরে মাঝে মাঝে চার্জ করে এই সমস্যার সমাধান করতে পেরেছি এবং এটি না করলে, কোনও AI এজেন্ট ছাড়াই গাড়িটি সম্ভবত সেই পাহাড়ে উঠতে পারত না।

  • এরপর ব্লুটুথ।

  • এখন, সেই সময়ে, আমরা আসলে ড্রাইভারের হেলমেট দিয়ে পরীক্ষা করিনি, যা ব্লুটুথের মাধ্যমে অ্যাপের সাথে কানেক্ট করে।

  • আর এটি করা একটু কঠিন হয়ে যাচ্ছিল।

  • তাই, এটি পরীক্ষা করার জন্য, আমরা ঘাসের উপর বসেছিলাম এবং দেখে মনে হচ্ছে যে আমরা সত্যিই খুব ভালো সময় কাটাচ্ছি, তাই না?

  • ল্যাপটপ খুলে বসেছি, দারুণ আড্ডা হচ্ছে।

  • আসলে, আমার কেরিয়ারের সবচেয়ে বেশি মানসিক চাপের সময়গুলির মধ্যে এটি অন্যতম।

  • আমরা সেই কোডটি যাতে ঠিকভাবে কাজ করে এবং বিকেলে ড্রাইভটি পাহাড়ে ওঠার আগে ব্লুটুথ হেলমেটটি অ্যাপের সাথে কানেক্ট হয়ে যায় তার জন্য আপ্রাণ চেষ্টা করছিলাম।

  • কিন্তু শেষ মুহূর্তে কিছু হট ফিক্সিং এবং Android-এর দুর্দান্ত ডিবাগিং টুলের জন্য ধন্যবাদ, আমরা ঠিক সময়ে এটি ঠিক করতে পেরেছি এবং AI এজেন্ট দুর্দান্ত কাজ করার সাথে গাড়িটি পাহাড়ে উঠেছে।

  • এখন আমি আবার Alastair-এর কাছে ফিরে যাব, যিনি আমাদের এই প্রোজেক্ট থেকে কী কী শিক্ষা পাওয়া গেছে সেই সম্পর্কে আরও কিছু বলবেন।

  • ধন্যবাদ।

শেখার মূল বিষয় ও শিক্ষা

  • ধন্যবাদ, অলি।

  • তাহলে, এই প্রোজেক্ট থেকে আমরা কী শিখলাম?

  • প্রথমত, আপনার এজেন্টের জন্য Android হল একটি নিখুঁত হোস্ট।

  • আমি আপনাকে Android-এর বহুমুখীতা, আপনার জন্য উপলভ্য API, অন-ডিভাইস মডেল, ADK ব্যবহার করতে উৎসাহিত করছি।

  • এগুলি ব্যবহার করে দেখুন, কারণ এত সহজ জিনিস থেকে আপনি কত শক্তিশালী অভিজ্ঞতা পেতে পারেন তা দেখে আপনি অবাক হয়ে যাবেন।

  • ইন্টিগ্রেশন হেল এখনও আছে।

  • এই রুমে থাকা বেশিরভাগ মানুষই সম্ভবত তাদের কেরিয়ারের কোনও না কোনও সময়ে এটি করেছেন।

  • আপনি সব সাব-কম্পোনেন্ট আলাদাভাবে তৈরি করেন এবং তারপরে যখন আপনি অবশেষে এটি একসাথে প্লাগ আপ করতে আসেন, তখন কিছু কাজ করে না।

  • আর ড্রাইভারের রেসিং হেলমেট ঠিক এইরকম ছিল।

  • তবে, আমরা সেদিনই এটি ঠিক করতে পেরেছিলাম এবং এটি প্রমাণ করে যে টেস্টিং এখনও কতটা গুরুত্বপূর্ণ।

  • এবং সবশেষে, Gemini Nano.

  • Gemini Nano এখানে সত্যিই খুব সাহায্য করেছে।

  • এটি একটি অত্যন্ত কার্যকর মডেল এবং এটি আপনার ডিভাইসে খুব দ্রুত চলে এবং সত্যিই জটিল কাজগুলি করতে পারে, তবে এটি সরাসরি তা করে না।

  • এর পিছনে কিছু বাস্তব চিন্তাভাবনা আছে।

  • আপনাকে প্রম্পট ইঞ্জিনিয়ারিং করতে হবে।

  • আপনাকে এটি পরীক্ষা করে দেখতে হবে।

  • আপনাকে ভাবতে হবে যে আপনি কীভাবে ডায়নামিক নির্দেশ বনাম স্ট্যাটিক নির্দেশ ফিড করতে চান।

  • আপনি এটিকে কোন টুল দেবেন এবং কীভাবে এটিকে সবচেয়ে ভালোভাবে নির্দেশ দেবেন তা আপনাকে ভাবতে হবে।

  • তবে, সঠিক ধরনের টেস্টিং ও মূল্যায়নের মাধ্যমে, আপনি ডিভাইসেই Gemini Nano-র মতো মডেল থেকে অনেক কিছু পেতে পারেন।

  • সবাইকে অনেক ধন্যবাদ।

  • আমরা পরে বুথে থাকব, তাই আপনি এসে যোগ দিতে এবং আমাদের কিছু প্রশ্ন জিজ্ঞাসা করতে পারেন।

কোড

কোড স্নিপেট

"ADK ও ML Kit-এর মাধ্যমে প্রয়োগ" ভিডিওর 07:45-এ Kotlin স্নিপেট
val generativeModel: GenerativeModel = Generation.getClient()
val onDeviceModel = GenaiPrompt.create(
    generativeModel = generativeModel,
    name = "gemini-nano",
)
val agent = LlmAgent(
    name = "race_engineer",
    model = onDeviceModel,
    staticInstruction = /* System prompt */,
    instruction = Instruction {
        /* Dynamic context */
    },
    tools = listOf(
        /* Custom tools */
    )
)