থিঙ্কিং মোড চূড়ান্ত প্রতিক্রিয়া তৈরি করার আগে মডেলকে তার যুক্তি প্রক্রিয়াটি প্রদর্শন করতে উৎসাহিত করে। থিঙ্কিং মোড মডেলের ফাংশন-কলিং নির্ভুলতা উন্নত করে এবং গণিত, সমস্যা সমাধান ও অন্যান্য জটিল যুক্তিনির্ভর কাজের জন্য এটি বেশ কার্যকর।
যখন থিঙ্কিং মোড সক্রিয় করা হয়, তখন মডেলের আউটপুট দুটি ভাগে বিভক্ত হয়:
- চিন্তন প্রক্রিয়া: মডেলটির গৃহীত অভ্যন্তরীণ যুক্তি বা পরিকল্পনার ধাপসমূহ।
- প্রতিক্রিয়া: ব্যবহারকারীর জন্য তৈরি করা চূড়ান্ত উত্তর।
পূর্বশর্ত
থিংকিং মোড জেমিনি ন্যানো ভি৪ এবং এর পরবর্তী সংস্করণ চালিত ডিভাইসগুলিতে কাজ করে। আপনি যেকোনো এআইকোর-সক্ষম ডিভাইসে ডেভেলপার প্রিভিউ প্রোগ্রামের মাধ্যমে থিংকিং মোড পরীক্ষা করতে পারেন।
চিন্তা মোড সক্রিয় করুন
থিংকিং মোড ব্যবহার করতে হলে, আপনাকে আপনার generateContentRequest বিল্ডার ফাংশনে enableThinking ফ্ল্যাগটিকে true সেট করে এটি চালু করতে হবে:
val request = generateContentRequest {
text("Solve this complex riddle: ...")
enableThinking = true // Enable thinking mode for Gemini Nano V4
}
চিন্তাভাবনার প্রবেশাধিকার
আপনি নন-স্ট্রিমিং নাকি স্ট্রিমিং ইমপ্লিমেন্টেশন ব্যবহার করছেন, তার উপর নির্ভর করে এমএল কিট এসডিকে একটি মডেলের প্রতিক্রিয়ার পূর্ববর্তী চিন্তাগুলো অ্যাক্সেস করার জন্য বিভিন্ন উপায় প্রদান করে।
নন-স্ট্রিমিং মোড
সাধারণ নন-স্ট্রিমিং কলগুলিতে, রিজনিং প্রসেসটি সম্পূর্ণ রেসপন্সের অংশ হিসেবে ফেরত দেওয়া হয়। আপনি GenerateContentResponse অবজেক্টের thoughtProcess প্রপার্টি ব্যবহার করে এই প্রসেসটি অ্যাক্সেস করতে পারেন—যেটিতে Candidate অবজেক্টগুলির একটি তালিকা থাকে।
try {
val response = generativeModel.generateContent(request)
// 1. Access the main response
val answer = response.candidates.firstOrNull()?.text
println("Final Answer: $answer")
// 2. Access the separated thought process
println("Thought Process:")
response.thoughtProcess.forEach { thoughtCandidate ->
print(thoughtCandidate.text)
}
} catch (e: GenAiException) {
// Handle SDK-specific exceptions
}
স্ট্রিমিং মোড
রিয়েল-টাইম ফিডব্যাক সমর্থন করার জন্য, StreamingCallback ইন্টারফেসটি onNewThought মেথড অন্তর্ভুক্ত করে আপডেট করা হয়েছে। এটি আপনার অ্যাপকে মডেল দ্বারা তৈরি হওয়ার সাথে সাথেই স্ট্রিমিং থট চাঙ্কগুলি পরিচালনা করতে সক্ষম করে।
val callback = object : StreamingCallback {
override fun onNewText(additionalText: String) {
// Called for regular response chunks
print(additionalText)
}
override fun onNewThought(additionalThought: String) {
// Called for thought chunks before final text arrives
// Update a separate reasoning UI or status indicator
print("[Thinking: $additionalThought]")
}
}
try {
generativeModel.generateContent(request, callback)
} catch (e: GenAiException) {
// Handle exception
}
সর্বোত্তম অনুশীলন
থিঙ্কিং মোড ব্যবহার করার কিছু সেরা অনুশীলন নিচে দেওয়া হলো:
- UI নির্দেশক: যেহেতু যুক্তির ধাপগুলো তৈরি হতে সময় লাগতে পারে, তাই স্ট্রিমিং মোডে চিন্তাগুলো বা একটি 'চিন্তা করছে' নির্দেশক প্রদর্শন করলে তা ব্যবহারকারীকে মডেলটির সক্রিয়তা দেখানোর মাধ্যমে অনুভূত কর্মক্ষমতা উল্লেখযোগ্যভাবে উন্নত করতে পারে।
- নির্বাচিত বাস্তবায়ন: আপনি যদি শেষ ব্যবহারকারীদের কাছে মূল যুক্তি প্রকাশ করতে না চান, তাহলে আপনি
thoughtProcessফিল্ডটি উপেক্ষা করতে পারেন অথবাonNewThoughtবাস্তবায়নটি বাদ দিতে পারেন। পূর্ববর্তী সংস্করণের সাথে সামঞ্জস্যতা নিশ্চিত করতে সাহায্য করার জন্যonNewThoughtমেথডটির একটি ডিফল্ট খালি বাস্তবায়ন রয়েছে।
আরও টিপসের জন্য, জেমা-এর থিঙ্কিং মোড দেখুন। উল্লেখ্য যে, এআইকোর-এ বর্তমানে একাধিক পালায় কথোপকথন সমর্থিত নয়।