Vercel AI SDK v5 React ডেভেলপারদের LLM (large-language-model) কলগুলোকে সার্ভারে সরিয়ে নিতে সাহায্য করে, যার ফলে API key গোপন থাকে এবং ব্রাউজারে টেক্সট চঙ্ক (chunks) স্ট্রিমিং করার ফলে সৃষ্ট ল্যাটেন্সি (latency) অনেকাংশে কমে যায়। নতুন ট্রান্সপোর্ট-ভিত্তিক আর্কিটেকচার স্টেট হ্যান্ডলিংকেও আলাদা করে দেয়, ফলে UI কোড হালকা থাকে এবং SDK স্ট্রিমিং, হিস্ট্রি এবং টুল ইনভোকেশন (tool invocations) পরিচালনা করে।

কেন পুরনো পদ্ধতিটি মডেলের কার্যকারিতা নষ্ট করত

v5-এর আগে তৈরি করা বেশিরভাগ React চ্যাটবট মডেলের আউটপুট সরাসরি ক্লায়েন্টে স্ট্রিমিং করত। এর ফলে ডেভেলপারদের LLM-এর সিক্রেট কি (secret key) ফ্রন্ট-এন্ড কোডে যুক্ত করতে হতো, যা ব্রাউজারের নেটওয়ার্ক ইন্সপেক্টরে প্রকাশ হয়ে যেত। টিমগুলো প্রতিটি ইনকামিং টোকেন বাফার করার জন্য useState ব্যবহার করত, যার ফলে প্রতিটি ছোট চঙ্কের জন্য বারবার রেন্ডার (re-render) হতো। এর ফলে UI কাঁপতে থাকত (flicker) এবং কোডটি কলব্যাকগুলোর একটি জটিল জালে পরিণত হতো।

ফলাফলস্বরূপ: যে কেউ কি (key) চুরি করতে পারত এবং ডেভেলপাররা লো-লেভেল স্টেট প্লাম্বিং নিয়ে লড়াই করার সময় কথোপকথনে বিলম্ব (lag) দেখা দিত।

v5 অভ্যন্তরীণভাবে কী পরিবর্তন আনে

  • Transport-Based Architecture – SDK এখন LLM-এর সাথে সংযোগকে একটি মডুলার ট্রান্সপোর্ট লেয়ার হিসেবে বিবেচনা করে। কলগুলো সার্ভারের একটি API রুটে থেকে শুরু হয়, তাই সিক্রেট কি কখনোই ব্যাকএন্ড থেকে বাইরে যায় না। ট্রান্সপোর্টটি স্ট্রিমিং প্রোটোকলকে অ্যাবস্ট্রাক্ট করে ফ্রন্ট-এন্ডে মেসেজের একটি পরিষ্কার, টাইপড স্ট্রীম প্রদান করে।

  • Typed Tool Invocations – যখন একটি মডেল কোনো টুল কল করার সিদ্ধান্ত নেয় (যেমন, আবহাওয়া দেখা বা ক্যালেন্ডার থেকে তথ্য আনা), তখন SDK অনুরোধটিকে একটি টাইপড পেলোডে (typed payload) প্যাক করে। ফ্রন্ট-এন্ড সরাসরি পেলোডের গঠন পড়তে পারে, যা অ্যাড-হক পার্সিং (ad-hoc parsing) দূর করে এবং রানটাইম এরর কমায়।

  • Decoupled State ManagementuseChat হুক এখন আর একটি মাত্র স্টেট স্টোর ব্যবহারে বাধ্য করে না। এটি এমন সব কলব্যাক এবং ইউটিলিটি সরবরাহ করে যা যেকোনো স্টেট লাইব্রেরি—Zustand, Redux, বা সাধারণ React context—ব্যবহার করতে পারে। UI কম্পোনেন্টগুলো রেন্ডারিংয়ের দিকে মনোনিবেশ করতে পারে যখন SDK মূল কাজগুলো সম্পন্ন করে।

একটি ব্যবহারিক ওয়ার্কফ্লো

  1. Server-side LLM logic – একটি API রুটে streamText (অথবা সমতুল্য স্ট্রিমিং হেল্পার) কল করুন। SDK একটি নিরাপদ সংযোগের মাধ্যমে মডেলের আউটপুট ক্লায়েন্টে স্ট্রিমিং করে, ফলে API key ব্রাউজারের বাইরে থাকে।
  2. Client-side UI – একটি React কম্পোনেন্টে useChat ইমপোর্ট করুন। এই হুকটি বর্তমান মেসেজ লিস্ট, নতুন ইউজার ইনপুট পাঠানোর জন্য একটি ফাংশন এবং স্ট্যাটাস ফ্ল্যাগ রিটার্ন করে। যেহেতু স্টেট অন্য কোথাও থাকে, তাই আপনি ইতিমধ্যে ব্যবহার করছেন এমন যেকোনো স্টেট ম্যানেজার এখানে যুক্ত করতে পারেন।
  3. Tool handling – যখন মডেল একটি টুল কল প্রদান করে, SDK ক্লায়েন্টে একটি স্ট্রাকচার্ড অবজেক্ট পৌঁছে দেয়। কোনো ম্যানুয়াল সিঙ্ক কোড না লিখেই একটি ওয়েদার উইজেট, ক্যালেন্ডার পিকার বা যেকোনো কাস্টম UI এলিমেন্ট রেন্ডার করুন।

এর ফলাফল হলো একটি পরিষ্কার বিভাজন: সার্ভার সমস্ত LLM ইন্টারঅ্যাকশন নিয়ন্ত্রণ করে এবং ক্লায়েন্ট শুধুমাত্র প্রেজেন্টেশন নিয়ন্ত্রণ করে। আর কোনো র-স্ট্রিম পার্সিং (raw-stream parsing), কোনো অনিচ্ছাকৃত কি লিক (key leak) বা প্রতি-টোকেন রেন্ডারের কারণে UI জिटर (jitter) হওয়ার ভয় নেই।

কারা লাভবান হবে এবং কারা দ্বিধায় থাকতে পারে

পরবর্তীতে কী লক্ষ্য রাখা উচিত

মূল কথা

Vercel AI SDK v5 LLM কলগুলোকে সার্ভারে নিয়ে আসা, টাইপড টুল ডেটা প্রদান করা এবং ফ্রন্ট-এন্ডকে লো-লেভেল স্টেট ম্যানেজমেন্টের ঝামেলা থেকে মুক্তি দিয়ে React চ্যাটবট ডেভেলপমেন্টের রূপরেখা বদলে দিচ্ছে। এই পরিবর্তনটি দুটি বড় সমস্যা—প্রকাশিত সিক্রেট এবং অস্থির UI—সমাধান করার পাশাপাশি ডেভেলপারদের তাদের নিজস্ব স্টেট স্ট্যাকের ওপর নিয়ন্ত্রণ বজায় রাখতে সাহায্য করে।