Importação
import { NuiChat, NuiChatSession, nuiEventStream } from '@needless-ui/angular/chat';NuiChat
A conversa e a caixa de texto, juntas.
| Nome | Tipo | Padrão | Descrição |
|---|---|---|---|
sessionInput | NuiChatSession | A conversa a ser mostrada. | |
assistantInput | string | 'Assistant' | O nome do assistente, nos títulos que os leitores de tela anunciam. |
headingLevelInput | number | 3 | O nível do título de cada mensagem, que só os leitores de tela percebem. Os títulos nas respostas ficam um nível abaixo. |
announceInput | 'reply' | 'notice' | 'off' | 'reply' | O que os leitores de tela anunciam quando uma resposta fica completa: tudo, um aviso curto ou nada. |
imagesInput | boolean | false | Mostra as imagens nas respostas. Senão, o texto delas vira um link para a imagem. |
valueBidirecional | string | '' | O texto sendo escrito. |
placeholderInput | string | O texto mostrado no campo vazio. | |
suggestionsInput | string[] | [] | Prompts para enviar com um clique, até a primeira mensagem. |
sendOnInput | 'enter' | 'mod+enter' | 'enter' | Se o Enter envia, ou Ctrl ou ⌘ + Enter. |
disabledInput | boolean | false | Impede o envio pela caixa de texto. |
attachInput | boolean | false | Aceita arquivos: escolhidos, colados ou arrastados. |
acceptInput | string | '' | Os tipos de arquivo aceitos, como em <input type="file">. |
maxFilesInput | number | 10 | Quantos arquivos uma mensagem pode levar. |
maxSizeInput | number | 20_000_000 | O tamanho máximo de arquivo, em bytes. |
labelsInput | NuiChatLabelsInput | Todo texto que o chat mostra ou anuncia, para traduzir. | |
ratedOutput | { message, rating } | Emite uma resposta que o usuário avaliou, com a avaliação, ou null quando ela é desfeita. | |
focusMétodo | () => void | Move o foco para o campo de texto. | |
scrollToEndMétodo | (behavior?) => void | Rola até a última mensagem e a acompanha. |
NuiChatSession
A conversa, sem nenhum DOM. Crie-a em um componente, com as opções respond, messages e id.
| Nome | Tipo | Padrão | Descrição |
|---|---|---|---|
respondPropriedade | (request) => NuiChatReply | A sua função: escreve a resposta para request.messages e se interrompe quando request.signal é abortado. | |
messagesPropriedade | Signal<NuiChatMessage[]> | A conversa na tela. | |
allPropriedade | Signal<NuiChatMessage[]> | Todas as mensagens de todas as versões, para salvar e passar de volta como messages. | |
busyPropriedade | Signal<boolean> | Indica se há uma resposta a caminho. | |
sendMétodo | (text, files?) => Promise<void> | Envia uma mensagem e pede uma resposta. | |
stopMétodo | () => void | Interrompe a resposta, mantendo o que ela já escreveu. | |
retryMétodo | (message?) => Promise<void> | Pergunta de novo. A nova resposta é uma versão ao lado da antiga. | |
editMétodo | (message, text) => Promise<void> | Envia uma nova versão de uma das mensagens do usuário. | |
versionsMétodo | (message) => NuiChatMessage[] | Todas as versões de uma mensagem, da mais antiga para a mais nova. | |
showMétodo | (message) => void | Muda a conversa para esta versão. | |
rateMétodo | (message, 'up' | 'down' | null) => void | Registra a avaliação do usuário sobre uma resposta. | |
remove, load, clearMétodo | (…) => void | Remove uma mensagem e o que vem depois, substitui a conversa ou recomeça do zero. |
NuiChatMessage
Uma mensagem. Mensagens com o mesmo parent são versões umas das outras.
| Nome | Tipo | Padrão | Descrição |
|---|---|---|---|
id, parentPropriedade | string, string | null | A chave da mensagem, e a da mensagem que ela segue. | |
rolePropriedade | 'user' | 'assistant' | Quem a escreveu. | |
textPropriedade | string | Markdown do assistente, texto simples do usuário. | |
statusPropriedade | 'pending' | 'streaming' | 'done' | 'stopped' | 'error' | Em que ponto está uma resposta, da espera ao fim. | |
reasoningPropriedade | string | O que o modelo pensou antes de responder. | |
toolsPropriedade | NuiChatTool[] | As ferramentas que ele chamou, com estado, entrada e saída. | |
sourcesPropriedade | { url, title? }[] | As páginas que ele usou. | |
attachmentsPropriedade | NuiChatAttachment[] | Os arquivos enviados com ela. | |
ratingPropriedade | 'up' | 'down' | null | A avaliação do usuário. | |
dataPropriedade | unknown | Qualquer outra coisa para guardar com ela, como o nome do modelo. |
NuiChatToolTemplate
Desenha uma chamada de ferramenta, como um card de clima. O contexto contém a chamada e a mensagem dela.
| Nome | Tipo | Padrão | Descrição |
|---|---|---|---|
nuiChatToolInput | string | O nome da ferramenta. Sem nome, desenha toda chamada que nenhum outro template nomeia. |
NuiChatThread
A conversa sozinha, para um layout seu. Ela recebe os inputs de nui-chat que tratam da conversa.
NuiChatComposer
A caixa de texto sozinha. Ela recebe os inputs de nui-chat que tratam da escrita.
NuiServerEvent
O que nuiEventStream produz para cada evento. nuiTextStream lê texto simples e nuiJsonStream, linhas JSON; os três recebem uma resposta de fetch.
| Nome | Tipo | Padrão | Descrição |
|---|---|---|---|
eventPropriedade | string | 'message' | O nome do evento. |
dataPropriedade | string | As linhas de dados dele, unidas. | |
idPropriedade | string | O último id que o stream enviou. |
NuiChatError
Lance-o em respond para mostrar a mensagem dele. Qualquer outro erro mostra uma mensagem genérica, para que nada interno vaze.