Import
import { NuiChat, NuiChatSession, nuiEventStream } from '@needless-ui/angular/chat';NuiChat
Hội thoại và ô soạn tin, gộp làm một.
| Tên | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
sessionInput | NuiChatSession | Hội thoại cần hiển thị. | |
assistantInput | string | 'Assistant' | Tên của trợ lý, trong các tiêu đề mà trình đọc màn hình đọc lên. |
headingLevelInput | number | 3 | Cấ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ả. |
imagesInput | boolean | false | Hiể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ều | string | '' | Văn bản đang được soạn. |
placeholderInput | string | Văn bản hiển thị khi ô nhập còn trống. | |
suggestionsInput | string[] | [] | 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. |
disabledInput | boolean | false | Ngăn ô soạn tin gửi đi. |
attachInput | boolean | false | Nhận tệp: được chọn, dán hoặc kéo thả vào. |
acceptInput | string | '' | Các loại tệp được nhận, như với <input type="file">. |
maxFilesInput | number | 10 | Số tệp tối đa một tin nhắn có thể kèm theo. |
maxSizeInput | number | 20_000_000 | Kích thước tệp lớn nhất được nhận, tính bằng byte. |
labelsInput | NuiChatLabelsInput | Mọ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 | () => void | Chuyển focus vào ô nhập văn bản. | |
scrollToEndPhương thức | (behavior?) => void | Cuộ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.
| Tên | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
respondThuộc tính | (request) => NuiChatReply | Hà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ính | Signal<NuiChatMessage[]> | Hội thoại đang hiển thị trên màn hình. | |
allThuộc tính | Signal<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ính | Signal<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 | () => void | Dừ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) => void | Chuyển hội thoại sang phiên bản này. | |
ratePhương thức | (message, 'up' | 'down' | null) => void | Ghi lại đánh giá của người dùng về một phản hồi. | |
remove, load, clearPhương thức | (…) => void | Xó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.
| Tên | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
id, parentThuộc tính | string, string | null | Khó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ính | string | Markdown 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ính | string | Những gì mô hình đã suy nghĩ trước khi trả lời. | |
toolsThuộc tính | NuiChatTool[] | 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ính | NuiChatAttachment[] | 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ính | unknown | Mọ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ó.
| Tên | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
nuiChatToolInput | string | Tê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.
NuiChatComposer
Riêng ô soạn tin. Nhận các input của nui-chat liên quan đến việc soạn tin.
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.
| Tên | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
eventThuộc tính | string | 'message' | Tên sự kiện. |
dataThuộc tính | string | Các dòng dữ liệu, nối lại với nhau. | |
idThuộc tính | string | Id 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.