ইমপোর্ট
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 থেকে এটি থ্রো করুন। অন্য যেকোনো ত্রুটি একটি সাধারণ বার্তা দেখায়, যাতে ভেতরের কিছু ফাঁস না হয়।