Import
import { NuiChat, NuiChatSession, nuiEventStream } from '@needless-ui/angular/chat';NuiChat
La conversazione e la casella di testo, insieme.
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
sessionInput | NuiChatSession | La conversazione da mostrare. | |
assistantInput | string | 'Assistant' | Il nome dell’assistente, nelle intestazioni lette dagli screen reader. |
headingLevelInput | number | 3 | Il livello dell’intestazione di ogni messaggio, visibile solo agli screen reader. Le intestazioni nelle risposte scendono di un livello. |
announceInput | 'reply' | 'notice' | 'off' | 'reply' | Cosa annunciano gli screen reader quando una risposta è completa: tutta, un breve avviso o niente. |
imagesInput | boolean | false | Mostra le immagini nelle risposte. Altrimenti il loro testo è un link all’immagine. |
valueBidirezionale | string | '' | Il testo che si sta scrivendo. |
placeholderInput | string | Il testo mostrato nel campo vuoto. | |
suggestionsInput | string[] | [] | Prompt da inviare con un clic, fino al primo messaggio. |
sendOnInput | 'enter' | 'mod+enter' | 'enter' | Se si invia con Invio, o con Ctrl o ⌘ + Invio. |
disabledInput | boolean | false | Impedisce l’invio dalla casella di testo. |
attachInput | boolean | false | Accetta file: scelti, incollati o trascinati. |
acceptInput | string | '' | I tipi di file accettati, come per <input type="file">. |
maxFilesInput | number | 10 | Quanti file può contenere un messaggio. |
maxSizeInput | number | 20_000_000 | La dimensione massima di un file, in byte. |
labelsInput | NuiChatLabelsInput | Ogni testo che la chat mostra o annuncia, da tradurre. | |
ratedOutput | { message, rating } | Emette una risposta valutata dall’utente, con il giudizio, o null quando lo ritira. | |
focusMetodo | () => void | Sposta il focus sul campo di testo. | |
scrollToEndMetodo | (behavior?) => void | Scorre fino all’ultimo messaggio e lo segue. |
NuiChatSession
La conversazione, senza DOM. Creala in un componente, con le opzioni respond, messages e id.
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
respondProprietà | (request) => NuiChatReply | La tua funzione: scrive la risposta a request.messages e si ferma quando request.signal viene annullato. | |
messagesProprietà | Signal<NuiChatMessage[]> | La conversazione sullo schermo. | |
allProprietà | Signal<NuiChatMessage[]> | Ogni messaggio di ogni versione, da salvare e ripassare come messages. | |
busyProprietà | Signal<boolean> | Se una risposta è in arrivo. | |
sendMetodo | (text, files?) => Promise<void> | Invia un messaggio e chiede una risposta. | |
stopMetodo | () => void | Ferma la risposta, conservando ciò che ha già scritto. | |
retryMetodo | (message?) => Promise<void> | Chiede di nuovo. La nuova risposta è una versione accanto alla vecchia. | |
editMetodo | (message, text) => Promise<void> | Invia una nuova versione di uno dei messaggi dell’utente. | |
versionsMetodo | (message) => NuiChatMessage[] | Tutte le versioni di un messaggio, dalla più vecchia. | |
showMetodo | (message) => void | Porta la conversazione su questa versione. | |
rateMetodo | (message, 'up' | 'down' | null) => void | Registra il giudizio dell’utente su una risposta. | |
remove, load, clearMetodo | (…) => void | Rimuove un messaggio e ciò che lo segue, sostituisce la conversazione o ricomincia da capo. |
NuiChatMessage
Un messaggio. I messaggi con lo stesso parent sono versioni l’uno dell’altro.
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
id, parentProprietà | string, string | null | La chiave del messaggio, e quella del messaggio a cui fa seguito. | |
roleProprietà | 'user' | 'assistant' | Chi l’ha scritto. | |
textProprietà | string | Markdown dall’assistente, testo semplice dall’utente. | |
statusProprietà | 'pending' | 'streaming' | 'done' | 'stopped' | 'error' | A che punto è una risposta, dall’attesa alla fine. | |
reasoningProprietà | string | Cosa ha pensato il modello prima di rispondere. | |
toolsProprietà | NuiChatTool[] | I tool chiamati, con stato, input e output. | |
sourcesProprietà | { url, title? }[] | Le pagine usate. | |
attachmentsProprietà | NuiChatAttachment[] | I file inviati con il messaggio. | |
ratingProprietà | 'up' | 'down' | null | Il giudizio dell’utente. | |
dataProprietà | unknown | Qualsiasi altra cosa da conservare con il messaggio, come il nome del modello. |
NuiChatToolTemplate
Disegna una chiamata a un tool, come una card per il meteo. Il contesto contiene la chiamata e il suo messaggio.
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
nuiChatToolInput | string | Il nome del tool. Senza nome, disegna ogni chiamata che nessun altro template nomina. |
NuiChatThread
La conversazione da sola, per un tuo layout. Accetta gli input di nui-chat che riguardano la conversazione.
NuiChatComposer
La casella di testo da sola. Accetta gli input di nui-chat che riguardano la scrittura.
NuiServerEvent
Ciò che nuiEventStream restituisce per ogni evento. nuiTextStream legge testo semplice e nuiJsonStream righe JSON; tutti e tre accettano una risposta di fetch.
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
eventProprietà | string | 'message' | Il nome dell’evento. |
dataProprietà | string | Le sue righe di dati, unite. | |
idProprietà | string | L’ultimo id inviato dallo stream. |
NuiChatError
Lancialo da respond per mostrarne il messaggio. Qualsiasi altro errore mostra un messaggio generico, così non trapela nulla di interno.