Import
import { NuiChat, NuiChatSession, nuiEventStream } from '@needless-ui/angular/chat';NuiChat
บทสนทนาและช่องพิมพ์ข้อความรวมไว้ในที่เดียว
| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
sessionInput | NuiChatSession | บทสนทนาที่จะแสดง | |
assistantInput | string | 'Assistant' | ชื่อของผู้ช่วย ใช้ในหัวข้อที่โปรแกรมอ่านหน้าจออ่าน |
headingLevelInput | number | 3 | ระดับหัวข้อของแต่ละข้อความ ซึ่งมีเฉพาะสำหรับโปรแกรมอ่านหน้าจอ หัวข้อในคำตอบจะลึกลงไปอีกหนึ่งระดับ |
announceInput | 'reply' | 'notice' | 'off' | 'reply' | สิ่งที่โปรแกรมอ่านหน้าจออ่านเมื่อคำตอบเสร็จ: ทั้งหมด การแจ้งสั้น ๆ หรือไม่อ่านเลย |
imagesInput | boolean | false | แสดงรูปภาพในคำตอบ หากไม่เปิด ข้อความของรูปจะเป็นลิงก์ไปยังรูปนั้น |
valueสองทาง | string | '' | ข้อความที่กำลังเขียน |
placeholderInput | string | คำใบ้ในช่องที่ยังว่าง | |
suggestionsInput | string[] | [] | พรอมต์ที่ส่งได้ในคลิกเดียว แสดงจนกว่าจะมีข้อความแรก |
sendOnInput | 'enter' | 'mod+enter' | 'enter' | ส่งด้วย Enter หรือด้วย Ctrl หรือ ⌘ + Enter |
disabledInput | boolean | false | ไม่ให้ช่องพิมพ์ส่งข้อความ |
attachInput | boolean | false | รับไฟล์ที่เลือก วาง หรือลากมาวาง |
acceptInput | string | '' | ชนิดของไฟล์ที่รับ แบบเดียวกับ <input type="file"> |
maxFilesInput | number | 10 | จำนวนไฟล์ที่แนบได้ในหนึ่งข้อความ |
maxSizeInput | number | 20_000_000 | ขนาดไฟล์ใหญ่สุดที่รับ หน่วยเป็นไบต์ |
labelsInput | NuiChatLabelsInput | ข้อความทุกส่วนที่แชทแสดงหรือประกาศ สำหรับการแปล | |
ratedOutput | { message, rating } | ส่งคำตอบที่ผู้ใช้ให้คะแนนออกมาพร้อมคะแนน หรือ null เมื่อถอนคะแนน | |
focusเมธอด | () => void | โฟกัสที่ช่องข้อความ | |
scrollToEndเมธอด | (behavior?) => void | เลื่อนไปยังข้อความล่าสุด และเลื่อนตามต่อไป |
NuiChatSession
บทสนทนาโดยไม่มี DOM สร้างในคอมโพเนนต์ด้วยตัวเลือก respond messages และ id
| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
respondพร็อพเพอร์ตี | (request) => NuiChatReply | ฟังก์ชันที่คุณเขียนเอง: สร้างคำตอบให้กับ request.messages และหยุดเมื่อ request.signal ถูกยกเลิก | |
messagesพร็อพเพอร์ตี | Signal<NuiChatMessage[]> | บทสนทนาที่แสดงบนหน้าจอ | |
allพร็อพเพอร์ตี | Signal<NuiChatMessage[]> | ทุกข้อความของทุกเวอร์ชัน สำหรับบันทึกแล้วส่งกลับมาเป็น messages | |
busyพร็อพเพอร์ตี | Signal<boolean> | คำตอบกำลังมาอยู่หรือไม่ | |
sendเมธอด | (text, files?) => Promise<void> | ส่งข้อความและขอคำตอบ | |
stopเมธอด | () => void | หยุดคำตอบ โดยเก็บส่วนที่เขียนแล้วไว้ | |
retryเมธอด | (message?) => Promise<void> | ถามอีกครั้ง คำตอบใหม่จะเป็นอีกเวอร์ชันหนึ่งคู่กับคำตอบเดิม | |
editเมธอด | (message, text) => Promise<void> | ส่งเวอร์ชันใหม่ของข้อความหนึ่งของผู้ใช้ | |
versionsเมธอด | (message) => NuiChatMessage[] | ทุกเวอร์ชันของข้อความ เรียงจากเก่าสุด | |
showเมธอด | (message) => void | สลับบทสนทนาไปยังเวอร์ชันนี้ | |
rateเมธอด | (message, 'up' | 'down' | null) => void | บันทึกคะแนนที่ผู้ใช้ให้กับคำตอบ | |
remove, load, clearเมธอด | (…) => void | ลบข้อความพร้อมทุกอย่างที่ตามมา แทนที่บทสนทนา หรือเริ่มใหม่ทั้งหมด |
NuiChatMessage
ข้อความหนึ่งข้อความ ข้อความที่มี parent เดียวกันเป็นเวอร์ชันของกันและกัน
| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
id, parentพร็อพเพอร์ตี | string, string | null | คีย์ของข้อความ และคีย์ของข้อความที่อยู่ก่อนหน้า | |
roleพร็อพเพอร์ตี | 'user' | 'assistant' | ผู้เขียนข้อความ | |
textพร็อพเพอร์ตี | string | Markdown จากผู้ช่วย ข้อความธรรมดาจากผู้ใช้ | |
statusพร็อพเพอร์ตี | 'pending' | 'streaming' | 'done' | 'stopped' | 'error' | สถานะของคำตอบ ตั้งแต่กำลังรอจนถึงเสร็จ | |
reasoningพร็อพเพอร์ตี | string | สิ่งที่โมเดลคิดก่อนตอบ | |
toolsพร็อพเพอร์ตี | NuiChatTool[] | เครื่องมือที่เรียกใช้ พร้อมสถานะ input และ output | |
sourcesพร็อพเพอร์ตี | { url, title? }[] | หน้าเว็บที่ใช้ | |
attachmentsพร็อพเพอร์ตี | NuiChatAttachment[] | ไฟล์ที่ส่งมาพร้อมข้อความ | |
ratingพร็อพเพอร์ตี | 'up' | 'down' | null | คะแนนจากผู้ใช้ | |
dataพร็อพเพอร์ตี | unknown | ข้อมูลอื่นที่จะเก็บไว้ด้วย เช่น ชื่อโมเดล |
NuiChatToolTemplate
วาดการเรียกใช้เครื่องมือ เช่น การ์ดสภาพอากาศ context มีการเรียกใช้นั้นและข้อความของมัน
| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
nuiChatToolInput | string | ชื่อเครื่องมือ หากไม่ระบุ จะวาดทุกการเรียกใช้ที่ไม่มีเทมเพลตอื่นระบุชื่อไว้ |
NuiChatThread
เฉพาะส่วนบทสนทนา สำหรับเลย์เอาต์ของคุณเอง รับ input ของ nui-chat ที่เกี่ยวกับบทสนทนา
NuiChatComposer
เฉพาะช่องพิมพ์ข้อความ รับ input ของ nui-chat ที่เกี่ยวกับการเขียนข้อความ
NuiServerEvent
สิ่งที่ nuiEventStream ส่งออกมาในแต่ละอีเวนต์ nuiTextStream อ่านข้อความธรรมดา และ nuiJsonStream อ่าน JSON ทีละบรรทัด ทั้งสามตัวรับ response จาก fetch
| ชื่อ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
eventพร็อพเพอร์ตี | string | 'message' | ชื่อของอีเวนต์ |
dataพร็อพเพอร์ตี | string | บรรทัด data ของอีเวนต์ที่ต่อกันแล้ว | |
idพร็อพเพอร์ตี | string | id ล่าสุดที่สตรีมส่งมา |
NuiChatError
throw จาก respond เพื่อแสดงข้อความของมัน ข้อผิดพลาดอื่นจะแสดงข้อความทั่วไป ข้อมูลภายในจึงไม่รั่วไหล