میں نے اپنی ایپ میں AI چیٹ شامل کرنے کی کوشش کی اور ایک بڑی رکاوٹ کا سامنا کیا
میں نے اپنے پروجیکٹ مینجمنٹ ٹول میں ایک AI چیٹ اسسٹنٹ شامل کرنے کی کوشش کی۔ مجھے لگا کہ یہ آسان ہوگا۔ میرا منصوبہ چیٹ کی پوری ہسٹری کو ایک API پر بھیجنے کا تھا۔
یہ ناکام رہا۔
15 پیغامات کے بعد، جوابات سست یا خراب ہونے لگے۔ API نے ایررز (errors) دینا شروع کر دیے کیونکہ ٹیکسٹ ٹوکن کی حد (token limit) سے زیادہ لمبا ہو گیا تھا۔
یہاں وہ چیزیں ہیں جو میں نے آزمائیں اور جو کام آئیں۔
وہ مسائل جن کا مجھے سامنا کرنا پڑا:
- ہسٹری کو مختصر کرنا (Truncating history): میں نے صرف آخری چند پیغامات رکھے تاکہ رفتار بہتر ہو سکے۔ اس سے رفتار تو ٹھیک ہو گئی لیکن AI چیٹ کے آغاز کی تمام باتیں بھول گیا۔
- خلاصہ کرنا (Summarization): میں نے AI سے ہر 5 پیغامات کے بعد چیٹ کا خلاصہ کرنے کو کہا۔ اس سے یادداشت (memory) میں مدد ملی لیکن اس سے میرے اخراجات اور انتظار کا وقت بڑھ گیا۔
- ویکٹر اسٹورز (Vector stores): میں نے پیغامات کو ان کی اہمیت (relevance) کے لحاظ سے اسکور کرنے کی کوشش کی۔ اس سے میری ضروریات کے مطابق بہت زیادہ پیچیدگی پیدا ہوگئی۔
حل:
میں نے سب کچھ بھیجنے کی کوشش کرنا چھوڑ دی۔ تجربے کو بہتر بنانے کے لیے میں نے دو اہم طریقے استعمال کیے۔
اسٹریمنگ (Streaming): میں نے ٹیکسٹ کو جنریٹ ہوتے ہی دکھانے کے لیے Server-Sent Events کا استعمال کیا۔ اس سے ایپ تیز محسوس ہوتی ہے، چاہے AI سوچنے میں وقت لے۔
تھری-سلٹ کانٹیکسٹ ونڈو (A Three-Slot Context Window): میں نے اپنے ٹوکن بجٹ کو مخصوص حصوں میں تقسیم کر دیا۔
- سسٹم پرامپٹ (System Prompt): 500 ٹوکنز۔ یہ تبدیل نہیں ہوتا۔
- ڈائنامک کانٹیکسٹ (Dynamic Context): 2000 ٹوکنز۔ اس میں حالیہ پروجیکٹ اپ ڈیٹس اور ٹاسک کی حالتیں محفوظ ہوتی ہیں۔
- گفتگو کی ہسٹری (Conversation History): 4000 ٹوکنز۔ یہ حالیہ پیغامات کی ایک سلائیڈنگ ونڈو (sliding window) ہے۔
اس طرح بجٹ کو مینیج کرنے سے، میں نے اپنے پے لوڈ (payload) کے سائز کو 40% تک کم کر دیا۔ اس سے پیسے بھی بچے اور لیٹنسی (latency) بھی کم ہوئی۔
میرا مشورہ:
AI شامل کرنے کا مطلب صرف ایک API کو کال کرنا نہیں ہے۔ آپ کو یہ مینیج کرنا ہوگا کہ آپ کتنا ڈیٹا بھیج رہے ہیں۔ اسٹریمنگ سے صارف کو رفتار کا احساس بہتر ہوتا ہے۔ ایک ذہین کانٹیکسٹ حکمت عملی (context strategy) سے AI کی ذہانت کا احساس بہتر ہوتا ہے۔
آپ اپنی ایپس میں گفتگو کی یادداشت (conversation memory) کو کیسے مینیج کرتے ہیں؟ کیا آپ سلائیڈنگ ونڈوز استعمال کرتے ہیں یا خلاصہ کرنے کا طریقہ؟
اختیاری لرننگ کمیونٹی: https://t.me/GyaanSetuAi