আমি আমার অ্যাপে AI চ্যাট যোগ করার চেষ্টা করেছিলাম এবং একটি বাধার সম্মুখীন হয়েছিলাম
আমি আমার প্রজেক্ট ম্যানেজমেন্ট টুলে একটি AI চ্যাট অ্যাসিস্ট্যান্ট যোগ করার চেষ্টা করেছিলাম। আমি ভেবেছিলাম এটি সহজ হবে। আমি পুরো চ্যাট হিস্ট্রি একটি API-তে পাঠানোর পরিকল্পনা করেছিলাম।
এটি ব্যর্থ হয়েছিল।
১৫টি মেসেজের পর, রেসপন্সগুলো ধীরগতির বা ত্রুটিপূর্ণ হয়ে পড়ল। টেক্সট টোকেন লিমিটের তুলনায় অনেক বেশি বড় হওয়ায় API এরর (error) দেখাতে শুরু করল।
আমি যা চেষ্টা করেছি এবং যা কাজ করেছে তা নিচে দেওয়া হলো।
আমি যেসব সমস্যার সম্মুখীন হয়েছিলাম:
- হিস্ট্রি ছোট করা (Truncating history): আমি শুধুমাত্র শেষ কয়েকটি মেসেজ রেখেছিলাম। এতে গতি ঠিক থাকলেও AI চ্যাটের শুরু থেকে সবকিছু ভুলে যেত।
- সামারাইজেশন (Summarization): আমি AI-কে প্রতি ৫টি মেসেজের পর চ্যাটটি সামারাইজ করতে বলেছিলাম। এটি মেমরি বজায় রাখতে সাহায্য করলেও আমার খরচ এবং অপেক্ষার সময় বাড়িয়ে দিয়েছিল।
- ভেক্টর স্টোর (Vector stores): আমি প্রাসঙ্গিকতা অনুযায়ী মেসেজগুলোর স্কোর করার চেষ্টা করেছিলাম। এটি আমার প্রয়োজনের তুলনায় অতিরিক্ত জটিলতা তৈরি করেছিল।
সমাধান:
আমি সবকিছু পাঠানোর চেষ্টা করা বন্ধ করে দিলাম। অভিজ্ঞতা উন্নত করতে আমি দুটি প্রধান পদ্ধতি ব্যবহার করেছি।
স্ট্রিমিং (Streaming): টেক্সট জেনারেট হওয়ার সাথে সাথে দেখানোর জন্য আমি Server-Sent Events ব্যবহার করেছি। এতে AI চিন্তা করতে সময় নিলেও অ্যাপটি দ্রুত কাজ করছে বলে মনে হয়।
একটি থ্রি-স্লট কনটেক্সট উইন্ডো (A Three-Slot Context Window): আমি আমার টোকেন বাজেটকে নির্দিষ্ট কয়েকটি ভাগে ভাগ করেছি।
- সিস্টেম প্রম্পট (System Prompt): ৫০০ টোকেন। এটি অপরিবর্তিত থাকে।
- ডায়নামিক কনটেক্সট (Dynamic Context): ২০০০ টোকেন। এটি সাম্প্রতিক প্রজেক্ট আপডেট এবং টাস্ক স্টেট ধারণ করে।
- কনভারসেশন হিস্ট্রি (Conversation History): ৪০০০ টোকেন। এটি সাম্প্রতিক মেসেজগুলোর একটি স্লাইডিং উইন্ডো (sliding window)।
এভাবে বাজেট ম্যানেজ করার মাধ্যমে, আমি আমার পেলোড সাইজ (payload size) ৪০% কমিয়েছি। এতে খরচ সাশ্রয় হয়েছে এবং ল্যাটেন্সি (latency) কমেছে।
আমার পরামর্শ:
AI যোগ করা মানে কেবল একটি API কল করা নয়। আপনি কতটা ডেটা পাঠাচ্ছেন তা আপনাকে অবশ্যই ম্যানেজ করতে হবে। স্ট্রিমিং ব্যবহার করলে ব্যবহারকারী অ্যাপের গতি সম্পর্কে ইতিবাচক ধারণা পান। আর একটি স্মার্ট কনটেক্সট কৌশল AI-কে আরও বুদ্ধিমান হিসেবে উপস্থাপন করে।
আপনি আপনার অ্যাপে কনভারসেশন মেমরি কীভাবে ম্যানেজ করেন? আপনি কি স্লাইডিং উইন্ডো নাকি সামারাইজেশন ব্যবহার করেন?
ঐচ্ছিক লার্নিং কমিউনিটি: https://t.me/GyaanSetuAi