Importación
import { NuiChat, NuiChatSession, nuiEventStream } from '@needless-ui/angular/chat';NuiChat
La conversación y el cuadro de texto, juntos.
| Nombre | Tipo | Predeterminado | Descripción |
|---|---|---|---|
sessionInput | NuiChatSession | La conversación que se muestra. | |
assistantInput | string | 'Assistant' | El nombre del asistente, en los encabezados que anuncian los lectores de pantalla. |
headingLevelInput | number | 3 | El nivel del encabezado de cada mensaje, que solo perciben los lectores de pantalla. Los encabezados de las respuestas bajan un nivel más. |
announceInput | 'reply' | 'notice' | 'off' | 'reply' | Lo que anuncian los lectores de pantalla cuando una respuesta está completa: todo, un aviso breve o nada. |
imagesInput | boolean | false | Muestra las imágenes de las respuestas. Si no, su texto enlaza a ellas. |
valueBidireccional | string | '' | El texto que se está escribiendo. |
placeholderInput | string | El texto que se muestra en el campo vacío. | |
suggestionsInput | string[] | [] | Prompts que se envían con un clic, hasta el primer mensaje. |
sendOnInput | 'enter' | 'mod+enter' | 'enter' | Si se envía con Intro, o con Ctrl o ⌘ + Intro. |
disabledInput | boolean | false | Impide enviar desde el cuadro de texto. |
attachInput | boolean | false | Acepta archivos: elegidos, pegados o arrastrados. |
acceptInput | string | '' | Los tipos de archivo que se aceptan, como en <input type="file">. |
maxFilesInput | number | 10 | Cuántos archivos puede llevar un mensaje. |
maxSizeInput | number | 20_000_000 | El tamaño máximo de archivo, en bytes. |
labelsInput | NuiChatLabelsInput | Todos los textos que el chat muestra o anuncia, para traducirlos. | |
ratedOutput | { message, rating } | Emite una respuesta que el usuario valoró, con la valoración, o null si la retira. | |
focusMétodo | () => void | Pone el foco en el campo de texto. | |
scrollToEndMétodo | (behavior?) => void | Se desplaza hasta el último mensaje y lo sigue. |
NuiChatSession
La conversación, sin nada de DOM. Créala en un componente con las opciones respond, id y messages.
| Nombre | Tipo | Predeterminado | Descripción |
|---|---|---|---|
respondPropiedad | (request) => NuiChatReply | Tu función: escribe la respuesta a request.messages y se detiene cuando se aborta request.signal. | |
messagesPropiedad | Signal<NuiChatMessage[]> | La conversación en pantalla. | |
allPropiedad | Signal<NuiChatMessage[]> | Todos los mensajes de todas las versiones, para guardarlos y volver a pasarlos como messages. | |
busyPropiedad | Signal<boolean> | Indica si hay una respuesta en camino. | |
sendMétodo | (text, files?) => Promise<void> | Envía un mensaje y pide una respuesta. | |
stopMétodo | () => void | Detiene la respuesta y conserva lo que ya escribió. | |
retryMétodo | (message?) => Promise<void> | Vuelve a preguntar. La nueva respuesta es una versión junto a la anterior. | |
editMétodo | (message, text) => Promise<void> | Envía una nueva versión de uno de los mensajes del usuario. | |
versionsMétodo | (message) => NuiChatMessage[] | Todas las versiones de un mensaje, de la más antigua a la más nueva. | |
showMétodo | (message) => void | Cambia la conversación a esta versión. | |
rateMétodo | (message, 'up' | 'down' | null) => void | Registra la valoración del usuario sobre una respuesta. | |
remove, load, clearMétodo | (…) => void | Quita un mensaje y lo que le sigue, reemplaza la conversación o empieza de cero. |
NuiChatMessage
Un mensaje. Los mensajes con el mismo parent son versiones entre sí.
| Nombre | Tipo | Predeterminado | Descripción |
|---|---|---|---|
id, parentPropiedad | string, string | null | La clave del mensaje y la del mensaje al que sigue. | |
rolePropiedad | 'user' | 'assistant' | Quién lo escribió. | |
textPropiedad | string | Markdown del asistente, texto plano del usuario. | |
statusPropiedad | 'pending' | 'streaming' | 'done' | 'stopped' | 'error' | En qué punto está una respuesta, de la espera al final. | |
reasoningPropiedad | string | Lo que pensó el modelo antes de responder. | |
toolsPropiedad | NuiChatTool[] | Las herramientas que llamó, con su estado, entrada y salida. | |
sourcesPropiedad | { url, title? }[] | Las páginas que usó. | |
attachmentsPropiedad | NuiChatAttachment[] | Los archivos enviados con él. | |
ratingPropiedad | 'up' | 'down' | null | La valoración del usuario. | |
dataPropiedad | unknown | Cualquier otra cosa que guardar con él, como el nombre del modelo. |
NuiChatToolTemplate
Dibuja una llamada a herramienta, como una tarjeta del clima. El contexto contiene la llamada y su mensaje.
| Nombre | Tipo | Predeterminado | Descripción |
|---|---|---|---|
nuiChatToolInput | string | El nombre de la herramienta. Sin él, dibuja todas las llamadas que ninguna otra plantilla nombra. |
NuiChatThread
La conversación por separado, para tu propio diseño. Acepta los inputs de nui-chat relativos a la conversación.
NuiChatComposer
El cuadro de texto por separado. Acepta los inputs de nui-chat relativos a la escritura.
NuiServerEvent
Lo que nuiEventStream produce por cada evento. nuiTextStream lee texto plano y nuiJsonStream, líneas JSON; los tres reciben una respuesta de fetch.
| Nombre | Tipo | Predeterminado | Descripción |
|---|---|---|---|
eventPropiedad | string | 'message' | El nombre del evento. |
dataPropiedad | string | Sus líneas de datos, unidas. | |
idPropiedad | string | El último id que envió el flujo. |
NuiChatError
Lánzalo desde respond para mostrar su mensaje. Cualquier otro error muestra uno genérico, para que no se filtre nada interno.