Ang chat ang lahat ng nasa pagitan ng mga user mo at ng isang model. Gumawa ng NuiChatSession na may respond function, at <nui-chat> na ang bahala sa iba: ini-stream nito ang sagot bilang Markdown, sinusundan ito pababa ng page hanggang mag-scroll pataas ang user, at ginagawang stop button ang send button habang dumarating ang sagot.

Nagbabalik ang respond ng text, promise, async function* o Observable, kaya babagay ang kahit anong API. Bukod sa text, puwedeng dala ng sagot ang reasoning ng model, ang mga tool call nito (na iginuguhit ng sarili mong mga template), at ang mga source na ginamit nito. Binabasa ng nuiEventStream ang server-sent events na ini-stream ng karamihan ng mga model API.

Walang nawawala: nagiging bagong version sa tabi ng luma ang sagot na ni-retry o tanong na in-edit, at iniingatan ng usapan ang bawat branch. Naririnig ng mga screen reader ang bawat sagot kapag kumpleto na ito, hindi isa-isang salita.

Isang assistant

Sinisimulan ng mga mungkahi ang usapan. Dumarating bilang Markdown ang mga naka-stream na sagot; ihinto, i-retry o i-rate ang mga ito, o i-edit ang tanong mo. Tumatanggap ang attach ng mga file na pinili, na-paste o na-drop.

Reasoning, mga tool at mga source

Idinadagdag ng mga delta sa sagot ang reasoning ng model, mga tool call at mga source. Iginuguhit ng nuiChatTool ang weather tool bilang card; nakatiklop ang ibang tool kasama ang input at output nila.

Pag-stream mula sa server

Binabasa ng nuiEventStream ang isang OpenAI-style na event stream, at ipinapakita ng NuiChatError ang mensahe nito. Sine-save ng all() ang usapan, kasama ang lahat ng version.