Vercel AI SDK v5 React ڈویلپرز کو large-language-model (LLM) کالز کو سرور پر منتقل کرنے کی اجازت دیتا ہے، جس سے API keys چھپی رہتی ہیں اور براؤزر میں ٹیکسٹ چنکس (chunks) کی اسٹریمنگ سے پیدا ہونے والی لیٹنسی (latency) میں نمایاں کمی آتی ہے۔ نیا ٹرانسپورٹ پر مبنی آرکیٹیکچر اسٹیٹ ہینڈلنگ کو بھی الگ کر دیتا ہے، تاکہ UI کوڈ ہلکا پھلکا رہے جبکہ SDK اسٹریمنگ، ہسٹری اور ٹول انویکیشنز (tool invocations) کو مینیج کرے۔
پرانا طریقہ کار ماڈل کے لیے کیوں نقصان دہ تھا
v5 سے پہلے بنائے گئے زیادہ تر React چیٹ بوٹس ماڈل کا آؤٹ پٹ براہ راست کلائنٹ کو اسٹریم کرتے تھے۔ اس کی وجہ سے ڈویلپرز کو LLM کی سیکرٹ کی (secret key) کو فرنٹ اینڈ کوڈ میں شامل کرنا پڑتا تھا، جس سے وہ براؤزر کے نیٹ ورک انسپکٹر میں ظاہر ہو جاتی تھی۔ ٹیمیں ہر آنے والے ٹوکن (token) کو بفر کرنے کے لیے useState کا استعمال کرتی تھیں، جس کی وجہ سے ہر چھوٹے چنک پر ری-رینڈر (re-render) ہوتا تھا۔ UI جھپکتا (flicker) تھا اور کوڈ کال بیکس (callbacks) کا ایک الجھا ہوا مجموعہ بن جاتا تھا۔
نتیجہ: کوئی بھی کی (key) چرا سکتا تھا، اور جب ڈویلپرز لو-لیول اسٹیٹ کی پیچیدگیوں سے نبرد آزما ہوتے تھے تو گفتگو میں تاخیر (lag) محسوس ہوتی تھی۔
v5 اندرونی طور پر کیا تبدیلیاں لاتا ہے
Transport-Based Architecture – SDK اب LLM کے ساتھ کنکشن کو ایک ماڈیولر ٹرانسپورٹ لیئر کے طور پر دیکھتا ہے۔ کالز سرور پر ایک API روٹ سے شروع ہوتی ہیں، اس لیے سیکرٹ کی کبھی بھی بیک اینڈ سے باہر نہیں جاتی۔ ٹرانسپورٹ اسٹریمنگ پروٹوکول کو ایبسٹریکٹ (abstract) کرتا ہے، اور فرنٹ اینڈ کو پیغامات کا ایک صاف اور ٹائپڈ (typed) اسٹریم فراہم کرتا ہے۔
Typed Tool Invocations – جب کوئی ماڈل کسی ٹول کو کال کرنے کا فیصلہ کرتا ہے (مثلاً موسم کی معلومات یا کیلنڈر فیچ کرنا)، تو SDK اس درخواست کو ایک ٹائپڈ پے لوڈ (typed payload) میں پیک کرتا ہے۔ فرنٹ اینڈ براہ راست پے لوڈ کی ساخت کو پڑھتا ہے، جس سے غیر ضروری پارسنگ (parsing) ختم ہو جاتی ہے اور رن ٹائم ایررز (runtime errors) میں کمی آتی ہے۔
Decoupled State Management –
useChatہک اب کسی ایک اسٹیٹ اسٹور پر مجبور نہیں کرتا۔ یہ ایسے کال بیکس اور یوٹیلیٹیز فراہم کرتا ہے جنہیں کوئی بھی اسٹیٹ لائبریری—Zustand، Redux، یا سادہ React context—استعمال کر سکتی ہے۔ UI کمپوننٹس صرف رینڈرنگ پر توجہ مرکوز رکھتے ہیں جبکہ SDK تمام مشکل کام سنبھالتا ہے۔
ایک عملی ورک فلو (workflow)
- Server-side LLM logic – ایک API روٹ میں،
streamText(یا اس کے مساوی اسٹریمنگ ہیلپر) کو کال کریں۔ SDK ایک محفوظ کنکشن کے ذریعے ماڈل کا آؤٹ پٹ کلائنٹ کو واپس اسٹریم کرتا ہے، جس سے API کی براؤزر سے دور رہتی ہے۔ - Client-side UI – ایک React کمپوننٹ میں
useChatامپورٹ کریں۔ ہک موجودہ میسج لسٹ، نیا یوزر ان پٹ بھیجنے کے لیے ایک فنکشن، اور اسٹیٹس فلیگز (status flags) واپس کرتا ہے۔ چونکہ اسٹیٹ کہیں اور ہوتی ہے، اس لیے آپ کسی بھی اسٹیٹ مینیجر کو استعمال کر سکتے ہیں جو آپ پہلے سے استعمال کر رہے ہوں۔ - Tool handling – جب ماڈل ٹول کال جاری کرتا ہے، تو SDK کلائنٹ کو ایک منظم (structured) آبجیکٹ فراہم کرتا ہے۔ دستی سنک کوڈ (manual sync code) لکھے بغیر موسم کا ویجیٹ، کیلنڈر پکر، یا کوئی بھی کسٹم UI ایلیمنٹ رینڈر کریں۔
اس کا نتیجہ ایک صاف ستھری علیحدگی ہے: سرور تمام LLM تعاملات (interactions) کا مالک ہے، جبکہ کلائنٹ صرف پریزنٹیشن کا ذمہ دار ہے۔ اب مزید خام (raw) اسٹریم پارسنگ، کی (key) کے حادثاتی طور پر لیک ہونے کا خطرہ، اور ہر ٹوکن پر ری-رینڈرنگ سے ہونے والی UI کی جھپک (jitter) کا مسئلہ نہیں رہے گا۔
کون فائدہ اٹھائے گا، اور کون ہچکچاہٹ کا شکار ہو سکتا ہے
آگے کیا دیکھنا ہے
خلاصہ
Vercel AI SDK v5 LLM کالز کو سرور پر منتقل کر کے، ٹائپڈ ٹول ڈیٹا فراہم کر کے، اور فرنٹ اینڈ کو لو-لیول اسٹیٹ کے جھمیلوں سے آزاد کر کے React چیٹ بوٹ ڈویلپمنٹ کو ایک نئی شکل دیتا ہے۔ یہ تبدیلی دو بڑے خطرات—ایکسپوزڈ سیکرٹس (exposed secrets) اور غیر مستحکم UI—کا مقابلہ کرتی ہے، جبکہ ڈویلپرز کو اپنے اسٹیٹ اسٹیک پر کنٹرول برقرار رکھنے کی آزادی دیتی ہے۔
