AI چیٹ ایپ ایک ٹیکسٹ چیٹ انٹرفیس ہے جہاں صارف پیغام ٹائپ کرتا ہے، ایپ اسے ایسی سروس کو بھیجتی ہے جو AI ماڈل کو کال کر سکتی ہے، اور پھر ایپ ماڈل کا جواب صارف کو دکھاتی ہے۔
بہت سی مصنوعات میں، جواب ایک ‘اسٹریم’ (مسلسل بہاؤ) کی صورت میں موصول ہوتا ہے، لہذا صارف کو مکمل جواب کا انتظار کرنے کے بجائے وقت کے ساتھ ساتھ ‘ٹوکنز’ (الفاظ یا حصوں) کو ظاہر ہوتے ہوئے نظر آتے ہیں۔
معاملے کو سادہ رکھنے کے لیے، ایک چھوٹی اندرونی ٹیم سے شروعات کریں جو ایک ویب ایپ استعمال کر رہی ہو، ایک بیک اینڈ سروس سے رابطہ کر رہی ہو، اور وہ سروس ایک ماڈل فراہم کنندہ (model provider) کو کال کر رہی ہو۔
ایک سرور کے ساتھ، عمل کا بہاؤ ایک ‘لوپ’ (دائرے) کی طرح ہوتا ہے۔ کلائنٹ صارف کا پیغام ایک ہی API سرور کو بھیجتا ہے، API سرور گفتگو کو لوڈ کرتا ہے تاکہ اسے سیاق و سباق (context) کا علم ہو، پھر وہ ماڈل فراہم کنندہ کو کال کرتا ہے، اور آخر میں اسسٹنٹ کا جواب کلائنٹ کو واپس بھیجتا ہے۔
اس ابتدائی سطح پر بھی گفتگو کو محفوظ رکھنے کا نظام (conversation store) اہم ہے کیونکہ صفحہ ریفریش ہونے پر چیٹ ختم یا غائب نہیں ہونی چاہیے۔ API سرور صارف اور اسسٹنٹ کے ہر پیغام کو محفوظ کرتا ہے، اور پھر اگلی باری (turn) پر اسی گفتگو کو جاری رکھنے کے لیے ان محفوظ شدہ پیغامات کا استعمال کرتا ہے۔
یہ وہ چیٹ کا ایک مرحلہ (turn) ہے جسے ہم بطور بیس لائن تیار کر رہے ہیں۔
اس خاکے (diagram) کے چار اہم کام ہیں۔ کلائنٹ (client) صارف سے ان پٹ لیتا ہے اور اسٹریم (stream) کو ظاہر کرتا ہے؛ API سرور درخواست (request) کے پورے عمل (lifecycle) کا انتظام سنبھالتا ہے؛ کنورسیشن اسٹور (conversation store) پیغامات کو محفوظ رکھتا ہے تاکہ صفحہ ریفریش ہونے کے باوجود گفتگو کا سلسلہ (thread) برقرار رہے؛ اور ماڈل API ان ‘اسسٹنٹ ٹوکنز’ (assistant tokens) کو تیار کرتا ہے جنہیں سرور واپس کلائنٹ تک پہنچاتا ہے۔
اس کا عملی دائرہ کار صرف سادہ متن (plain text) پر مبنی چیٹ تک محدود ہے۔ اس میں کوئی ٹولز، تصاویر یا فائل اپ لوڈ کی سہولت شامل نہیں ہے، لہذا ہر مرحلے (turn) پر صرف تین کام ہوتے ہیں: پیغامات کو محفوظ کرنا، سیاق و سباق (context) کو یکجا کرنا، اور ماڈل کو کال کرنا۔
اب ایک ایسا عدد شامل کریں جو ایک ہی سرور پر دباؤ ڈالتا ہے۔ اگر 2,000 صارفین بیک وقت (concurrently) موجود ہوں اور ہر صارف فی منٹ 2 بار پیغام بھیجے (2 turns per minute)، تو بیک اینڈ کو فی سیکنڈ تقریباً صارف ٹرنز کا سامنا کرنا پڑتا ہے، جس کا مطلب ہے کہ اتنی ہی تعداد میں متوازی (parallel) ماڈل کالز کی ضرورت پیش آتی ہے۔
یہ ایک عدد دو ایسے ‘غیر عملی’ (non-functional) عوامل یا اشارے پیدا کرتا ہے جنہیں باقی ماندہ ڈیزائن میں مدنظر رکھنا ضروری ہوتا ہے۔ ‘لیٹنسی’ (latency) یا تاخیر نمایاں ہو جاتی ہے کیونکہ کل وقتی دورانیے (end-to-end time) میں ماڈل کالز کا وقت سب سے زیادہ ہوتا ہے، اور لاگت (cost) کا معاملہ حساس ہو جاتا ہے کیونکہ سسٹم کو ہر درخواست اور ہر تیار کردہ ٹوکن کے لیے ادائیگی کرنی پڑتی ہے۔
اسکیلنگ (وسعت دینے) کے عمل سے پہلے ہی، بنیادی ڈھانچے کو باآسانی ایسے دوبارہ قابلِ استعمال اجزاء میں تقسیم کیا جا سکتا ہے جن میں سے ہر ایک کی اپنی مخصوص ذمہ داری ہوتی ہے۔