چیٹ آپ کے صارفین اور ماڈل کے درمیان سب کچھ ہے۔ respond فنکشن کے ساتھ ایک NuiChatSession بنائیں، اور باقی کام <nui-chat> کرتا ہے: یہ جواب کو Markdown کی صورت میں اسٹریم کرتا ہے، جب تک پڑھنے والا اوپر اسکرول نہ کرے صفحے پر نیچے اس کے ساتھ چلتا ہے، اور جواب آنے تک بھیجنے کے بٹن کو روکنے کے بٹن میں بدل دیتا ہے۔

respond متن، promise، async function* یا Observable واپس کرتا ہے، اس لیے یہ ہر API کے ساتھ کام کرتا ہے۔ متن کے علاوہ جواب میں ماڈل کی ریزننگ، اس کی ٹول کالز (جنہیں آپ کے ٹیمپلیٹس بناتے ہیں) اور اس کے استعمال کردہ ماخذ بھی ہو سکتے ہیں۔ nuiEventStream وہ server-sent events پڑھتا ہے جو زیادہ تر ماڈل APIs اسٹریم کرتی ہیں۔

کچھ ضائع نہیں ہوتا: دوبارہ بنایا گیا جواب یا ترمیم شدہ سوال پرانے کے ساتھ ایک نیا ورژن بن جاتا ہے، اور گفتگو ہر شاخ محفوظ رکھتی ہے۔ اسکرین ریڈرز ہر جواب مکمل ہونے پر پڑھ کر سناتے ہیں، لفظ بہ لفظ نہیں۔

ایک اسسٹنٹ

تجاویز گفتگو شروع کرتی ہیں۔ جوابات Markdown کی صورت میں اسٹریم ہوتے ہیں؛ انہیں روکیں، دوبارہ بنوائیں، ریٹ کریں، یا اپنے سوال میں ترمیم کریں۔ attach چنی، پیسٹ کی یا ڈراپ کی گئی فائلیں لیتا ہے۔

ریزننگ، ٹولز اور ماخذ

ڈیلٹاز جواب میں ماڈل کی ریزننگ، ٹول کالز اور ماخذ شامل کرتے ہیں۔ nuiChatTool موسم والے ٹول کو کارڈ کی صورت میں بناتا ہے؛ باقی ٹولز اپنے ان پٹ اور آؤٹ پٹ سمیت سمٹے رہتے ہیں۔

سرور سے اسٹریمنگ

nuiEventStream ایک OpenAI طرز کی ایونٹ اسٹریم پڑھتا ہے، اور NuiChatError اپنا پیغام دکھاتا ہے۔ all() گفتگو کو تمام ورژنز سمیت محفوظ کرتا ہے۔