Neon Functions اب غیر محدود دورانیے والے اسٹریمنگ کنکشنز کو سپورٹ کرتے ہیں، جس سے AI ایجنٹس سیکنڈوں، منٹوں یا اس سے بھی زیادہ دیر تک ایک لائیو چینل کھلا رکھ سکتے ہیں، بغیر ان ٹائم آؤٹ کی حدود کے جن کی وجہ سے زیادہ تر سرور لیس (serverless) ورک لوڈز بند ہو جاتے ہیں۔ یہ تبدیلی ان تمام لوگوں کے لیے اہم ہے جو چیٹ اسٹائل اسسٹنٹ یا ٹول استعمال کرنے والے بوٹس بنا رہے ہیں، کیونکہ ایک ٹوٹا ہوا اسٹریم گفتگو کو روک دیتا ہے اور صارف کے تجربے کو خراب کر دیتا ہے۔

سرور لیس اور AI ایجنٹس کے درمیان تضاد کیوں رہا ہے

زیادہ تر سرور لیس پلیٹ فارمز فوری اور "فائر اینڈ فورگیٹ" (fire-and-forget) کاموں کے لیے بنائے گئے ہیں۔ وہ وسائل کو قابل پیش گوئی رکھنے کے لیے ایگزیکیوشن کی سخت حدیں نافذ کرتے ہیں—اکثر فری ٹیرز پر 10 سیکنڈ اور پیڈ پلانز پر 60 سیکنڈ—تاکہ وسائل کا استعمال کنٹرول میں رہے۔ تاہم، ایک AI ایجنٹ سوچنے، بیرونی ٹولز کو کال کرنے، اور ٹوکنز کے تیار ہوتے ہی انہیں جاری کرنے میں وقت صرف کرتا ہے۔ وہ "سوچنے" کا مرحلہ اکثر کئی دہائیوں (tens of seconds) تک پھیل جاتا ہے، اور ٹوکن اسٹریم اس وقت تک جاری رہ سکتی ہے جب تک ماڈل آؤٹ پٹ تیار کرتا رہتا ہے۔ جب پلیٹ فارم کا ٹائمر ختم ہوتا ہے، تو یہ کنکشن بند کر دیتا ہے اور کلائنٹ کو ایک ٹوٹا ہوا اسٹریم نظر آتا ہے۔

Neon کا جواب: ڈیفالٹ کے طور پر طویل مدتی اسٹریمنگ

Neon Functions صورتحال کو بدل دیتا ہے۔ ایک فنکشن کال بغیر کسی خصوصی کنفیگریشن کے WebSockets یا Server-Sent Events (SSE) کے ذریعے ڈیٹا فراہم کرتے ہوئے لامحدود وقت تک کھلی رہ سکتی ہے۔ پلیٹ فارم ایک طویل اسٹریم کو ایک عام درخواست (request) کے طور پر لیتا ہے، اس لیے ڈویلپرز صرف وہ لاجک لکھتے ہیں جو اسٹریم تیار کرتی ہے اور باقی کام Neon پر چھوڑ دیتے ہیں۔

حال ہی میں کیے گئے ایک ٹیسٹ میں، دو اینڈ پوائنٹس نے اس طرزِ عمل کا مظاہرہ کیا:

  • Heartbeat endpoint – فنکشن نے 90 سیکنڈ تک ہر سیکنڈ میں ایک بار "tick" جاری کیا۔ عام سرور لیس ٹیرز 10 یا 60 سیکنڈ کے بعد درخواست کو ختم کر دیتے؛ لیکن Neon نے کنکشن کو تب تک برقرار رکھا جب تک فنکشن خود مکمل نہیں ہو گیا۔
  • Token-relay endpoint – فنکشن نے AI ماڈل سے کلائنٹ کو ٹوکنز اس وقت اسٹریم کیے جیسے ہی ہر ٹوکن تیار ہوا۔ صارفین نے پورے متن کے بلاک کا انتظار کرنے کے بجائے لفظ بہ لفظ جواب ظاہر ہوتے دیکھا۔

دونوں مثالوں کے لیے کلائنٹ کی طرف سے صرف ایک ہی درخواست کی ضرورت تھی؛ کسی پولنگ (polling) یا کیپ-الائیو (keep-alive) ٹرکس کی ضرورت نہیں تھی۔

کسے فائدہ ہوگا، اور کنہیں محتاط رہنا چاہیے

بات چیت کرنے والے اسسٹنٹ، ٹول استعمال کرنے والے ایجنٹس، یا ایسی کوئی بھی سروس بنانے والی ٹیمیں جنہیں بتدریج نتائج (incremental results) فراہم کرنے کی ضرورت ہوتی ہے، انہیں فوری فائدہ حاصل ہوگا: ٹائم آؤٹ کا مسئلہ ختم ہو جائے گا۔ اس کا نتیجہ سادہ کوڈ، کم لیٹنسی (lower latency)، اور ایک ہموار صارف تجربہ ہے۔

توازن کے حوالے سے درج ذیل نکات قابل ذکر ہیں:

  • Request-only model – Neon Functions ان اسٹریمز کو ہینڈل کرتا ہے جو ایک فعال درخواست (active request) کے ساتھ جڑی رہتی ہیں۔ وہ بیک گراؤنڈ جابز جنہیں درخواست کے ختم ہونے کے بعد بھی چلنا ہے، انہیں اب بھی Inngest یا کسی اسی طرح کے ورک فلو انجن جیسے الگ شیڈولر کی ضرورت ہوگی۔
  • Cold starts – وہ فنکشنز جو غیر فعال (idle) ہوں تو وہ اسکیل (scale) ہو کر زیرو پر آ سکتے ہیں، اس لیے اگلی درخواست میں کولڈ اسٹارٹ (cold-start) میں تاخیر ہو سکتی ہے۔ ایک فعال اسٹریم اسکیل ڈاؤن ہونے سے روکتی ہے، لیکن غیر فعالیت کے بعد پہلی درخواست میں اب بھی اسٹارٹ اپ کی لاگت اٹھانی پڑتی ہے۔

آگے کیا دیکھنا ہے

خلاصہ یہ ہے کہ: Neon Functions اس ٹائم آؤٹ کی حد کو ختم کر دیتا ہے جس نے طویل عرصے سے AI ڈویلپرز کو متبادل طریقوں (workarounds) پر مجبور کیا ہوا ہے۔ درخواست کو اتنی دیر تک کھلا رکھنے کی اجازت دے کر جتنی دیر ایجنٹ کو سوچنے اور بات کرنے کی ضرورت ہو، Neon اسٹریمنگ AI ایجنٹس کو کسی بھی دوسرے سرور لیس فنکشن کی طرح ڈیپلائے کرنا آسان بنا دیتا ہے۔