चैट आपके उपयोगकर्ताओं और मॉडल के बीच की हर चीज़ है। respond फ़ंक्शन के साथ NuiChatSession बनाएँ, और बाकी <nui-chat> करता है: वह जवाब को Markdown में स्ट्रीम करता है, जब तक उपयोगकर्ता ऊपर स्क्रॉल न करे, उसके साथ नीचे स्क्रॉल करता है, और जवाब आते समय भेजने के बटन को रोकने का बटन बना देता है।

respond टेक्स्ट, प्रॉमिस, async function* या Observable लौटाता है, इसलिए कोई भी API फ़िट बैठता है। टेक्स्ट के अलावा, जवाब में मॉडल की रीज़निंग, उसके टूल कॉल (आपके टेम्पलेट से बने) और उसके इस्तेमाल किए स्रोत भी हो सकते हैं। nuiEventStream वे सर्वर-सेंट इवेंट पढ़ता है, जो ज़्यादातर मॉडल API स्ट्रीम करते हैं।

कुछ भी खोता नहीं: दोबारा माँगा गया जवाब या एडिट किया गया सवाल पुराने के बगल में नया वर्शन बन जाता है, और बातचीत हर ब्रांच रखती है। स्क्रीन रीडर हर जवाब पूरा होने पर ही सुनाते हैं, शब्द-दर-शब्द नहीं।

एक असिस्टेंट

सुझाव बातचीत शुरू करते हैं। जवाब Markdown में स्ट्रीम होते हैं; उन्हें रोकें, दोबारा माँगें, रेट करें, या अपना सवाल एडिट करें। attach चुनी, पेस्ट की या ड्रॉप की गई फ़ाइलें लेता है।

रीज़निंग, टूल और स्रोत

डेल्टा जवाब में मॉडल की रीज़निंग, टूल कॉल और स्रोत जोड़ते हैं। nuiChatTool मौसम वाले टूल को कार्ड के रूप में बनाता है; बाकी टूल अपने इनपुट और आउटपुट के साथ सिमटे रहते हैं।

सर्वर से स्ट्रीमिंग

nuiEventStream OpenAI जैसी इवेंट स्ट्रीम पढ़ता है, और NuiChatError अपना संदेश दिखाता है। all() बातचीत को सभी वर्शन समेत सहेजता है।