Import

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

NuiChat

Hội thoại và ô soạn tin, gộp làm một.

Selector
nui-chat
NuiChat: Thuộc tính
TênKiểuMặc địnhMô tả
sessionInputNuiChatSessionHội thoại cần hiển thị.
assistantInputstring'Assistant'Tên của trợ lý, trong các tiêu đề mà trình đọc màn hình đọc lên.
headingLevelInputnumber3Cấp heading của mỗi tin nhắn, chỉ trình đọc màn hình mới thấy. Heading trong phản hồi sâu hơn một cấp.
announceInput'reply' | 'notice' | 'off''reply'Trình đọc màn hình đọc gì khi phản hồi hoàn tất: toàn bộ, một thông báo ngắn, hoặc không gì cả.
imagesInputbooleanfalseHiển thị hình ảnh trong phản hồi. Nếu không, văn bản của ảnh sẽ là liên kết tới ảnh.
valueHai chiềustring''Văn bản đang được soạn.
placeholderInputstringVăn bản hiển thị khi ô nhập còn trống.
suggestionsInputstring[][]Các prompt gửi được bằng một cú nhấp, cho đến tin nhắn đầu tiên.
sendOnInput'enter' | 'mod+enter''enter'Gửi bằng Enter, hay bằng Ctrl hoặc ⌘ + Enter.
disabledInputbooleanfalseNgăn ô soạn tin gửi đi.
attachInputbooleanfalseNhận tệp: được chọn, dán hoặc kéo thả vào.
acceptInputstring''Các loại tệp được nhận, như với <input type="file">.
maxFilesInputnumber10Số tệp tối đa một tin nhắn có thể kèm theo.
maxSizeInputnumber20_000_000Kích thước tệp lớn nhất được nhận, tính bằng byte.
labelsInputNuiChatLabelsInputMọi văn bản mà chat hiển thị hoặc đọc lên, để dịch.
ratedOutput{ message, rating }Phát ra phản hồi mà người dùng đã đánh giá, kèm mức đánh giá, hoặc null khi rút lại.
focusPhương thức() => voidChuyển focus vào ô nhập văn bản.
scrollToEndPhương thức(behavior?) => voidCuộn tới tin nhắn mới nhất và bám theo nó.

NuiChatSession

Hội thoại, không có DOM. Tạo nó trong một component, với các tùy chọn respond, messages và id.

NuiChatSession: Thuộc tính
TênKiểuMặc địnhMô tả
respondThuộc tính(request) => NuiChatReplyHàm của bạn: viết phản hồi cho request.messages, và dừng khi request.signal bị hủy.
messagesThuộc tínhSignal<NuiChatMessage[]>Hội thoại đang hiển thị trên màn hình.
allThuộc tínhSignal<NuiChatMessage[]>Mọi tin nhắn của mọi phiên bản, để lưu lại rồi truyền lại qua messages.
busyThuộc tínhSignal<boolean>Có phản hồi nào đang đến hay không.
sendPhương thức(text, files?) => Promise<void>Gửi một tin nhắn và yêu cầu phản hồi.
stopPhương thức() => voidDừng phản hồi, giữ lại những gì đã viết.
retryPhương thức(message?) => Promise<void>Hỏi lại. Phản hồi mới là một phiên bản bên cạnh phiên bản cũ.
editPhương thức(message, text) => Promise<void>Gửi phiên bản mới của một tin nhắn của người dùng.
versionsPhương thức(message) => NuiChatMessage[]Mọi phiên bản của một tin nhắn, cũ nhất trước.
showPhương thức(message) => voidChuyển hội thoại sang phiên bản này.
ratePhương thức(message, 'up' | 'down' | null) => voidGhi lại đánh giá của người dùng về một phản hồi.
remove, load, clearPhương thức(…) => voidXóa một tin nhắn và những gì theo sau nó, thay thế hội thoại, hoặc bắt đầu lại.

NuiChatMessage

Một tin nhắn. Các tin nhắn cùng parent là phiên bản của nhau.

NuiChatMessage: Thuộc tính
TênKiểuMặc địnhMô tả
id, parentThuộc tínhstring, string | nullKhóa của tin nhắn, và khóa của tin nhắn mà nó đi sau.
roleThuộc tính'user' | 'assistant'Ai đã viết nó.
textThuộc tínhstringMarkdown từ trợ lý, văn bản thuần từ người dùng.
statusThuộc tính'pending' | 'streaming' | 'done' | 'stopped' | 'error'Phản hồi đang ở giai đoạn nào, từ chờ đến xong.
reasoningThuộc tínhstringNhững gì mô hình đã suy nghĩ trước khi trả lời.
toolsThuộc tínhNuiChatTool[]Các công cụ nó đã gọi, kèm trạng thái, input và output.
sourcesThuộc tính{ url, title? }[]Các trang nó đã dùng.
attachmentsThuộc tínhNuiChatAttachment[]Các tệp gửi kèm.
ratingThuộc tính'up' | 'down' | nullĐánh giá của người dùng.
dataThuộc tínhunknownMọi thứ khác cần lưu kèm, chẳng hạn tên mô hình.

NuiChatToolTemplate

Vẽ một lệnh gọi công cụ, chẳng hạn một thẻ thời tiết. Context chứa lệnh gọi và tin nhắn của nó.

Selector
ng-template[nuiChatTool]
NuiChatToolTemplate: Thuộc tính
TênKiểuMặc địnhMô tả
nuiChatToolInputstringTên công cụ. Nếu không có, template sẽ vẽ mọi lệnh gọi mà không template nào khác nêu tên.

NuiChatThread

Riêng phần hội thoại, cho bố cục của riêng bạn. Nhận các input của nui-chat liên quan đến hội thoại.

Selector
nui-chat-thread

NuiChatComposer

Riêng ô soạn tin. Nhận các input của nui-chat liên quan đến việc soạn tin.

Selector
nui-chat-composer

NuiServerEvent

Giá trị nuiEventStream trả ra cho mỗi sự kiện. nuiTextStream đọc văn bản thuần và nuiJsonStream đọc các dòng JSON; cả ba đều nhận một response của fetch.

NuiServerEvent: Thuộc tính
TênKiểuMặc địnhMô tả
eventThuộc tínhstring'message'Tên sự kiện.
dataThuộc tínhstringCác dòng dữ liệu, nối lại với nhau.
idThuộc tínhstringId cuối cùng mà stream đã gửi.

NuiChatError

Ném nó từ respond để hiển thị thông điệp của nó. Mọi lỗi khác chỉ hiển thị một thông điệp chung, nên không có gì nội bộ bị lộ ra.