الاستيراد

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

NuiChat

المحادثة ومربع الكتابة معًا.

المُحدِّد
nui-chat
NuiChat: الخصائص
الاسمالنوعالقيمة الافتراضيةالوصف
sessionمُدخَلNuiChatSessionالمحادثة المراد عرضها.
assistantمُدخَلstring'Assistant'اسم المساعد، في العناوين التي تقرؤها قارئات الشاشة.
headingLevelمُدخَلnumber3مستوى عنوان كل رسالة، ولا تعرضه إلا قارئات الشاشة. والعناوين داخل الردود أعمق بمستوى واحد.
announceمُدخَل'reply' | 'notice' | 'off''reply'ما تُعلنه قارئات الشاشة عند اكتمال الرد: الرد كله، أو إشعار قصير، أو لا شيء.
imagesمُدخَلbooleanfalseيعرض الصور داخل الردود. وبدونه يكون نصها رابطًا إليها.
valueثنائي الاتجاهstring''النص قيد الكتابة.
placeholderمُدخَلstringالنص الذي يظهر في الحقل الفارغ.
suggestionsمُدخَلstring[][]اقتراحات تُرسَل بنقرة، حتى أول رسالة.
sendOnمُدخَل'enter' | 'mod+enter''enter'يحدد ما إذا كان الإرسال بمفتاح Enter، أو بـ Ctrl أو ⌘ + Enter.
disabledمُدخَلbooleanfalseيمنع مربع الكتابة من الإرسال.
attachمُدخَلbooleanfalseيقبل الملفات: بالاختيار أو اللصق أو السحب والإفلات.
acceptمُدخَلstring''أنواع الملفات المقبولة، كما في <input type="file">.
maxFilesمُدخَلnumber10أقصى عدد من الملفات في الرسالة الواحدة.
maxSizeمُدخَلnumber20_000_000أكبر حجم مقبول للملف، بالبايت.
labelsمُدخَلNuiChatLabelsInputكل نص تعرضه المحادثة أو تُعلنه، لترجمته.
ratedمُخرَج{ message, rating }يُطلق الرد الذي قيّمه القارئ مع تقييمه، أو مع null عند سحب التقييم.
focusدالة() => voidينقل التركيز إلى الحقل النصي.
scrollToEndدالة(behavior?) => voidيُمرّر إلى أحدث رسالة، ويتابعها.

NuiChatSession

المحادثة دون أي DOM. أنشئها داخل مكوّن، مع الخيارات respond وmessages وid.

NuiChatSession: الخصائص
الاسمالنوعالقيمة الافتراضيةالوصف
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 نفسه نُسخ بعضها من بعض.

NuiChatMessage: الخصائص
الاسمالنوعالقيمة الافتراضيةالوصف
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

يرسم استدعاء أداة، مثل بطاقة للطقس. ويحتوي السياق على الاستدعاء ورسالته.

المُحدِّد
ng-template[nuiChatTool]
NuiChatToolTemplate: الخصائص
الاسمالنوعالقيمة الافتراضيةالوصف
nuiChatToolمُدخَلstringاسم الأداة. ودونه يرسم كل استدعاء لا يسمّيه قالب آخر.

NuiChatThread

المحادثة وحدها، لتخطيط من تصميمك. ويقبل مُدخلات nui-chat المتعلقة بالمحادثة.

المُحدِّد
nui-chat-thread

NuiChatComposer

مربع الكتابة وحده. ويقبل مُدخلات nui-chat المتعلقة بالكتابة.

المُحدِّد
nui-chat-composer

NuiServerEvent

ما يُنتجه nuiEventStream لكل حدث. ويقرأ nuiTextStream النص العادي، وnuiJsonStream أسطر JSON؛ وتقبل الثلاثة استجابة fetch.

NuiServerEvent: الخصائص
الاسمالنوعالقيمة الافتراضيةالوصف
eventخاصيةstring'message'اسم الحدث.
dataخاصيةstringأسطر بياناته، مدموجةً.
idخاصيةstringآخر معرّف (id) أرسله التدفق.

NuiChatError

اطرحه من respond لعرض رسالته. وأي خطأ آخر يعرض رسالة عامة، فلا يتسرّب شيء من الداخل.