চ্যাট হলো আপনার ব্যবহারকারী ও মডেলের মাঝের সবকিছু। একটি respond ফাংশন দিয়ে NuiChatSession তৈরি করুন, বাকিটা করে <nui-chat>: এটি উত্তর Markdown হিসেবে স্ট্রিম করে, ব্যবহারকারী ওপরে স্ক্রল না করা পর্যন্ত তার সঙ্গে নিচে নামে, আর উত্তর আসার সময় পাঠানোর বাটনকে থামানোর বাটন বানিয়ে দেয়।
respond টেক্সট, প্রমিস, async function* বা Observable ফেরত দেয়, তাই যেকোনো API মানিয়ে যায়। টেক্সট ছাড়াও উত্তরে থাকতে পারে মডেলের রিজনিং, তার টুল কল (আপনার টেমপ্লেটে আঁকা) আর তার ব্যবহৃত উৎস। বেশিরভাগ মডেল API যে সার্ভার-সেন্ট ইভেন্ট স্ট্রিম করে, nuiEventStream তা পড়ে।
কিছুই হারায় না: আবার চাওয়া উত্তর বা এডিট করা প্রশ্ন পুরোনোটির পাশে নতুন ভার্সন হয়, আর কথোপকথন প্রতিটি শাখা রেখে দেয়। স্ক্রিন রিডার প্রতিটি উত্তর শোনায় সম্পূর্ণ হওয়ার পর, শব্দে শব্দে নয়।
একটি অ্যাসিস্ট্যান্ট
সাজেশন দিয়ে কথোপকথন শুরু হয়। উত্তর Markdown হিসেবে স্ট্রিম হয়ে আসে; সেগুলো থামান, আবার চান, রেট করুন, বা আপনার প্রশ্ন এডিট করুন। attach বেছে নেওয়া, পেস্ট করা বা ড্রপ করা ফাইল নেয়।
রিজনিং, টুল ও উৎস
ডেল্টা উত্তরে মডেলের রিজনিং, টুল কল ও উৎস যোগ করে। nuiChatTool আবহাওয়ার টুলকে একটি কার্ড হিসেবে আঁকে; অন্য টুলগুলো তাদের ইনপুট ও আউটপুটসহ গুটিয়ে থাকে।
সার্ভার থেকে স্ট্রিমিং
nuiEventStream OpenAI-ধাঁচের ইভেন্ট স্ট্রিম পড়ে, আর NuiChatError তার বার্তা দেখায়। all() সব ভার্সনসহ পুরো কথোপকথন সংরক্ষণ করে।