Import

import-chat.ts
import { NuiChat, NuiChatSession, nuiEventStream } from '@needless-ui/angular/chat';

NuiChat

Die Unterhaltung und das Eingabefeld in einem.

Selektor
nui-chat
NuiChat: Eigenschaften
NameTypStandardwertBeschreibung
sessionInputNuiChatSessionDie anzuzeigende Unterhaltung.
assistantInputstring'Assistant'Der Name des Assistenten in den Überschriften, die Screenreader ansagen.
headingLevelInputnumber3Die 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.
imagesInputbooleanfalseZeigt Bilder in Antworten. Sonst verlinkt ihr Text auf das Bild.
valueTwo-Waystring''Der Text, der gerade geschrieben wird.
placeholderInputstringDer Hinweis im leeren Feld.
suggestionsInputstring[][]Prompts, die per Klick gesendet werden, bis zur ersten Nachricht.
sendOnInput'enter' | 'mod+enter''enter'Ob Enter sendet oder Ctrl bzw. ⌘ + Enter.
disabledInputbooleanfalseVerhindert das Senden aus dem Eingabefeld.
attachInputbooleanfalseNimmt Dateien an: ausgewählt, eingefügt oder hineingezogen.
acceptInputstring''Die erlaubten Dateitypen, wie bei <input type="file">.
maxFilesInputnumber10Wie viele Dateien eine Nachricht enthalten kann.
maxSizeInputnumber20_000_000Die maximale Dateigröße in Byte.
labelsInputNuiChatLabelsInputAlle 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() => voidFokussiert das Textfeld.
scrollToEndMethode(behavior?) => voidScrollt zur neuesten Nachricht und folgt ihr.

NuiChatSession

Die Unterhaltung, ganz ohne DOM. Erstelle sie in einer Komponente mit den Optionen respond, messages und id.

NuiChatSession: Eigenschaften
NameTypStandardwertBeschreibung
respondEigenschaft(request) => NuiChatReplyDeine Funktion: schreibt die Antwort auf request.messages und stoppt, sobald request.signal abbricht.
messagesEigenschaftSignal<NuiChatMessage[]>Die angezeigte Unterhaltung.
allEigenschaftSignal<NuiChatMessage[]>Alle Nachrichten aller Versionen, zum Speichern und späteren Übergeben als messages.
busyEigenschaftSignal<boolean>Ob gerade eine Antwort unterwegs ist.
sendMethode(text, files?) => Promise<void>Sendet eine Nachricht und fordert eine Antwort an.
stopMethode() => voidStoppt 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) => voidSchaltet die Unterhaltung auf diese Version um.
rateMethode(message, 'up' | 'down' | null) => voidSpeichert die Bewertung einer Antwort durch den Nutzer.
remove, load, clearMethode(…) => voidEntfernt eine Nachricht samt allem danach, ersetzt die Unterhaltung oder beginnt von vorn.

NuiChatMessage

Eine Nachricht. Nachrichten mit demselben parent sind Versionen voneinander.

NuiChatMessage: Eigenschaften
NameTypStandardwertBeschreibung
id, parentEigenschaftstring, string | nullDer Schlüssel der Nachricht und der Nachricht, auf die sie folgt.
roleEigenschaft'user' | 'assistant'Wer sie geschrieben hat.
textEigenschaftstringMarkdown vom Assistenten, reiner Text vom Nutzer.
statusEigenschaft'pending' | 'streaming' | 'done' | 'stopped' | 'error'Wo eine Antwort steht, von wartend bis fertig.
reasoningEigenschaftstringWas das Modell vor der Antwort überlegt hat.
toolsEigenschaftNuiChatTool[]Die aufgerufenen Tools mit Status, Ein- und Ausgabe.
sourcesEigenschaft{ url, title? }[]Die genutzten Seiten.
attachmentsEigenschaftNuiChatAttachment[]Die mitgesendeten Dateien.
ratingEigenschaft'up' | 'down' | nullDie Bewertung des Nutzers.
dataEigenschaftunknownAlles 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.

Selektor
ng-template[nuiChatTool]
NuiChatToolTemplate: Eigenschaften
NameTypStandardwertBeschreibung
nuiChatToolInputstringDer 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.

Selektor
nui-chat-thread

NuiChatComposer

Das Eingabefeld für sich. Es nimmt die Inputs von nui-chat an, die das Schreiben betreffen.

Selektor
nui-chat-composer

NuiServerEvent

Was nuiEventStream für jedes Event liefert. nuiTextStream liest reinen Text und nuiJsonStream JSON-Zeilen; alle drei nehmen eine fetch-Response entgegen.

NuiServerEvent: Eigenschaften
NameTypStandardwertBeschreibung
eventEigenschaftstring'message'Der Name des Events.
dataEigenschaftstringSeine Datenzeilen, zusammengefügt.
idEigenschaftstringDie 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.