Import
import { NuiChat, NuiChatSession, nuiEventStream } from '@needless-ui/angular/chat';NuiChat
Ang usapan at ang box na susulatan, magkasama.
| Pangalan | Uri | Default | Paglalarawan |
|---|---|---|---|
sessionInput | NuiChatSession | Ang usapang ipapakita. | |
assistantInput | string | 'Assistant' | Ang pangalan ng assistant, sa mga heading na naririnig ng mga screen reader. |
headingLevelInput | number | 3 | Ang level ng heading ng bawat mensahe, na mga screen reader lang ang nagpapakita. Isang level na mas malalim ang mga heading sa mga sagot. |
announceInput | 'reply' | 'notice' | 'off' | 'reply' | Ang naririnig ng mga screen reader kapag kumpleto na ang sagot: lahat ng ito, maikling abiso, o wala. |
imagesInput | boolean | false | Ipinapakita ang mga image sa mga sagot. Kung hindi, nagiging link papunta sa mga ito ang text nila. |
valueTwo-way | string | '' | Ang text na sinusulat. |
placeholderInput | string | Text na ipinapakita habang walang laman ang field. | |
suggestionsInput | string[] | [] | Mga prompt na maipapadala sa isang click, hanggang sa unang mensahe. |
sendOnInput | 'enter' | 'mod+enter' | 'enter' | Kung Enter ang nagpapadala, o Ctrl o ⌘ + Enter. |
disabledInput | boolean | false | Pinipigilan ang composer na magpadala. |
attachInput | boolean | false | Tumatanggap ng mga file: pinili, na-paste o na-drop. |
acceptInput | string | '' | Ang mga uri ng file na tatanggapin, gaya sa <input type="file">. |
maxFilesInput | number | 10 | Ilang file ang puwedeng dalhin ng isang mensahe. |
maxSizeInput | number | 20_000_000 | Ang pinakamalaking file na tatanggapin, sa byte. |
labelsInput | NuiChatLabelsInput | Bawat text na ipinapakita o ina-announce ng chat, para maisalin. | |
ratedOutput | { message, rating } | Inilalabas ang sagot na ni-rate ng user, kasama ang rating, o null kapag binawi ito. | |
focusMethod | () => void | Inililipat ang focus sa text field. | |
scrollToEndMethod | (behavior?) => void | Nag-i-scroll sa pinakabagong mensahe, at sinusundan ito. |
NuiChatSession
Ang usapan, nang walang anumang DOM. Gawin ito sa isang component, gamit ang mga opsyong respond, messages at id.
| Pangalan | Uri | Default | Paglalarawan |
|---|---|---|---|
respondProperty | (request) => NuiChatReply | Sa iyo ito: isinusulat ang sagot sa request.messages, at humihinto kapag nag-abort ang request.signal. | |
messagesProperty | Signal<NuiChatMessage[]> | Ang usapang nasa screen. | |
allProperty | Signal<NuiChatMessage[]> | Bawat mensahe ng bawat version, para i-save at ibalik bilang messages. | |
busyProperty | Signal<boolean> | Kung may sagot na paparating. | |
sendMethod | (text, files?) => Promise<void> | Nagpapadala ng mensahe at humihingi ng sagot. | |
stopMethod | () => void | Inihihinto ang sagot, at itinatago ang naisulat na nito. | |
retryMethod | (message?) => Promise<void> | Nagtatanong ulit. Version sa tabi ng luma ang bagong sagot. | |
editMethod | (message, text) => Promise<void> | Nagpapadala ng bagong version ng isa sa mga mensahe ng user. | |
versionsMethod | (message) => NuiChatMessage[] | Bawat version ng isang mensahe, pinakaluma muna. | |
showMethod | (message) => void | Inililipat ang usapan sa version na ito. | |
rateMethod | (message, 'up' | 'down' | null) => void | Itinatala ang rating ng user sa isang sagot. | |
remove, load, clearMethod | (…) => void | Inaalis ang isang mensahe at ang mga kasunod nito, pinapalitan ang usapan, o nagsisimula ulit. |
NuiChatMessage
Isang mensahe. Mga version ng isa’t isa ang mga mensaheng may parehong parent.
| Pangalan | Uri | Default | Paglalarawan |
|---|---|---|---|
id, parentProperty | string, string | null | Ang key ng mensahe, at ng mensaheng sinusundan nito. | |
roleProperty | 'user' | 'assistant' | Kung sino ang sumulat nito. | |
textProperty | string | Markdown mula sa assistant, plain text mula sa user. | |
statusProperty | 'pending' | 'streaming' | 'done' | 'stopped' | 'error' | Kung nasaan na ang sagot, mula paghihintay hanggang tapos. | |
reasoningProperty | string | Ang inisip ng model bago ito sumagot. | |
toolsProperty | NuiChatTool[] | Ang mga tool na tinawag nito, kasama ang state, input at output nila. | |
sourcesProperty | { url, title? }[] | Ang mga page na ginamit nito. | |
attachmentsProperty | NuiChatAttachment[] | Ang mga file na ipinadala kasama nito. | |
ratingProperty | 'up' | 'down' | null | Ang rating ng user. | |
dataProperty | unknown | Kahit ano pang itatago kasama nito, gaya ng pangalan ng model. |
NuiChatToolTemplate
Iginuguhit ang isang tool call, gaya ng card para sa weather. Nasa context ang call at ang mensahe nito.
| Pangalan | Uri | Default | Paglalarawan |
|---|---|---|---|
nuiChatToolInput | string | Ang pangalan ng tool. Kapag wala, iginuguhit nito ang bawat call na hindi pinangalanan ng ibang template. |
NuiChatThread
Ang usapan lang, para sa sarili mong layout. Tinatanggap nito ang mga input ng nui-chat na tungkol sa usapan.
NuiChatComposer
Ang box na susulatan lang. Tinatanggap nito ang mga input ng nui-chat na tungkol sa pagsusulat.
NuiServerEvent
Ang ibinibigay ng nuiEventStream para sa bawat event. Binabasa ng nuiTextStream ang plain text at ng nuiJsonStream ang mga JSON line; tumatanggap ang tatlo ng fetch response.
| Pangalan | Uri | Default | Paglalarawan |
|---|---|---|---|
eventProperty | string | 'message' | Ang pangalan ng event. |
dataProperty | string | Ang mga data line nito, pinagdugtong. | |
idProperty | string | Ang huling id na ipinadala ng stream. |
NuiChatError
I-throw ito mula sa respond para ipakita ang mensahe nito. Pangkalahatang mensahe ang ipinapakita ng ibang error, kaya walang internal na detalyeng lumalabas.