Vercel AI SDK v5, React டெவலப்பர்களை பெரிய மொழி மாதிரிகளின் (LLM) அழைப்புகளை (calls) சர்வருக்கு மாற்ற அனுமதிக்கிறது; இதன் மூலம் API சாவிகளை (keys) மறைத்து வைக்கவும், உலாவியில் (browser) உரையைத் துண்டுகளாகத் (text chunks) தடையின்றி அனுப்பும்போது ஏற்படும் தாமதத்தைக் (latency) குறைக்கவும் முடியும். புதிய transport-அடிப்படையிலான கட்டமைப்பு (architecture), நிலை கையாளுதலைத் (state handling) தனிமைப்படுத்துகிறது, இதனால் UI குறியீடு லேசாக (lightweight) இருக்கும் அதே வேளையில், SDK ஆனது streaming, வரலாறு மற்றும் கருவி அழைப்புகளை (tool invocations) நிர்வகிக்கிறது.
பழைய அணுகுமுறை ஏன் மாதிரியைப் பாதித்தது
v5-க்கு முன் உருவாக்கப்பட்ட பெரும்பாலான React சாட்பாட்கள் (chatbots), மாதிரியின் வெளியீட்டை (output) நேரடியாக கிளையண்டிற்கு (client) அனுப்பின. இது டெவலப்பர்களை LLM-இன் ரகசியச் சாவியை (secret key) முன்முனை குறியீட்டில் (front-end code) இணைக்கக் கட்டாயப்படுத்தியது, இதனால் உலாவியின் நெட்வொர்க் இன்ஸ்பெக்டரில் (network inspector) அது வெளிப்படையாகத் தெரிந்தது. குழுக்கள் ஒவ்வொரு டோக்கனையும் (token) சேமிக்க useState-ஐப் பயன்படுத்தின, இது ஒவ்வொரு சிறிய துண்டிற்கும் மறு-ரெண்டரிங் (re-render) ஏற்படுவதற்குக் காரணமாக இருந்தது. இதனால் UI விட்டு விட்டுத் தெரிந்தது (flickered) மற்றும் குறியீடு சிக்கலான கால்பேக்குகளின் (callbacks) தொகுப்பாக மாறியது.
இதன் விளைவு: யார் வேண்டுமானாலும் சாவியைத் திருட முடியும், மேலும் டெவலப்பர்கள் குறைந்த அளவிலான நிலை கட்டமைப்பை (low-level state plumbing) கையாளுவதில் போராடும்போது உரையாடல் தாமதமானது.
v5 உள்ளே என்ன மாற்றங்களைக் கொண்டுவருகிறது
Transport-அடிப்படையிலான கட்டமைப்பு (Transport-Based Architecture) – SDK இப்போது LLM உடனான இணைப்பை ஒரு மாடுலர் டிரான்ஸ்போர்ட் லேயராக (modular transport layer) treats செய்கிறது. அழைப்புகள் சர்வரில் உள்ள ஒரு API ரூட்டிலிருந்து (API route) தொடங்குகின்றன, எனவே ரகசியச் சாவி பேக்எண்டிலிருந்து (backend) வெளியேறுவதில்லை. இந்த transport, streaming நெறிமுறையை (protocol) சுருக்கி (abstracts), முன்முனைக்கு (front end) தெளிவான, வகைப்படுத்தப்பட்ட செய்தித் தொடரை (typed stream of messages) வழங்குகிறது.
வகைப்படுத்தப்பட்ட கருவி அழைப்புகள் (Typed Tool Invocations) – ஒரு மாதிரி ஒரு கருவியைத் (tool) அழைக்கத் தீர்மானிக்கும் போது (உதாரணமாக, வானிலை ஆய்வு அல்லது காலண்டர் தகவல் பெறுதல்), SDK அந்த கோரிக்கையை ஒரு வகைப்படுத்தப்பட்ட பேலோடாக (typed payload) மாற்றுகிறது. முன்முனை நேரடியாக அந்த பேலோடின் அமைப்பைப் படிப்பதால், தற்காலிகமாகத் தரவை ஆய்வு செய்யும் (ad-hoc parsing) தேவை நீங்கி, ரன்டைம் பிழைகள் (runtime errors) குறைகின்றன.
தனிமைப்படுத்தப்பட்ட நிலை மேலாண்மை (Decoupled State Management) –
useChatஹூக் (hook) இனி ஒரு ஒற்றை ஸ்டேட் ஸ்டோரை (state store) கட்டாயப்படுத்துவதில்லை. இது Zustand, Redux அல்லது சாதாரண React context போன்ற எந்தவொரு ஸ்டேட் லைப்ரரியும் (state library) பயன்படுத்தக்கூடிய கால்பேக்குகள் மற்றும் பயன்பாட்டுத் கருவிகளை (utilities) வழங்குகிறது. SDK கடினமான வேலைகளைச் செய்யும் அதே வேளையில், UI கூறுகள் (components) ரெண்டரிங் செய்வதில் மட்டும் கவனம் செலுத்துகின்றன.
ஒரு நடைமுறைப் பணிப்பாய்வு (Practical workflow)
- சர்வர் பக்க LLM லாஜிக் (Server-side LLM logic) – ஒரு API ரூட்டில்,
streamText(அல்லது அதற்கு இணையான streaming helper)-ஐ அழைக்கவும். SDK மாதிரியின் வெளியீட்டைப் பாதுகாப்பான இணைப்பு மூலம் கிளையண்டிற்குத் தடையின்றி அனுப்புகிறது, இதனால் API சாவி உலாவியில் இருந்து விலகி இருக்கிறது. - கிளையண்ட் பக்க UI (Client-side UI) – ஒரு React கூறில் (component)
useChat-ஐ இறக்குமதி (import) செய்யவும். இந்த ஹூக் தற்போதைய செய்திப் பட்டியல், புதிய பயனர் உள்ளீட்டை அனுப்பும் செயல்பாடு மற்றும் நிலை குறிகாட்டிகளை (status flags) வழங்குகிறது. நிலை (state) வேறு இடத்தில் இருப்பதால், நீங்கள் ஏற்கனவே பயன்படுத்தும் எந்தவொரு ஸ்டேட் மேனேஜரையும் (state manager) இதில் இணைத்துக் கொள்ளலாம். - கருவி கையாளுதல் (Tool handling) – மாதிரி ஒரு கருவி அழைப்பை வெளியிடும் போது, SDK ஒரு கட்டமைக்கப்பட்ட பொருளை (structured object) கிளையண்டிற்கு வழங்குகிறது. மேனுவல் சிங்க் குறியீட்டை (manual sync code) எழுதாமலேயே ஒரு வானிலை விட்ஜெட் (weather widget), காலண்டர் பிக்கர் அல்லது ஏதேனும் தனிப்பயன் UI கூறுகளை உருவாக்கலாம்.
இதன் முடிவு ஒரு தெளிவான பிரிப்பு: சர்வர் அனைத்து LLM தொடர்புகளையும் கையாளுகிறது, கிளையண்ட் விளக்கக்காட்சியை (presentation) மட்டுமே கையாளுகிறது. இனி raw-stream parsing தேவையில்லை, தவறுதலாகச் சாவி கசிவுகள் ஏற்படாது, மேலும் ஒவ்வொரு டோக்கனுக்கான மறு-ரெண்டரிங் காரணமாக ஏற்படும் UIத் தடுமாற்றமும் (jitter) இருக்காது.
யார் பயனடைவார்கள், யார் தயங்கக்கூடும்
அடுத்து எதைக் கவனிக்க வேண்டும்
சுருக்கம்
Vercel AI SDK v5, LLM அழைப்புகளை சர்வருக்கு மாற்றுவதன் மூலமும், வகைப்படுத்தப்பட்ட கருவித் தரவை (typed tool data) வழங்குவதன் மூலமும், மற்றும் குறைந்த அளவிலான நிலை மேலாண்மைப் பணிகளிலிருந்து முன்முனையை விடுவிப்பதன் மூலமும் React சாட்பாட் மேம்பாட்டை மறுவடிவமைப்பு செய்கிறது. இந்த மாற்றம், வெளிப்படையான ரகசியங்கள் மற்றும் தடுமாறும் UI ஆகிய இரண்டு மிகப்பெரிய சிக்கல்களைத் தீர்ப்பதுடன், டெவலப்பர்கள் தங்கள் சொந்த ஸ்டேட் ஸ்டேக் (state stack)-ன் கட்டுப்பாட்டைத் தக்கவைத்துக் கொள்ளவும் அனுமதிக்கிறது.
