Import
import { NuiChat, NuiChatSession, nuiEventStream } from '@needless-ui/angular/chat';NuiChat
Die Unterhaltung und das Eingabefeld in einem.
| Name | Typ | Standardwert | Beschreibung |
|---|---|---|---|
sessionInput | NuiChatSession | Die anzuzeigende Unterhaltung. | |
assistantInput | string | 'Assistant' | Der Name des Assistenten in den Überschriften, die Screenreader ansagen. |
headingLevelInput | number | 3 | Die Ebene der Überschrift jeder Nachricht, die nur Screenreader wahrnehmen. Überschriften in Antworten liegen eine Ebene tiefer. |
announceInput | 'reply' | 'notice' | 'off' | 'reply' | Was Screenreader ansagen, wenn eine Antwort vollständig ist: alles, einen kurzen Hinweis oder nichts. |
imagesInput | boolean | false | Zeigt Bilder in Antworten. Sonst verlinkt ihr Text auf das Bild. |
valueTwo-Way | string | '' | Der Text, der gerade geschrieben wird. |
placeholderInput | string | Der Hinweis im leeren Feld. | |
suggestionsInput | string[] | [] | Prompts, die per Klick gesendet werden, bis zur ersten Nachricht. |
sendOnInput | 'enter' | 'mod+enter' | 'enter' | Ob Enter sendet oder Ctrl bzw. ⌘ + Enter. |
disabledInput | boolean | false | Verhindert das Senden aus dem Eingabefeld. |
attachInput | boolean | false | Nimmt Dateien an: ausgewählt, eingefügt oder hineingezogen. |
acceptInput | string | '' | Die erlaubten Dateitypen, wie bei <input type="file">. |
maxFilesInput | number | 10 | Wie viele Dateien eine Nachricht enthalten kann. |
maxSizeInput | number | 20_000_000 | Die maximale Dateigröße in Byte. |
labelsInput | NuiChatLabelsInput | Alle Texte, die der Chat anzeigt oder ansagt, zum Übersetzen. | |
ratedOutput | { message, rating } | Emittiert eine vom Nutzer bewertete Antwort samt Bewertung oder null, wenn er sie zurücknimmt. | |
focusMethode | () => void | Fokussiert das Textfeld. | |
scrollToEndMethode | (behavior?) => void | Scrollt zur neuesten Nachricht und folgt ihr. |
NuiChatSession
Die Unterhaltung, ganz ohne DOM. Erstelle sie in einer Komponente mit den Optionen respond, messages und id.
| Name | Typ | Standardwert | Beschreibung |
|---|---|---|---|
respondEigenschaft | (request) => NuiChatReply | Deine Funktion: schreibt die Antwort auf request.messages und stoppt, sobald request.signal abbricht. | |
messagesEigenschaft | Signal<NuiChatMessage[]> | Die angezeigte Unterhaltung. | |
allEigenschaft | Signal<NuiChatMessage[]> | Alle Nachrichten aller Versionen, zum Speichern und späteren Übergeben als messages. | |
busyEigenschaft | Signal<boolean> | Ob gerade eine Antwort unterwegs ist. | |
sendMethode | (text, files?) => Promise<void> | Sendet eine Nachricht und fordert eine Antwort an. | |
stopMethode | () => void | Stoppt die Antwort und behält, was sie schon geschrieben hat. | |
retryMethode | (message?) => Promise<void> | Fragt erneut. Die neue Antwort ist eine Version neben der alten. | |
editMethode | (message, text) => Promise<void> | Sendet eine neue Version einer Nachricht des Nutzers. | |
versionsMethode | (message) => NuiChatMessage[] | Alle Versionen einer Nachricht, die älteste zuerst. | |
showMethode | (message) => void | Schaltet die Unterhaltung auf diese Version um. | |
rateMethode | (message, 'up' | 'down' | null) => void | Speichert die Bewertung einer Antwort durch den Nutzer. | |
remove, load, clearMethode | (…) => void | Entfernt eine Nachricht samt allem danach, ersetzt die Unterhaltung oder beginnt von vorn. |
NuiChatMessage
Eine Nachricht. Nachrichten mit demselben parent sind Versionen voneinander.
| Name | Typ | Standardwert | Beschreibung |
|---|---|---|---|
id, parentEigenschaft | string, string | null | Der Schlüssel der Nachricht und der Nachricht, auf die sie folgt. | |
roleEigenschaft | 'user' | 'assistant' | Wer sie geschrieben hat. | |
textEigenschaft | string | Markdown vom Assistenten, reiner Text vom Nutzer. | |
statusEigenschaft | 'pending' | 'streaming' | 'done' | 'stopped' | 'error' | Wo eine Antwort steht, von wartend bis fertig. | |
reasoningEigenschaft | string | Was das Modell vor der Antwort überlegt hat. | |
toolsEigenschaft | NuiChatTool[] | Die aufgerufenen Tools mit Status, Ein- und Ausgabe. | |
sourcesEigenschaft | { url, title? }[] | Die genutzten Seiten. | |
attachmentsEigenschaft | NuiChatAttachment[] | Die mitgesendeten Dateien. | |
ratingEigenschaft | 'up' | 'down' | null | Die Bewertung des Nutzers. | |
dataEigenschaft | unknown | Alles Weitere, das dazugehört, etwa der Name des Modells. |
NuiChatToolTemplate
Zeichnet einen Tool-Aufruf, etwa eine Karte fürs Wetter. Der Kontext enthält den Aufruf und seine Nachricht.
| Name | Typ | Standardwert | Beschreibung |
|---|---|---|---|
nuiChatToolInput | string | Der Name des Tools. Ohne Namen zeichnet es jeden Aufruf, den kein anderes Template benennt. |
NuiChatThread
Die Unterhaltung für sich, für dein eigenes Layout. Sie nimmt die Inputs von nui-chat an, die die Unterhaltung betreffen.
NuiChatComposer
Das Eingabefeld für sich. Es nimmt die Inputs von nui-chat an, die das Schreiben betreffen.
NuiServerEvent
Was nuiEventStream für jedes Event liefert. nuiTextStream liest reinen Text und nuiJsonStream JSON-Zeilen; alle drei nehmen eine fetch-Response entgegen.
| Name | Typ | Standardwert | Beschreibung |
|---|---|---|---|
eventEigenschaft | string | 'message' | Der Name des Events. |
dataEigenschaft | string | Seine Datenzeilen, zusammengefügt. | |
idEigenschaft | string | Die letzte ID, die der Stream gesendet hat. |
NuiChatError
Wirf ihn in respond, um seine Meldung anzuzeigen. Jeder andere Fehler zeigt eine allgemeine Meldung, damit nichts Internes nach außen dringt.