الاستيراد
import { NuiChat, NuiChatSession, nuiEventStream } from '@needless-ui/angular/chat';NuiChat
المحادثة ومربع الكتابة معًا.
| الاسم | النوع | القيمة الافتراضية | الوصف |
|---|---|---|---|
sessionمُدخَل | NuiChatSession | المحادثة المراد عرضها. | |
assistantمُدخَل | string | 'Assistant' | اسم المساعد، في العناوين التي تقرؤها قارئات الشاشة. |
headingLevelمُدخَل | number | 3 | مستوى عنوان كل رسالة، ولا تعرضه إلا قارئات الشاشة. والعناوين داخل الردود أعمق بمستوى واحد. |
announceمُدخَل | 'reply' | 'notice' | 'off' | 'reply' | ما تُعلنه قارئات الشاشة عند اكتمال الرد: الرد كله، أو إشعار قصير، أو لا شيء. |
imagesمُدخَل | boolean | false | يعرض الصور داخل الردود. وبدونه يكون نصها رابطًا إليها. |
valueثنائي الاتجاه | string | '' | النص قيد الكتابة. |
placeholderمُدخَل | string | النص الذي يظهر في الحقل الفارغ. | |
suggestionsمُدخَل | string[] | [] | اقتراحات تُرسَل بنقرة، حتى أول رسالة. |
sendOnمُدخَل | 'enter' | 'mod+enter' | 'enter' | يحدد ما إذا كان الإرسال بمفتاح Enter، أو بـ Ctrl أو ⌘ + Enter. |
disabledمُدخَل | boolean | false | يمنع مربع الكتابة من الإرسال. |
attachمُدخَل | boolean | false | يقبل الملفات: بالاختيار أو اللصق أو السحب والإفلات. |
acceptمُدخَل | string | '' | أنواع الملفات المقبولة، كما في <input type="file">. |
maxFilesمُدخَل | number | 10 | أقصى عدد من الملفات في الرسالة الواحدة. |
maxSizeمُدخَل | number | 20_000_000 | أكبر حجم مقبول للملف، بالبايت. |
labelsمُدخَل | NuiChatLabelsInput | كل نص تعرضه المحادثة أو تُعلنه، لترجمته. | |
ratedمُخرَج | { 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[] | الأدوات التي استدعاها، مع حالتها ومُدخلاتها ومُخرجاتها. | |
sourcesخاصية | { url, title? }[] | الصفحات التي استخدمها. | |
attachmentsخاصية | NuiChatAttachment[] | الملفات المُرسلة معها. | |
ratingخاصية | 'up' | 'down' | null | تقييم القارئ. | |
dataخاصية | unknown | أي شيء آخر يُحفظ معها، مثل اسم النموذج. |
NuiChatToolTemplate
يرسم استدعاء أداة، مثل بطاقة للطقس. ويحتوي السياق على الاستدعاء ورسالته.
| الاسم | النوع | القيمة الافتراضية | الوصف |
|---|---|---|---|
nuiChatToolمُدخَل | string | اسم الأداة. ودونه يرسم كل استدعاء لا يسمّيه قالب آخر. |
NuiChatThread
المحادثة وحدها، لتخطيط من تصميمك. ويقبل مُدخلات nui-chat المتعلقة بالمحادثة.
NuiChatComposer
مربع الكتابة وحده. ويقبل مُدخلات nui-chat المتعلقة بالكتابة.
NuiServerEvent
ما يُنتجه nuiEventStream لكل حدث. ويقرأ nuiTextStream النص العادي، وnuiJsonStream أسطر JSON؛ وتقبل الثلاثة استجابة fetch.
| الاسم | النوع | القيمة الافتراضية | الوصف |
|---|---|---|---|
eventخاصية | string | 'message' | اسم الحدث. |
dataخاصية | string | أسطر بياناته، مدموجةً. | |
idخاصية | string | آخر معرّف (id) أرسله التدفق. |
NuiChatError
اطرحه من respond لعرض رسالته. وأي خطأ آخر يعرض رسالة عامة، فلا يتسرّب شيء من الداخل.