RAG আর নলেজ সিস্টেম
RAG মডেলকে আপনার নিজের ডকুমেন্ট থেকে উত্তর দিতে দেয়। প্রোডাকশনে এটা কীভাবে কাজ করে শিখবেন: চাঙ্কিং, ভেক্টর ডেটাবেস, হাইব্রিড সার্চ, ভালো কুয়েরি, রিরেংকিং, ফিল্টার, ডকুমেন্ট পার্সিং, GraphRAG আর মাল্টিমোডাল রিট্রিভাল।
এই পাতায়
সেকশন ১ / ১০
চাঙ্কিং: ফিক্সড, সেম্যান্টিক, স্ট্রাকচারাল আর লেট চাঙ্কিং
রিট্রিভাল কাজ করে ডকুমেন্টের টুকরা নিয়ে, পুরো ডকুমেন্ট নিয়ে নয়। তাই লেখাটা কীভাবে কাটবেন, তার উপরই ঠিক হয় রিট্রিভার কী ফেরত দিতে পারবে। চাঙ্ক বেশি বড় হলে উত্তর বাড়তি লেখার ভিড়ে হারিয়ে যায়। বেশি ছোট হলে বাক্যটির অর্থ যে কনটেক্সট দিয়েছিল, তা চলে যায়। এখানে চার ধরন আছে: ফিক্সড-সাইজ (ওভারল্যাপ আর রিকার্সিভ সেপারেটর-সহ), স্ট্রাকচারাল (হেডার আর বাক্য), সেম্যান্টিক (এমবেডিং দিয়ে ঠিক করা ভাঙার জায়গা) আর লেট চাঙ্কিং (ট্রান্সফর্মারের পরে ভাঙা)। সাথে Anthropic-এর কনটেক্সচুয়াল রিট্রিভাল, যা প্রতিটি চাঙ্কের আগে একটি ব্যাখ্যা জুড়ে হারানো কনটেক্সট ফিরিয়ে আনে।[১][২]
অনুশীলন · ১টি টাস্ক
যেকোনো ফ্রি AI চ্যাট খুলুন: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবেন
- নতুন চ্যাট মানে একদম নতুন কথোপকথন, আগের কোনো হিস্ট্রি নেই। ChatGPT, Claude বা Gemini-তে New chat-এ ক্লিক করুন। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই চ্যাট মানে: যে চ্যাট খোলা আছে, সেখানেই লিখতে থাকুন। আগে যা পাঠিয়েছেন, AI তা মনে রাখে।
- প্রম্পট ব্যবহার করতে: কপি-তে ক্লিক করুন, চ্যাটের মেসেজ বক্সে ক্লিক করুন, পেস্ট করুন (Ctrl+V, বা ফোনে চেপে ধরে রাখুন), তারপর Enter চাপুন।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। আপনার উত্তর উদাহরণের সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখুন।
- শুধু বানানো ডেটা ব্যবহার করুন। নিজের বা অন্যের ব্যক্তিগত তথ্য চ্যাটে পেস্ট করবেন না।
টাস্ক ১
দেখুন, ভুল জায়গায় কাটলে উত্তর কীভাবে নষ্ট হয়
এটা কেন দরকার
আপনি যখন একটা সাপোর্ট চ্যাটবট বানাবেন, আপনার ডকুমেন্ট ছোট ছোট টুকরা করে কাটা হবে, যাকে চাঙ্ক বলে। কাটাটা যদি কোনো তথ্যের মাঝখানে পড়ে, বট ভুল উত্তর দিতে পারে, বা কোনো উত্তরই দিতে পারবে না।
ধাপ ১
নতুন চ্যাটএই প্রম্পটটা কপি করুন, চ্যাটে পেস্ট করে Enter চাপুন। এখানে AI-কে একটা চাঙ্ক দেওয়া হয়েছে, যেটা বাক্যের মাঝখানে কাটা।
প্রম্পট তুমি একটা support bot। শুধু নিচের chunk দেখে প্রশ্নের উত্তর দাও। chunk-এ উত্তর না থাকলে লেখো "যথেষ্ট তথ্য নেই"। Chunk (প্রতি 90 অক্ষর পরপর কাটা, এটা 2 নম্বর chunk): "দিনের মধ্যে। Pro plan-এর customer-রা 30 দিনের মধ্যে refund চাইতে পারবে। Refund মূল payment method-এ 5 কর্মদিবসে ফেরত দেওয়া হয়।" প্রশ্ন: Basic plan-এর customer-রা কত দিনের মধ্যে refund চাইতে পারবে?
আপনি দেখবেন: বেশিরভাগ চ্যাট লিখবে যথেষ্ট তথ্য নেই, কারণ বেসিক প্ল্যানের সংখ্যাটা নেই। কয়েকটা মডেল ভুল করে ৩০ বলতে পারে।
উদাহরণ উত্তর
যথেষ্ট তথ্য নেই
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
নতুন চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। এবার চাঙ্কটা বাক্যের শেষে কাটা।
প্রম্পট তুমি একটা support bot। শুধু নিচের chunk দেখে প্রশ্নের উত্তর দাও। chunk-এ উত্তর না থাকলে লেখো "যথেষ্ট তথ্য নেই"। Chunk (বাক্যের শেষে কাটা): "Zentro Cloud Refund Policy. Basic plan-এর customer-রা কেনার 14 দিনের মধ্যে পুরো refund চাইতে পারবে। Pro plan-এর customer-রা 30 দিনের মধ্যে refund চাইতে পারবে।" প্রশ্ন: Basic plan-এর customer-রা কত দিনের মধ্যে refund চাইতে পারবে?
আপনি দেখবেন: ১৪ দিন। পুরো তথ্যটা একটা চাঙ্কের ভেতরেই আছে।
উদাহরণ উত্তর
Basic plan-এর customer-রা 14 দিনের মধ্যে refund চাইতে পারবে।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৩
একই চ্যাটধাপ ১-এর চাঙ্কটা আবার দেখুন। কোন কোন শব্দ সেখানে নেই, লিখে রাখুন।
আপনি দেখবেন: চাঙ্কটা শুরু হয়েছে দিনের মধ্যে দিয়ে। সংখ্যা ১৪ আর Basic plan শব্দ দুটো নেই।
এইমাত্র কী হলো
একটা চ্যাটবট আপনার পুরো ডকুমেন্ট পড়ে না। সে ছোট টুকরা, মানে চাঙ্ক, খোঁজে, আর সবচেয়ে ভালো কয়েকটা AI-কে পাঠায়। ফিক্সড-সাইজ কাটার নির্দিষ্ট সংখ্যক অক্ষর পরপর কাটে, তথ্যের মাঝখানে হলেও। এখানে কাটায় ১৪ হারিয়ে গেছে, তাই AI উত্তর দিতে পারেনি। যে কাটার বাক্যের শেষে থামে, সে তথ্যটা পুরো রাখে।
কাজ শেষ, যখন আপনার কাছে দুটো উত্তর আছে: একটাতে ১৪ সংখ্যা নেই, আরেকটাতে ১৪ দিন আছে।
নিজেকে যাচাই করুনপুরো পলিসি ডকুমেন্টে থাকা সত্ত্বেও ধাপ ১ কেন ব্যর্থ হলো?উত্তর দেখুন
কাটার বাক্যটা ভেঙে ফেলেছে, তাই সংখ্যা আর প্ল্যানের নাম আলাদা চাঙ্কে চলে গেছে। সার্চ শুধু একটা চাঙ্ক AI-কে পাঠিয়েছে। যে কাটার বাক্যের শেষে কাটে, সে তথ্যটা এক টুকরাতেই রাখে।
আরেকটু কঠিন করে দেখুন
ধাপ ২-এর চাঙ্কের প্রথম বাক্যটা বদলে লিখুন কোম্পানি দাম বাড়িয়েছে। তারপর জিজ্ঞেস করুন এটা কোন কোম্পানির কথা? এরপর একদম উপরে Zentro Cloud-এর refund policy থেকে। লাইনটা যোগ করে আবার জিজ্ঞেস করুন। কী বদলালো?
ভিডিও দেখুন · ৩টি
The 5 Levels Of Text Splitting For Retrieval Greg Kamradt
Semantic Chunking - 3 Methods for Better RAG James Briggs
Late chunking improves context recall in RAG pipelines Weaviate vector database
ভেক্টর ডেটাবেস: Qdrant, Pinecone, Weaviate, pgvector, Chroma, Milvus-এর তুলনা
ভেক্টর ডেটাবেস এমবেডিং জমা রাখে, আর “জমানো কোন ভেক্টরগুলো এটির সবচেয়ে কাছে?” — এই প্রশ্নের উত্তর দেয়, প্রতিটি রো-র সাথে তুলনা না করেই। লক্ষ লক্ষ ভেক্টরে এক্সাক্ট সার্চ খুব ধীর, তাই এসব সিস্টেম একটি অ্যাপ্রক্সিমেট নিয়ারেস্ট নেইবার (ANN) ইনডেক্স বানায়, সবচেয়ে বেশি HNSW গ্রাফ।[৬] জনপ্রিয় ছয়টি অপশনের মূল ধারণা প্রায় এক। পার্থক্য ডিপ্লয়মেন্ট মডেল, ইনডেক্সের বিকল্প, হাইব্রিড সার্চের সাপোর্ট আর টেন্যান্ট আলাদা রাখার উপায়ে। নিচের ফিচার টেবিল শুধু আমার পড়া ভেন্ডর ডকুমেন্টেশন থেকে বানানো। “কখন কোনটা বাছবেন” পরামর্শটা আমার নিজের সংশ্লেষণ, আর সেটা সেভাবেই লেখা আছে।
অনুশীলন · ১টি টাস্ক
যেকোনো ফ্রি AI চ্যাট খুলুন: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবেন
- নতুন চ্যাট মানে একদম নতুন কথোপকথন, আগের কোনো হিস্ট্রি নেই। ChatGPT, Claude বা Gemini-তে New chat-এ ক্লিক করুন। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই চ্যাট মানে: যে চ্যাট খোলা আছে, সেখানেই লিখতে থাকুন। আগে যা পাঠিয়েছেন, AI তা মনে রাখে।
- প্রম্পট ব্যবহার করতে: কপি-তে ক্লিক করুন, চ্যাটের মেসেজ বক্সে ক্লিক করুন, পেস্ট করুন (Ctrl+V, বা ফোনে চেপে ধরে রাখুন), তারপর Enter চাপুন।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। আপনার উত্তর উদাহরণের সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখুন।
- শুধু বানানো ডেটা ব্যবহার করুন। নিজের বা অন্যের ব্যক্তিগত তথ্য চ্যাটে পেস্ট করবেন না।
টাস্ক ১
তিন রকমে সবচেয়ে কাছের পয়েন্ট খুঁজুন
এটা কেন দরকার
আপনি যখন ডকুমেন্ট সার্চ বানাবেন, প্রতিটা টেক্সট একটা সংখ্যার তালিকা (ভেক্টর) হয়ে যাবে, আর ভেক্টর ডেটাবেস সবচেয়ে কাছেরগুলো খুঁজে দেবে। কাছে মাপার কোন উপায় বেছে নিলে, সেটা বদলে দিতে পারে কোন ডকুমেন্ট ফিরে আসবে।
ধাপ ১
নতুন চ্যাটএই প্রম্পটটা কপি করুন, চ্যাটে পেস্ট করে Enter চাপুন। তিনটা মেজারের প্রতিটায় সবচেয়ে কাছের পয়েন্ট কোনটা, লিখে রাখুন।
প্রম্পট এখানে 5টা point আছে, (x, y) আকারে: P1 = (2, 2) P2 = (10, 9) P3 = (1, 0.5) P4 = (0, 3) P5 = (-1, -1) query point হলো q = (1, 1)। প্রতিটা point-এর জন্য তিনটা সংখ্যা হিসাব করো: (a) q থেকে L2 distance (সরল রেখার দূরত্ব; যত ছোট, তত কাছে) (b) q-এর সাথে cosine similarity (দিক কতটা কাছাকাছি; যত বড়, তত কাছে) (c) q-এর সাথে dot product (দিক আর দৈর্ঘ্য মেশানো; যত বড়, তত কাছে) দশমিকের পর 3 ঘর দিয়ে একটা table দেখাও। তারপর তিনটার প্রতিটার জন্য সবচেয়ে কাছের point-এর নাম বলো।
আপনি দেখবেন: ৫ সারির একটা টেবিল। L2 অনুযায়ী সবচেয়ে কাছে P3, কোসাইন অনুযায়ী P1, আর ডট প্রোডাক্ট অনুযায়ী P2। অর্থাৎ তিনটা আলাদা উইনার।
উদাহরণ উত্তর
Point | L2 | Cosine | Dot P1 | 1.414 | 1.000 | 4.000 P2 | 12.042 | 0.999 | 19.000 P3 | 0.500 | 0.949 | 1.500 P4 | 2.236 | 0.707 | 3.000 P5 | 2.828 | -1.000 | -2.000 L2 অনুযায়ী সবচেয়ে কাছে: P3। cosine অনুযায়ী: P1। dot product অনুযায়ী: P2।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
একই চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। প্রতিটা মেজারে সবচেয়ে কাছের পয়েন্ট আবার লিখে রাখুন।
প্রম্পট এবার প্রতিটা point-কে তার নিজের দৈর্ঘ্য দিয়ে ভাগ করো, যাতে প্রতিটা point-এর দৈর্ঘ্য 1 হয়। q-এর সাথেও একই করো। তারপর L2 distance, cosine similarity আর dot product দিয়ে table আবার বানাও, দশমিকের পর 3 ঘর দিয়ে। তিনটার প্রতিটার জন্য সবচেয়ে কাছের point-এর নাম বলো।
আপনি দেখবেন: এবার তিনটা মেজারই একই পয়েন্ট বাছবে, P1। টেবিলে P1 আর P2-এর সংখ্যা কাছাকাছি।
উদাহরণ উত্তর
Point | L2 | Cosine | Dot P1 | 0.000 | 1.000 | 1.000 P2 | 0.053 | 0.999 | 0.999 P3 | 0.320 | 0.949 | 0.949 P4 | 0.765 | 0.707 | 0.707 P5 | 2.000 | -1.000 | -1.000 এখন তিনটা measure-ই একই point বেছেছে: P1।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
এইমাত্র কী হলো
প্রতিটা মেজারের নিজের মতো করে কাছে বোঝার উপায় আছে। L2 হলো সরল রেখার দূরত্ব, কোসাইন শুধু দিক দেখে, আর ডট প্রোডাক্ট দৈর্ঘ্যকেও গুরুত্ব দেয়। P2 অনেক দূরে কিন্তু লম্বা, তাই শুধু ডট প্রোডাক্ট তাকে বাছে। প্রতিটা পয়েন্টকে দৈর্ঘ্য 1-এ নামিয়ে আনলে তিনটা মেজারই একমত হয়।
কাজ শেষ, যখন আপনার কাছে ধাপ ১-এর ৩টা আলাদা উইনার আর ধাপ ২-এর ১টা একই উইনার আছে।
নিজেকে যাচাই করুনআপনার এমবেডিং মডেল (যে মডেল টেক্সট থেকে ভেক্টর বানায়) কোসাইন সিমিলারিটি দিয়ে ট্রেন করা। ভেক্টর ডেটাবেসে কোন মেজার ব্যবহার করবেন?উত্তর দেখুন
কোসাইন ব্যবহার করবেন, বা দৈর্ঘ্য 1-এ নামানো ভেক্টরে ডট প্রোডাক্ট, কারণ দুটোর র্যাংকিং একই। L2 বা সাধারণ ডট প্রোডাক্ট দৈর্ঘ্য দেখে বেছে ফেলতে পারে, তখন ডেটাবেস আলাদা ডকুমেন্ট ফেরত দেবে।
আরেকটু কঠিন করে দেখুন
ধাপ ১-এ ফিরে গিয়ে q বদলে (৩, ৩) করুন, আর আবার চালান। কোন উইনার বদলায়, আর কোনগুলো একই থাকে? কেন?
ভিডিও দেখুন · ৩টি
Vector databases are so hot right now. WTF are they? Fireship
Qdrant Essentials | Fast Vector Search with Qdrant HNSW Indexing Qdrant Vector Search
The Weaviate Vector Database — Bring AI-native applications to life. CMU Database Group
হাইব্রিড সার্চ (BM25 + ভেক্টর) আর রেসিপ্রোকাল র্যাংক ফিউশন
কীওয়ার্ড সার্চ (BM25) আর এমবেডিং সার্চ উল্টো উল্টো জায়গায় ব্যর্থ হয়। BM25-এর জন্য কুয়েরির ঠিক শব্দগুলো লেখায় থাকতে হয়। ডেন্স ভেক্টর আবার বিরল আইডেন্টিফায়ার, নাম আর কোড ঝাপসা করে ফেলতে পারে। হাইব্রিড সার্চ দুটোই চালিয়ে ফলাফল মিলিয়ে দেয়। সবচেয়ে প্রচলিত মেলানোর উপায় রেসিপ্রোকাল র্যাংক ফিউশন (RRF): এটা কাঁচা স্কোর দেখে না, শুধু প্রতিটি তালিকায় ডকুমেন্টের র্যাংকিং মিলিয়ে নেয়।[১৬] সমস্যাটা হলো, দুই রিট্রিভারের স্কোর আলাদা মাপের, আর র্যাংক-ভিত্তিক ফিউশন ঠিক এই সমস্যাটাই এড়িয়ে যায়।
অনুশীলন · ১টি টাস্ক
যেকোনো ফ্রি AI চ্যাট খুলুন: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবেন
- নতুন চ্যাট মানে একদম নতুন কথোপকথন, আগের কোনো হিস্ট্রি নেই। ChatGPT, Claude বা Gemini-তে New chat-এ ক্লিক করুন। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই চ্যাট মানে: যে চ্যাট খোলা আছে, সেখানেই লিখতে থাকুন। আগে যা পাঠিয়েছেন, AI তা মনে রাখে।
- প্রম্পট ব্যবহার করতে: কপি-তে ক্লিক করুন, চ্যাটের মেসেজ বক্সে ক্লিক করুন, পেস্ট করুন (Ctrl+V, বা ফোনে চেপে ধরে রাখুন), তারপর Enter চাপুন।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। আপনার উত্তর উদাহরণের সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখুন।
- শুধু বানানো ডেটা ব্যবহার করুন। নিজের বা অন্যের ব্যক্তিগত তথ্য চ্যাটে পেস্ট করবেন না।
টাস্ক ১
RRF দিয়ে দুটো সার্চ লিস্ট মেলান
এটা কেন দরকার
আপনি যখন হেল্প সেন্টারের জন্য সার্চ বানাবেন, কীওয়ার্ড সার্চ আর অর্থ দিয়ে সার্চ, দুটো আলাদা র্যাংকড লিস্ট দেবে। আপনাকে দুটোকে এক লিস্টে মেলাতে হবে, আর মেলানোর নিয়মই ঠিক করে ইউজার আগে কী দেখবে।
ধাপ ১
নতুন চ্যাটএই প্রম্পটটা কপি করুন, চ্যাটে পেস্ট করে Enter চাপুন। k = ৬০ আর k = 2-এর জন্য সবার উপরের ডকুমেন্ট কোনটা, লিখে রাখুন।
প্রম্পট Reciprocal rank fusion (RRF) ranked list মেলানোর একটা উপায়। প্রতিটা document এই score পায়: যতগুলো list-এ document-টা আছে, প্রতিটার জন্য 1 / (k + rank) যোগ করো। Rank 1 মানে সবচেয়ে ভালো জায়গা। List 1, keyword search (সেরা আগে): A, B, E, C, G List 2, অর্থ দিয়ে search (সেরা আগে): D, G, B, F, A A থেকে G পর্যন্ত প্রতিটা document-এর score দুইবার হিসাব করো: একবার k = 60 দিয়ে, একবার k = 2 দিয়ে। দশমিকের পর 4 ঘর দিয়ে একটা table দেখাও। তারপর প্রতিটা k-এর জন্য চূড়ান্ত ranking দাও। দুটো document-এর score সমান হলে সেটা বলো।
আপনি দেখবেন: ৭ সারির একটা টেবিল। k = ৬০ হলে সবার উপরে B। k = ২ হলে সবার উপরে A। C আর F-এর স্কোর সমান, তারা একদম নিচে।
উদাহরণ উত্তর
Doc | k=60 | k=2 A | 0.0318 | 0.4762 B | 0.0320 | 0.4500 C | 0.0156 | 0.1667 D | 0.0164 | 0.3333 E | 0.0159 | 0.2000 F | 0.0156 | 0.1667 G | 0.0315 | 0.3929 k=60 ranking: B, A, G, D, E, তারপর C আর F সমান। k=2 ranking: A, B, G, D, E, তারপর C আর F সমান।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
একই চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। কোন সার্চ উইনার ঠিক করেছে, লিখে রাখুন।
প্রম্পট একটা search system 3টা document-কে এই score দিয়েছে। Keyword score (BM25): X = 14.2, Y = 9.8, Z = 2.1 অর্থের score (cosine): X = 0.61, Y = 0.83, Z = 0.88 প্রতিটা document-এর দুটো score যোগ করো, আর যোগফল দিয়ে ranking বানাও। দুটো search-এর মধ্যে কোনটা winner ঠিক করেছে? এই দুটো score যোগ করা কেন ঠিক নয়? ranking-এর পরে 3টা ছোট বাক্যে উত্তর দাও।
আপনি দেখবেন: যোগফল X = ১৪.৮১, Y = ১০.৬৩, Z = ২.৯৮। X জেতে, কারণ কীওয়ার্ড স্কোর কোসাইন স্কোরের চেয়ে অনেক বড়।
উদাহরণ উত্তর
যোগফল অনুযায়ী ranking: X = 14.81, Y = 10.63, Z = 2.98। Keyword search winner ঠিক করেছে। তার score বড়, তাই cosine score প্রায় কোনো কাজেই লাগেনি। cosine বলছে Z সেরা, কিন্তু Z শেষে। দুটো score-এর scale আলাদা, তাই যোগ করা ঠিক নয়।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
এইমাত্র কী হলো
RRF একটা ডকুমেন্টকে স্কোর দেয় প্রতিটা লিস্টে তার জায়গা দেখে, কাঁচা স্কোর দেখে নয়: ১ / (k + জায়গা)। k = ৬০ হলে যে ডকুমেন্ট দুই লিস্টেই উপরের দিকে (B), সে জেতে। k = ২ হলে প্রথম জায়গার দাম অনেক বেশি, তাই A জেতে। বিভিন্ন সার্চ টুল আলাদা k ব্যবহার করে (Elasticsearch ৬০, Qdrant ২), তাই একই লিস্ট থেকে আলাদা অর্ডার আসতে পারে।
কাজ শেষ, যখন আপনার কাছে দুটো র্যাংকিং আছে: k = ৬০ হলে B প্রথম, আর k = ২ হলে A প্রথম।
নিজেকে যাচাই করুনRRF কেন কাঁচা স্কোর না নিয়ে প্রতিটা লিস্টে জায়গা ব্যবহার করে?উত্তর দেখুন
কীওয়ার্ড স্কোর আর অর্থের স্কোরের স্কেল আলাদা, তাই যোগ করা ঠিক নয়: বড় সংখ্যাই জিতে যায়। জায়গার স্কেল সব লিস্টে একই।
আরেকটু কঠিন করে দেখুন
AI-কে বলুন তৃতীয় একটা লিস্ট যোগ করতে, সবচেয়ে নতুন আগে: B, E, A, C, D, F, G, আর k = ৬০ দিয়ে আবার হিসাব করতে। এবার কোন ডকুমেন্ট জেতে?
ভিডিও দেখুন · ৩টি
Hybrid Search Finds What Vectors Miss (RAG) Shane | LLM Implementation
Understanding Reciprocal Rank Fusion in Hybrid Search [Advanced RAG] TechViz - The Data Science Guy
Build your own Hybrid Search Abhishek Thakur
কুয়েরি রিরাইটিং, এক্সপ্যানশন আর HyDE
ইউজারের কুয়েরি ছোট, অস্পষ্ট, আর উত্তর-দেওয়া ডকুমেন্টের ভাষা থেকে আলাদা। কুয়েরি ট্রান্সফরমেশন রিট্রিভালের আগে একটি ধাপ বসায়, যা কুয়েরিকে নতুন করে লেখে, বড় করে, একাধিক করে, এমনকি “উত্তর দিয়েও” ফেলে, যাতে রিট্রিভার মেলানোর জন্য ভালো একটি স্ট্রিং (বা ভেক্টর) পায়। পরিচিত ধরনগুলো: HyDE[২৩], স্টেপ-ব্যাক প্রম্পটিং[২৪], Query2doc[২৫], RAG-Fusion[২৬] আর Rewrite-Retrieve-Read[২৭]। প্রতিটিতে একটি বাড়তি LLM কল লাগে (ল্যাটেন্সি আর খরচ), বিনিময়ে সঠিক চাঙ্ক ক্যান্ডিডেটের মধ্যে আসার সম্ভাবনা বাড়ে।
অনুশীলন · ১টি টাস্ক
যেকোনো ফ্রি AI চ্যাট খুলুন: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবেন
- নতুন চ্যাট মানে একদম নতুন কথোপকথন, আগের কোনো হিস্ট্রি নেই। ChatGPT, Claude বা Gemini-তে New chat-এ ক্লিক করুন। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই চ্যাট মানে: যে চ্যাট খোলা আছে, সেখানেই লিখতে থাকুন। আগে যা পাঠিয়েছেন, AI তা মনে রাখে।
- প্রম্পট ব্যবহার করতে: কপি-তে ক্লিক করুন, চ্যাটের মেসেজ বক্সে ক্লিক করুন, পেস্ট করুন (Ctrl+V, বা ফোনে চেপে ধরে রাখুন), তারপর Enter চাপুন।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। আপনার উত্তর উদাহরণের সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখুন।
- শুধু বানানো ডেটা ব্যবহার করুন। নিজের বা অন্যের ব্যক্তিগত তথ্য চ্যাটে পেস্ট করবেন না।
টাস্ক ১
বানানো একটা উত্তর দিয়ে সার্চ করুন
এটা কেন দরকার
আপনি যখন একটা হেল্প-সেন্টার চ্যাটবট বানাবেন, ইউজার অস্পষ্ট প্রশ্ন লিখবে, যেমন it keeps saying not allowed। হেল্প আর্টিকলে লেখা থাকবে অন্য শব্দ, যেমন permission denied, তাই কীওয়ার্ড সার্চ সেগুলো মিস করে।
ধাপ ১
নতুন চ্যাটএই প্রম্পটটা কপি করুন, চ্যাটে পেস্ট করে Enter চাপুন। কোন ডকুমেন্ট জেতে, লিখে রাখুন। এই প্রম্পটটা ইংরেজিতে রাখা হয়েছে, কারণ এখানে ইংরেজি শব্দ মেলানো হবে।
প্রম্পট You are a keyword search engine. Score each document by the number of different words it shares with the query. Ignore these small words: a, an, the, it, I, you, your, is, are, was, to, on, in, of, for, with, and, or, if, when, that, this, there, no. Show the shared words and the count for each document. Then name the best document. Query: "it keeps saying not allowed when I push" D1: Fixing HTTP 403 Forbidden on git push. Your access token lacks write permission. Create a new personal access token with the repo scope. D2: How to push a new branch. Run git push origin branch-name. If the terminal keeps saying there is no upstream, use --set-upstream. D3: Branch protection rules block direct pushes to main. Permission is denied for everyone except admins. Open a pull request instead. D4: Cleaning up old branches. Delete merged branches with git branch -d.
আপনি দেখবেন: D2 জেতে, ৩টা মেলা শব্দ নিয়ে (push, keeps, saying)। D1-এ আছে ১টা, আর D3 ও D4-এ ০। D2 শুধু পুশ করা শেখায়, এরর ঠিক করা শেখায় না।
উদাহরণ উত্তর
Shared words: D1: push = 1 D2: keeps, push, saying = 3 D3: none = 0 D4: none = 0 Best document: D2
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
নতুন চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। তারপর AI যে প্যাসেজ লেখে, সেটা কপি করুন। এই প্রম্পটটা ইংরেজিতে রাখা হয়েছে, কারণ এখানে ইংরেজি শব্দ মেলানো হবে।
প্রম্পট Write a short passage (3 sentences) that could appear in a help-centre article answering this question: "it keeps saying not allowed when I push". The passage may contain guesses. Do not add a title or a comment.
আপনি দেখবেন: ৩ বাক্যের একটা প্যাসেজ, যেখানে permission, denied, forbidden, বা token-এর মতো শব্দ আছে।
উদাহরণ উত্তর
If you see 'permission denied' or '403 Forbidden' when you push, your access token may not have write permission. The branch may also be protected, so direct pushes are blocked. Create a new token with the repo scope, or open a pull request instead.
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৩
নতুন চ্যাটএই প্রম্পটটা কপি করুন। ব্র্যাকেটের ভেতরের লেখাটা ধাপ ২-এর প্যাসেজ দিয়ে বদলান। পেস্ট করে Enter চাপুন। এই প্রম্পটটা ইংরেজিতে রাখা হয়েছে, কারণ এখানে ইংরেজি শব্দ মেলানো হবে।
প্রম্পট You are a keyword search engine. Score each document by the number of different words it shares with the query. Ignore these small words: a, an, the, it, I, you, your, is, are, was, to, on, in, of, for, with, and, or, if, when, that, this, there, no. Show the shared words and the count for each document. Then name the best document. Query: "[PASTE YOUR PASSAGE HERE]" D1: Fixing HTTP 403 Forbidden on git push. Your access token lacks write permission. Create a new personal access token with the repo scope. D2: How to push a new branch. Run git push origin branch-name. If the terminal keeps saying there is no upstream, use --set-upstream. D3: Branch protection rules block direct pushes to main. Permission is denied for everyone except admins. Open a pull request instead. D4: Cleaning up old branches. Delete merged branches with git branch -d.
আপনি দেখবেন: এবার D1 বা D3 জেতে, আর D2 পিছিয়ে যায়। নিচের উদাহরণ প্যাসেজে D1-এর ১১টা, D3-এর ৯টা, আর D2-এর ৩টা মেলা শব্দ।
উদাহরণ উত্তর
Shared words: D1: 403, access, create, forbidden, new, permission, push, repo, scope, token, write = 11 D2: branch, new, push = 3 D3: branch, denied, direct, instead, open, permission, pull, pushes, request = 9 D4: branch = 1 Best document: D1
আপনার উত্তরের ভাষা একটু আলাদা হবে।
এইমাত্র কী হলো
ছোট, অস্পষ্ট প্রশ্ন আর আসল উত্তর প্রায়ই আলাদা শব্দ ব্যবহার করে। HyDE-তে (বানানো উত্তর দিয়ে সার্চ) AI আগে একটা নকল উত্তর লেখে, আর আপনি প্রশ্নের বদলে সেই লেখা দিয়ে সার্চ করেন। নকল উত্তরে ভুল ডিটেইলস থাকতে পারে। কিন্তু সে সেই শব্দগুলো ব্যবহার করে যা আসল উত্তরে থাকে, যেমন permission আর denied, তাই D2-এর বদলে D1 আর D3 পাওয়া যায়।
কাজ শেষ, যখন আপনার কাছে দুটো উইনার আছে: মূল প্রশ্নে D2, আর বানানো প্যাসেজে D1 বা D3।
নিজেকে যাচাই করুনবানানো একটা উত্তর কেন মূল প্রশ্নের চেয়ে ভালো ডকুমেন্ট খুঁজে পায়?উত্তর দেখুন
বানানো উত্তরটা আসল উত্তরের ধরন আর শব্দে লেখা, তাই ছোট অস্পষ্ট প্রশ্নের চেয়ে সে সঠিক ডকুমেন্টের সাথে ভালো মেলে। তাতে ভুল ডিটেইলস থাকতে পারে, কারণ সার্চের শুধু শব্দ দরকার, তথ্য নয়।
আরেকটু কঠিন করে দেখুন
নতুন চ্যাটে AI-কে ধাপ ১-এর কুয়েরিটার তিনটা আলাদা রিরাইট বানাতে বলুন। প্রতিটা রিরাইট দিয়ে কীওয়ার্ড সার্চ চালান। সবার টপ ডকুমেন্ট কি এক?
ভিডিও দেখুন · ৩টি
মাল্টি-হপ রিট্রিভাল আর এজেন্টিক রিট্রিভাল
কিছু প্রশ্নের উত্তর একবার রিট্রিভাল করে মেলে না: দ্বিতীয় সার্চ নির্ভর করে প্রথমটি কী পেল তার উপর। HotpotQA-র মতো মাল্টি-হপ বেঞ্চমার্ক ঠিক এটাই পরীক্ষা করে (Wikipedia থেকে ১১৩k প্রশ্ন-উত্তরের জোড়া, যেগুলোর জন্য একাধিক ডকুমেন্ট নিয়ে রিজনিং লাগে, আর প্রতিটির সাথে বাক্য-স্তরের সহায়ক তথ্য আছে)।[২৮] এজেন্টিক রিট্রিভাল-এ মডেল নিজেই ঠিক করে রিট্রিভ করবে কি না, কী খুঁজবে, ফলাফল যথেষ্ট ভালো কি না, আর কখন থামবে। এর দাম: বেশি LLM কল, বেশি ল্যাটেন্সি, আর সিস্টেম ডিবাগ করা কঠিন।
অনুশীলন · ১টি টাস্ক
যেকোনো ফ্রি AI চ্যাট খুলুন: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবেন
- নতুন চ্যাট মানে একদম নতুন কথোপকথন, আগের কোনো হিস্ট্রি নেই। ChatGPT, Claude বা Gemini-তে New chat-এ ক্লিক করুন। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই চ্যাট মানে: যে চ্যাট খোলা আছে, সেখানেই লিখতে থাকুন। আগে যা পাঠিয়েছেন, AI তা মনে রাখে।
- প্রম্পট ব্যবহার করতে: কপি-তে ক্লিক করুন, চ্যাটের মেসেজ বক্সে ক্লিক করুন, পেস্ট করুন (Ctrl+V, বা ফোনে চেপে ধরে রাখুন), তারপর Enter চাপুন।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। আপনার উত্তর উদাহরণের সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখুন।
- শুধু বানানো ডেটা ব্যবহার করুন। নিজের বা অন্যের ব্যক্তিগত তথ্য চ্যাটে পেস্ট করবেন না।
টাস্ক ১
AI এজেন্টের সার্চ টুল সেজে দেখুন
এটা কেন দরকার
আপনি যখন একটা রিসার্চ এজেন্ট বানাবেন, কিছু প্রশ্নের জন্য কয়েকবার সার্চ লাগবে, আর প্রতিটা সার্চ আগের রেজাল্টের উপর নির্ভর করে। এজেন্টকে এটাও জানতে হবে কখন থামতে হবে।
ধাপ ১
নতুন চ্যাটএই প্রম্পটটা কপি করুন, চ্যাটে পেস্ট করে Enter চাপুন। সার্চের উত্তর এখনই দেবেন না।
প্রম্পট তুমি একজন research agent। তুমি একটা tool ব্যবহার করতে পারো। Tool: search(query) company wiki থেকে একটা ছোট text ফেরত দেয়। নিয়ম: - শুধু একটা লাইনে উত্তর দাও: হয় SEARCH: <তোমার query> অথবা FINAL: <তোমার উত্তর>। - সর্বোচ্চ 4বার search করতে পারবে। - শুধু search result-এর তথ্য ব্যবহার করবে। অনুমান করবে না। প্রশ্ন: Kestrel payment API যে team বানিয়েছে, তার manager কোন শহরে কাজ করেন?
আপনি দেখবেন: একটা লাইন, যেটা
SEARCH:দিয়ে শুরু, যেমন SEARCH: Kestrel payment API team। এখনইFINAL:লেখা উচিত নয়, কারণ সে কোনো তথ্য জানে না।উদাহরণ উত্তর
SEARCH: Kestrel payment API কোন team বানিয়েছে?
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
একই চ্যাটএখন আপনি সার্চ টুল। এই লাইনটা কপি করুন, পেস্ট করে Enter চাপুন।
প্রম্পট Search result: Kestrel payment API 2023 সালে Ledger team বানিয়েছে।
আপনি দেখবেন: টিমের নাম দিয়ে নতুন একটা সার্চ, যেমন SEARCH: Ledger team-এর manager কে?
উদাহরণ উত্তর
SEARCH: Ledger team-এর manager কে?
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৩
একই চ্যাটএই লাইনটা কপি করুন, পেস্ট করে Enter চাপুন।
প্রম্পট Search result: Ledger team-এর manager Amina Rahman।
আপনি দেখবেন: ম্যানেজারের নাম দিয়ে তৃতীয় একটা সার্চ, যেমন SEARCH: Amina Rahman কোন শহরে কাজ করেন?
উদাহরণ উত্তর
SEARCH: Amina Rahman কোন শহরে কাজ করেন?
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৪
একই চ্যাটএই লাইনটা কপি করুন, পেস্ট করে Enter চাপুন। AI কয়বার সার্চ করল, গুনে রাখুন।
প্রম্পট Search result: Amina Rahman Chattogram office-এ কাজ করেন।
আপনি দেখবেন:
FINAL:দিয়ে শহরের নাম Chattogram। AI মোট ৩বার সার্চ করেছে।উদাহরণ উত্তর
FINAL: Chattogram
আপনার উত্তরের ভাষা একটু আলাদা হবে।
এইমাত্র কী হলো
একটা সার্চ দিয়ে এই প্রশ্নের উত্তর পাওয়া যেত না। প্রতিটা সার্চের আগের সার্চ থেকে একটা তথ্য লেগেছে: আগে টিম, তারপর ম্যানেজার, তারপর শহর। এরকম প্রশ্নকে বলে মাল্টি-হপ। এজেন্টিক রিট্রিভালে AI নিজেই ঠিক করে পরের সার্চ কী হবে, আর কখন থামবে। এর দাম হলো বেশি AI কল।
কাজ শেষ, যখন ৩টা সার্চের পর আপনার কাছে একটা FINAL: উত্তর আছে, Chattogram।
নিজেকে যাচাই করুনএকটা মাত্র সার্চ এই প্রশ্নের ভালো উত্তর কেন দিতে পারে না?উত্তর দেখুন
দ্বিতীয় আর তৃতীয় সার্চের যে তথ্য লাগে, তা আগের সার্চগুলোই পেয়েছে, তাই একটা কুয়েরিতে সব তথ্য থাকে না। AI-কে প্রতিবার পরের সার্চ ঠিক করতে হয়, আর তাতে বেশি AI কল লাগে।
আরেকটু কঠিন করে দেখুন
নতুন চ্যাটে ধাপ ১-এর প্রম্পট দিয়ে শুরু করুন, কিন্তু নিয়মটা বদলে লিখুন সর্বোচ্চ ২বার search করতে পারবে। আবার টুলের ভূমিকা নিন। সময়মতো শেষ করতে না পারলে AI কী করে? আপনি কি এটাই চান?
ভিডিও দেখুন · ৩টি
Agentic RAG: An End-to-End Open Source Framework Weaviate vector database
Agentic RAG Explained DataStax Developers
Self-Corrective RAG with LangGraph - Agentic RAG Tutorial Coding Crash Courses
রিরেংকিংয়ে ফলাফল সাজানো: Cohere, BGE, Voyage
প্রথম ধাপের রিট্রিভাল (BM25, ডেন্স ভেক্টর, বা দুটোই) বিশাল কর্পাসে দ্রুত চলার জন্য বানানো। তাই সে প্রতিটি ডকুমেন্টের স্কোর দেয় কুয়েরি আর ডকুমেন্ট একসাথে না দেখেই। রিরেংকার দ্বিতীয় ধাপের মডেল, যে দুটো একসাথে দেখে: ছোট ক্যান্ডিডেট তালিকা নিয়ে আরও নিখুঁত রেলেভেন্স স্কোর দিয়ে সেটা নতুন করে সাজায়। Sentence-Transformers এটাকেই সুপারিশ করা প্যাটার্ন হিসেবে লিখেছে: বাই-এনকোডার টপ-k ক্যান্ডিডেট রিট্রিভ করে, তারপর ক্রস-এনকোডার তাদের রিরেংক করে।[৪৩] হোস্টেড অপশনের মধ্যে আছে Cohere Rerank আর Voyage রিরেংকার, আর ওপেন-ওয়েটের মধ্যে BAAI-র BGE রিরেংকার।[৪৪][৪৫][৪৬]
অনুশীলন · ১টি টাস্ক
যেকোনো ফ্রি AI চ্যাট খুলুন: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবেন
- নতুন চ্যাট মানে একদম নতুন কথোপকথন, আগের কোনো হিস্ট্রি নেই। ChatGPT, Claude বা Gemini-তে New chat-এ ক্লিক করুন। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই চ্যাট মানে: যে চ্যাট খোলা আছে, সেখানেই লিখতে থাকুন। আগে যা পাঠিয়েছেন, AI তা মনে রাখে।
- প্রম্পট ব্যবহার করতে: কপি-তে ক্লিক করুন, চ্যাটের মেসেজ বক্সে ক্লিক করুন, পেস্ট করুন (Ctrl+V, বা ফোনে চেপে ধরে রাখুন), তারপর Enter চাপুন।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। আপনার উত্তর উদাহরণের সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখুন।
- শুধু বানানো ডেটা ব্যবহার করুন। নিজের বা অন্যের ব্যক্তিগত তথ্য চ্যাটে পেস্ট করবেন না।
টাস্ক ১
AI দিয়ে সার্চ রেজাল্ট নতুন করে সাজান
এটা কেন দরকার
আপনি যখন হেল্প-সেন্টার সার্চ বানাবেন, প্রথম সার্চ দ্রুত হলেও প্রায়ই ভুল প্যাসেজ উপরে রাখে। রিরেংকার হলো দ্বিতীয় একটা AI ধাপ, যে প্রশ্নটা আর প্রতিটা প্যাসেজ একসাথে পড়ে নতুন করে সাজায়।
ধাপ ১
নতুন চ্যাটএই প্রম্পটটা কপি করুন, চ্যাটে পেস্ট করে Enter চাপুন। প্রম্পটের অর্ডারের সাথে নতুন অর্ডার মেলান।
প্রম্পট তুমি একটা reranker। নিচের query আর 6টা passage পড়ো। passage-গুলো সাজানো আছে keyword search যে order-এ দিয়েছে সেভাবে। প্রতিটা passage-কে query-র জন্য 0 থেকে 10 পর্যন্ত একটা relevance score দাও, সাথে 1 বাক্যে কারণ। তারপর নতুন order দাও, সেরা আগে। Query: কোর্সটা খারাপ হলে কি আমি টাকা ফেরত পাব? 1. আমাদের কোর্সের review খুব ভালো, আর শেখার পেছনে তুমি যে টাকা খরচ করো তা সার্থক হয়। 2. কোর্সের website বন্ধ থাকলে 24 ঘণ্টার মধ্যে আমাদের জানাও। 3. Refund policy: সন্তুষ্ট না হলে 30 দিনের মধ্যে refund চাইতে পারবে। আমরা পুরো টাকা তোমার card-এ ফেরত দিই। 4. কোর্সের দামে tax ধরা আছে। অন্য bank থেকে টাকা পাঠাতে 2 দিন লাগে। 5. Refund পেতে receipt বা order number লাগে। 6. খারাপ আবহাওয়ায় সামনাসামনি ক্লাস দেরি হতে পারে।
আপনি দেখবেন: ৩ নম্বর প্যাসেজ (রিফান্ড পলিসি) একদম উপরে চলে আসে। ৫ নম্বর মাঝারি স্কোর পায়। ১, ২, ৪, আর ৬ কম স্কোর পায়।
উদাহরণ উত্তর
1. Score 2। কোর্সের প্রশংসা আছে, কিন্তু refund-এর কথা নেই। 2. Score 1। এটা website-এর সমস্যা নিয়ে। 3. Score 10। এখানে বলা আছে 30 দিনে পুরো refund পাওয়া যায়। 4. Score 2। এটা দাম আর bank transfer নিয়ে। 5. Score 6। এটা refund নিয়ে, কিন্তু শুধু কী লাগবে সেটুকু বলে। 6. Score 0। এটা আবহাওয়া নিয়ে। নতুন order: 3, 5, 1, 4, 2, 6
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
নতুন চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। এখানে একই লিস্টের শুধু টপ ২ প্যাসেজ আছে।
প্রম্পট তুমি একটা reranker। নিচের query আর 2টা passage পড়ো। এগুলো প্রথম search-এর top 2 result। প্রতিটা passage-কে query-র জন্য 0 থেকে 10 পর্যন্ত একটা relevance score দাও, সাথে 1 বাক্যে কারণ। তারপর বলো এই 2টা passage দিয়ে query-র উত্তর দেওয়া যায় কি না। Query: কোর্সটা খারাপ হলে কি আমি টাকা ফেরত পাব? 1. আমাদের কোর্সের review খুব ভালো, আর শেখার পেছনে তুমি যে টাকা খরচ করো তা সার্থক হয়। 2. কোর্সের website বন্ধ থাকলে 24 ঘণ্টার মধ্যে আমাদের জানাও।
আপনি দেখবেন: দুটো স্কোরই কম, আর AI বলে এই প্যাসেজগুলো যথেষ্ট নয়। রিফান্ড পলিসি লিস্টে নেই।
উদাহরণ উত্তর
1. Score 2। কোর্সের প্রশংসা আছে, কিন্তু টাকা ফেরত পাওয়ার কথা নেই। 2. Score 1। এটা website-এর সমস্যা নিয়ে। এই 2টা passage যথেষ্ট নয়। কোনোটাই refund নিয়ে কথা বলে না।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
এইমাত্র কী হলো
প্রথম সার্চ মিলিয়েছে আলাদা আলাদা শব্দ, যেমন টাকা আর কোর্স। রিরেংকার প্রশ্ন আর প্রতিটা প্যাসেজ একসাথে পড়ে, তাই সে বোঝে ৩ নম্বর প্যাসেজই আসল উত্তর। কিন্তু রিরেংকার শুধু যে প্যাসেজ পায়, সেগুলোই নতুন করে সাজাতে পারে। ধাপ ২-এ সঠিক প্যাসেজ লিস্টে ছিল না, তাই কোনো রিরেংকার তাকে খুঁজে পেত না।
কাজ শেষ, যখন আপনার কাছে ৩ নম্বর প্যাসেজ উপরে থাকা একটা নতুন অর্ডার আছে, আর ২টা প্যাসেজের লিস্টের জন্য একটা কম-স্কোর উত্তর আছে।
নিজেকে যাচাই করুনরিরেংকার কী করতে পারে, আর কী পারে না?উত্তর দেখুন
সে যে প্যাসেজ পায়, সেগুলো নতুন করে সাজিয়ে সেরাটা উপরে আনতে পারে, কারণ সে প্রশ্ন আর প্যাসেজ একসাথে পড়ে। প্রথম সার্চ যে প্যাসেজ ফেরত দেয়নি, তাকে সে খুঁজে বের করতে পারে না।
আরেকটু কঠিন করে দেখুন
নতুন চ্যাটে ধাপ ১-এর প্রম্পটের শেষে সপ্তম একটা প্যাসেজ যোগ করুন: ৭. টাকা ফেরতের অনুরোধ billing বিভাগ দেখে। AI তাকে কোথায় বসায়? তার স্কোর কি ন্যায্য?
ভিডিও দেখুন · ৩টি
মেটাডেটা ফিল্টারিং আর স্ট্রাকচার্ড রিট্রিভাল
আসল প্রশ্নে অর্থের সাথে শর্তও মেশানো থাকে: “২০২৫ সালে এন্টারপ্রাইজ কাস্টমারদের রিফান্ড পলিসি” বা “2000-এর পরের, রেটিং 8-এর বেশি সায়েন্স-ফিকশন সিনেমা”। শুধু ভেক্টর সিমিলারিটি দিয়ে year > 2000 জোর করে খাটানো যায় না। তাই প্রোডাকশন রিট্রিভাল প্রতিটি চাঙ্কে মেটাডেটা জুড়ে তার উপর ফিল্টার করে। আর গোনা বা মোট বের করার প্রশ্ন হলে কাজটা ডেটাবেসকে দিয়ে দেয়। কঠিন দিকটা হলো, ফিল্টার অ্যাপ্রক্সিমেট নিয়ারেস্ট-নেইবার (ANN) ইনডেক্সের সাথে ভালোভাবে কাজ করে না, আর প্রতিটি ভেক্টর ডেটাবেস এটা আলাদা ভাবে সামলায়।[৫০][৫১]
অনুশীলন · ১টি টাস্ক
যেকোনো ফ্রি AI চ্যাট খুলুন: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবেন
- নতুন চ্যাট মানে একদম নতুন কথোপকথন, আগের কোনো হিস্ট্রি নেই। ChatGPT, Claude বা Gemini-তে New chat-এ ক্লিক করুন। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই চ্যাট মানে: যে চ্যাট খোলা আছে, সেখানেই লিখতে থাকুন। আগে যা পাঠিয়েছেন, AI তা মনে রাখে।
- প্রম্পট ব্যবহার করতে: কপি-তে ক্লিক করুন, চ্যাটের মেসেজ বক্সে ক্লিক করুন, পেস্ট করুন (Ctrl+V, বা ফোনে চেপে ধরে রাখুন), তারপর Enter চাপুন।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। আপনার উত্তর উদাহরণের সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখুন।
- শুধু বানানো ডেটা ব্যবহার করুন। নিজের বা অন্যের ব্যক্তিগত তথ্য চ্যাটে পেস্ট করবেন না।
টাস্ক ১
সার্চের আগে নাকি পরে ফিল্টার করবেন
এটা কেন দরকার
আপনি যখন মুভি বা প্রোডাক্ট সার্চ বানাবেন, ইউজার নিয়ম দেবে, যেমন ২০০০ সালের পরে বা ৫০০ টাকার কম। আপনার সিস্টেম নিয়মটা ভুল সময়ে লাগালে কিছুই ফেরত আসতে পারে না, আর পেছনের AI অনুমান করা শুরু করতে পারে।
ধাপ ১
নতুন চ্যাটএই প্রম্পটটা কপি করুন, চ্যাটে পেস্ট করে Enter চাপুন। প্রতিটা মেথড কয়টা রেজাল্ট দেয়, লিখে রাখুন।
প্রম্পট একটা movie search "space survival" query-র জন্য প্রতিটা movie-কে similarity score দিয়েছে। user চায় 2000 সালের পরের সেরা 3টা movie। Catalog (title, year, rating, similarity): Orbit Lost, 1998, 8.4, 0.92 Red Dust, 1995, 7.9, 0.90 Moon Base Zero, 1999, 8.1, 0.88 Silent Ship, 2004, 8.6, 0.80 Star Harbor, 2012, 7.2, 0.78 Lunar Mail, 2016, 8.3, 0.75 Deep Orbit, 2019, 8.8, 0.70 Dust Planet, 2001, 6.9, 0.66 Method 1 (post-filter): আগে similarity অনুযায়ী top 3 নাও, তারপর যে movie-র year 2000 বা তার আগের, সেগুলো বাদ দাও। Method 2 (pre-filter): আগে year 2000 বা তার আগের movie বাদ দাও, তারপর similarity অনুযায়ী top 3 নাও। প্রতিটা method-এর result দেখাও। প্রতিটা method কয়টা result দেয়, বলো।
আপনি দেখবেন: মেথড ১ দেয় ০টা রেজাল্ট। মেথড ২ দেয় ৩টা রেজাল্ট: Silent Ship, Star Harbor, আর Lunar Mail।
উদাহরণ উত্তর
Method 1 (post-filter): similarity অনুযায়ী top 3 হলো Orbit Lost (1998), Red Dust (1995), আর Moon Base Zero (1999)। তিনটাই 2000 বা তার আগের, তাই সবগুলো বাদ গেছে। Result: 0টা movie। Method 2 (pre-filter): 2000-এর পরের movie: Silent Ship (0.80), Star Harbor (0.78), Lunar Mail (0.75), Deep Orbit (0.70), Dust Planet (0.66)। top 3 হলো Silent Ship, Star Harbor, আর Lunar Mail। Result: 3টা movie।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
একই চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। সার্চ রেজাল্ট খালি থাকলে বট কী বলে, দেখুন।
প্রম্পট এখন তুমি support bot। শুধু Method 1-এর result দেখে user-কে উত্তর দাও। কোনো result না থাকলে user-কে কী হয়েছে বলো। User: 2000 সালের পরে বানানো একটা space survival movie recommend করো।
আপনি দেখবেন: ভালো বট বলে সে কোনো মিল-থাকা মুভি পায়নি। দুর্বল বট নিজের মনে থাকা একটা মুভির নাম বলে দিতে পারে, যেটা বানানো উত্তর।
উদাহরণ উত্তর
দুঃখিত, search-এ 2000 সালের পরের কোনো space survival movie পাওয়া যায়নি, তাই এখন কোনোটা recommend করতে পারছি না।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৩
একই চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। উত্তরটা ধাপ ২-এর সাথে মেলান।
প্রম্পট একই user-কে আবার উত্তর দাও, এবার শুধু Method 2-এর result দেখে।
আপনি দেখবেন: একটা আসল রেকমেন্ডেশন, সম্ভবত Silent Ship (২০০৪), কারণ তার সিমিলারিটি সবচেয়ে বেশি।
উদাহরণ উত্তর
আমি Silent Ship (2004) recommend করছি। এটা space survival-এর সবচেয়ে কাছের মিল, আর এর rating 8.6।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
এইমাত্র কী হলো
পোস্ট-ফিল্টার আগে সার্চ করে, পরে আইটেম বাদ দেয়। সেরা মিলগুলো নিয়মে না টিকলে কিছুই থাকে না। প্রি-ফিল্টার আগে আইটেম বাদ দেয়, তারপর টপ ৩ নেয়, তাই ৩টা থাকলে ৩টাই পাওয়া যায়। খালি লিস্ট বিপজ্জনক, কারণ পেছনের AI অনুমান করতে পারে। রেজাল্ট কত ভালো দেখাচ্ছে শুধু তা নয়, কয়টা এসেছে সেটাও দেখুন।
কাজ শেষ, যখন আপনার কাছে মেথড 1-এর ০টা রেজাল্ট, মেথড 2-এর ৩টা রেজাল্ট, আর বটের দুটো আলাদা উত্তর আছে।
নিজেকে যাচাই করুনRAG সিস্টেমে পোস্ট-ফিল্টার থেকে খালি রেজাল্ট লিস্ট কেন বিপজ্জনক?উত্তর দেখুন
সার্চ ফিল্টারের আগেই টপ আইটেম নিয়ে নিয়েছে, তাই যেগুলো নিয়ম মানে সেগুলো লিস্টে কখনো ছিলই না। তখন AI-এর হাতে কিছু থাকে না, আর সে অনুমান করতে পারে। প্রি-ফিল্টার নিয়ম-মানা আইটেম ফেরত দেয়, তাই শুধু স্কোর নয়, রেজাল্টের সংখ্যাও দেখুন।
আরেকটু কঠিন করে দেখুন
AI-কে বলুন: এই অনুরোধটাকে query আর filter key সহ JSON করুন: 2000-এর পরের sci-fi movie, rating 8-এর বেশি। কোন অংশ কুয়েরিতে যায়, আর কোনটা ফিল্টারে?
ভিডিও দেখুন · ২টি
Qdrant Essentials | Combine Search & Filtering with Qdrant Filterable HNSW Qdrant Vector Search
Qdrant Payload Filtering in Python: Search Vectors with Metadata Conditions Professor Py: AI Foundations
GraphRAG আর নলেজ গ্রাফ দিয়ে শক্তিবৃদ্ধি
ভেক্টর সার্চ এমন চাঙ্ক ফেরত দেয় যা দেখতে কুয়েরির মতো। কিন্তু “এই ডেটাসেটের মূল বিষয়গুলো কী?” — এমন “গ্লোবাল” প্রশ্নে সে হোঁচট খায়, কারণ কোনো একটি চাঙ্কই এর উত্তর দেয় না। Microsoft-এর GraphRAG এটাকে কুয়েরি-কেন্দ্রিক সামারাইজেশন হিসেবে দেখে: একটি LLM এন্টিটি নলেজ গ্রাফ বানায়, সম্পর্কিত এন্টিটির দলগুলোর (কমিউনিটি) সারসংক্ষেপ আগে থেকেই তৈরি করে রাখে, আর কুয়েরির সময় সেই সারসংক্ষেপ থেকে আংশিক উত্তর জুড়ে দেয়।[৩৭] হালকা ধরনগুলো (LightRAG[৩৮], HippoRAG[৩৯]) আর গ্রাফ-ডেটাবেস টুলিং (Neo4j[৪০]) একই ফাঁক পূরণ করতে চায়, তবে খরচের হিসাব আলাদা।
অনুশীলন · ১টি টাস্ক
যেকোনো ফ্রি AI চ্যাট খুলুন: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবেন
- নতুন চ্যাট মানে একদম নতুন কথোপকথন, আগের কোনো হিস্ট্রি নেই। ChatGPT, Claude বা Gemini-তে New chat-এ ক্লিক করুন। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই চ্যাট মানে: যে চ্যাট খোলা আছে, সেখানেই লিখতে থাকুন। আগে যা পাঠিয়েছেন, AI তা মনে রাখে।
- প্রম্পট ব্যবহার করতে: কপি-তে ক্লিক করুন, চ্যাটের মেসেজ বক্সে ক্লিক করুন, পেস্ট করুন (Ctrl+V, বা ফোনে চেপে ধরে রাখুন), তারপর Enter চাপুন।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। আপনার উত্তর উদাহরণের সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখুন।
- শুধু বানানো ডেটা ব্যবহার করুন। নিজের বা অন্যের ব্যক্তিগত তথ্য চ্যাটে পেস্ট করবেন না।
টাস্ক ১
AI দিয়ে একটা ছোট নলেজ গ্রাফ বানান
এটা কেন দরকার
আপনি যখন অনেক ডকুমেন্টের উপর একটা চ্যাটবট বানাবেন, ইউজার বড় প্রশ্ন করবে, যেমন প্রধান ঝুঁকিগুলো কী? কোনো একটা টেক্সটের টুকরা এর উত্তর দেয় না। GraphRAG আগে তথ্যের একটা ম্যাপ বানায়, তারপর ম্যাপ থেকে উত্তর দেয়।
ধাপ ১
নতুন চ্যাটএই প্রম্পটটা কপি করুন, চ্যাটে পেস্ট করে Enter চাপুন। লাইনগুলো পড়ুন। একই জিনিস দুই নামে এসেছে কি না দেখুন।
প্রম্পট text-টা পড়ো, আর জিনিসগুলো (entity) এবং তারা কীভাবে যুক্ত (relation) তার তালিকা করো। শুধু এই format-এর লাইন লেখো: Entity A -> relation -> Entity B। আর কিছু লিখবে না। Text: Dhaka Plant motor housing বানায়। Chattogram Plant gearbox বানায়। Delta Steel, Dhaka Plant-কে steel সরবরাহ করে। Delta Steel Ltd.-ও Chattogram Plant-কে steel সরবরাহ করে। Orion Bolts শুধু Dhaka Plant-কে bolt সরবরাহ করে। Nova Paints, Chattogram Plant-কে paint সরবরাহ করে। দুটো plant-ই বাস নির্মাতা Rahim Motors-কে মাল পাঠায়। জুন মাসে Delta Steel-এ strike হওয়ায় দুই plant-এই সরবরাহ দেরি হয়। Orion Bolts-এর মালিক Karim Holdings, যারা Nova Paints-এরও মালিক।
আপনি দেখবেন: প্রায় ১০ থেকে ১২টা লাইন, যেমন Delta Steel -> supplies steel to -> Dhaka Plant। কিছু মডেল Delta Steel আর Delta Steel Ltd.-কে দুটো আলাদা জিনিস ধরে। সেটা ভুল।
উদাহরণ উত্তর
Dhaka Plant -> makes -> motor housing Chattogram Plant -> makes -> gearbox Delta Steel -> supplies steel to -> Dhaka Plant Delta Steel -> supplies steel to -> Chattogram Plant Orion Bolts -> supplies bolts to -> Dhaka Plant Nova Paints -> supplies paint to -> Chattogram Plant Dhaka Plant -> ships to -> Rahim Motors Chattogram Plant -> ships to -> Rahim Motors Delta Steel -> had a strike in -> June Karim Holdings -> owns -> Orion Bolts Karim Holdings -> owns -> Nova Paints
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
একই চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। কয়টা কমিউনিটি পেলেন, লিখে রাখুন।
প্রম্পট এবার entity-গুলোকে ঘনিষ্ঠভাবে যুক্ত community-তে ভাগ করো। প্রতিটা community-কে একটা নাম আর এক বাক্যের summary দাও। শুধু community-গুলো লেখো।
আপনি দেখবেন: ২ থেকে ৪টা গ্রুপ, প্রতিটার একটা নাম আর এক বাক্য, যেমন Delta Steel সরবরাহ আর Karim Holdings group।
উদাহরণ উত্তর
1. Delta Steel সরবরাহ: Delta Steel দুই plant-কেই steel দেয়, আর জুনের strike দুটোকেই দেরি করিয়েছে। 2. Karim Holdings group: Karim Holdings মালিক Orion Bolts আর Nova Paints-এর, যারা bolt আর paint সরবরাহ করে। 3. Plant আর customer: Dhaka Plant আর Chattogram Plant দুটোই Rahim Motors-কে মাল পাঠায়।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৩
একই চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। উত্তরটা ধাপ ১-এর টেক্সটের সাথে মেলান।
প্রম্পট শুধু উপরের community summary-গুলো দেখে 3 বাক্যে এই প্রশ্নের উত্তর দাও: এই পুরো supplier network-এর প্রধান ঝুঁকি আর theme কী কী?
আপনি দেখবেন: theme নিয়ে ৩ বাক্য, যেমন দুই প্ল্যান্টের জন্য একটাই স্টিল সাপ্লায়ার, দুই সাপ্লায়ারের একটাই মালিক, আর একটাই কাস্টমার। টেক্সটের কোনো একটা বাক্য এটা বলে না।
উদাহরণ উত্তর
Network-টা Delta Steel-এর উপর নির্ভরশীল, যে দুই plant-কেই steel দেয়, আর তার জুনের strike দুটোকেই দেরি করিয়েছে। Karim Holdings আরও দুই supplier-এর মালিক, তাই সেখানে একটা সমস্যা হলে bolt আর paint দুটোই আটকে যেতে পারে। দুই plant-ই একটা customer Rahim Motors-কে মাল পাঠায়, তাই দেরি তার কাছেও পৌঁছায়।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
এইমাত্র কী হলো
আপনি হাতে হাতে GraphRAG-এর প্রথম দুটো অংশ বানিয়েছেন। প্রথমে AI টেক্সট থেকে একটা নলেজ গ্রাফ বানিয়েছে (জিনিস আর তাদের মধ্যে যোগ)। তারপর গ্রাফটাকে কমিউনিটি-তে ভাগ করে প্রতিটার সারসংক্ষেপ লিখেছে। শেষ উত্তরটা এসেছে এই সারসংক্ষেপ থেকে, তাই সে এমন থিম বলতে পেরেছে যা কোনো একটা বাক্যে নেই।
কাজ শেষ, যখন আপনার কাছে যোগের একটা তালিকা, ২ থেকে ৪টা কমিউনিটি সারসংক্ষেপ, আর পুরো নেটওয়ার্ক নিয়ে ৩ বাক্যের একটা উত্তর আছে।
নিজেকে যাচাই করুনইউজার প্রশ্ন করার আগেই GraphRAG কেন কমিউনিটি সারসংক্ষেপ লেখে, আর এর খরচ কী?উত্তর দেখুন
প্রধান থিম কী? ধরনের বড় প্রশ্নের জন্য টেক্সটের একটা মাত্র টুকরা মেলে না, তাই GraphRAG আগেই যুক্ত গ্রুপগুলোর সারসংক্ষেপ লিখে রাখে, আর সেখান থেকে উত্তর দেয়। খরচ হলো অনেক AI কল, আর গ্রাফে ভুল (নাম বাদ পড়া বা গুলিয়ে ফেলা) পরের সব উত্তর খারাপ করে।
আরেকটু কঠিন করে দেখুন
নতুন চ্যাট খুলুন। ধাপ ১-এর টেক্সটের শুধু প্রথম দুটো বাক্য পাঠান, আর ধাপ ৩-এর প্রশ্নটা করুন। উত্তর কতটা খারাপ হলো, আর কেন?
ভিডিও দেখুন · ২টি
From Local to Global: A Graph RAG Approach to Query-Focused Summarization Natural Language Processing Interest Group
RAG with a Neo4j Knowledge Graph: How it Works and How to Set It Up Neo4j
ডকুমেন্ট পার্সিং পাইপলাইন: Unstructured, LlamaParse, Docling-এর পরিচয়
RAG সিস্টেম ততটাই ভালো, ইনডেক্স করা টেক্সট যতটা ভালো। অথচ কোম্পানির বেশিরভাগ জ্ঞান থাকে PDF, স্ক্যান, স্লাইড ডেক আর স্প্রেডশিটে, পরিষ্কার স্ট্রিংয়ে নয়। পার্সিং পাইপলাইন এই ফাইলগুলোকে স্ট্রাকচার্ড এলিমেন্টে (হেডিং, প্যারাগ্রাফ, টেবিল, ফিগার) বদলায়, তারপর Markdown বা JSON-এ, যাতে চাঙ্কার সেটাকে বুদ্ধি করে ভাঙতে পারে। তিনটি বহুল ব্যবহৃত অপশন: Docling (IBM Research, MIT লাইসেন্স)[৫৮], ওপেন-সোর্স Unstructured পার্টিশনার[৫৯] আর LlamaIndex-এর LlamaParse[৬০]।
অনুশীলন · ১টি টাস্ক
যেকোনো ফ্রি AI চ্যাট খুলুন: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবেন
- নতুন চ্যাট মানে একদম নতুন কথোপকথন, আগের কোনো হিস্ট্রি নেই। ChatGPT, Claude বা Gemini-তে New chat-এ ক্লিক করুন। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই চ্যাট মানে: যে চ্যাট খোলা আছে, সেখানেই লিখতে থাকুন। আগে যা পাঠিয়েছেন, AI তা মনে রাখে।
- প্রম্পট ব্যবহার করতে: কপি-তে ক্লিক করুন, চ্যাটের মেসেজ বক্সে ক্লিক করুন, পেস্ট করুন (Ctrl+V, বা ফোনে চেপে ধরে রাখুন), তারপর Enter চাপুন।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। আপনার উত্তর উদাহরণের সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখুন।
- শুধু বানানো ডেটা ব্যবহার করুন। নিজের বা অন্যের ব্যক্তিগত তথ্য চ্যাটে পেস্ট করবেন না।
টাস্ক ১
AI-কে ভাঙা পাতার টেক্সট দিন
এটা কেন দরকার
আপনি যখন PDF-এর উপর একটা চ্যাটবট বানাবেন, একটা পার্সার আগে প্রতিটা পাতাকে টেক্সট বানায়। পার্সার যদি দুই কলাম মিশিয়ে ফেলে, বা স্ক্যানে কোনো টেক্সট না পায়, চ্যাটবট ভাঙা টেক্সট নিয়ে কাজ করবে।
ধাপ ১
নতুন চ্যাটএই প্রম্পটটা কপি করুন, চ্যাটে পেস্ট করে Enter চাপুন। টেক্সটটা এসেছে দুই কলামের একটা পাতা থেকে, যেটা লাইন ধরে ধরে পড়া হয়েছে। উত্তরটা লিখে রাখুন। এই প্রম্পটটা ইংরেজিতে রাখা হয়েছে, কারণ এখানে ইংরেজি টেক্সটের শব্দের ক্রম নিয়ে পরীক্ষা হচ্ছে।
প্রম্পট Answer the question using ONLY the extracted page text below. If you are not sure, say what is unclear. Extracted text: "Basic costs 8 USD a Basic allows 3 month. Pro costs 25 users. Pro allows USD a month. The free 20 users. Extra users trial lasts 14 days. cost 2 USD each." Question: How many users does the Pro plan allow, and how much does an extra user cost?
আপনি দেখবেন: ভালো মডেল বের করে ফেলে ২০ users আর ২ USD, বা বলে টেক্সটটা গোলমেলে। দুর্বল মডেল ভুল করে ২৫ users বলতে পারে।
উদাহরণ উত্তর
The text looks mixed up. It seems to say Pro allows 20 users, and extra users cost 2 USD each. I am not fully sure, because the words are out of order.
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
নতুন চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। এটা একই পাতা, শুধু কলামগুলো ঠিক অর্ডারে পড়া হয়েছে। এই প্রম্পটটা ইংরেজিতে রাখা হয়েছে, কারণ এখানে ইংরেজি টেক্সটের শব্দের ক্রম নিয়ে পরীক্ষা হচ্ছে।
প্রম্পট Answer the question using ONLY the extracted page text below. If you are not sure, say what is unclear. Extracted text (Markdown): "## Pricing Basic costs 8 USD a month. Pro costs 25 USD a month. The free trial lasts 14 days. ## Limits Basic allows 3 users. Pro allows 20 users. Extra users cost 2 USD each." Question: How many users does the Pro plan allow, and how much does an extra user cost?
আপনি দেখবেন: পরিষ্কার উত্তর: ২০ users আর ২ USD। হেডিং থাকায় কাঠামো সহজ।
উদাহরণ উত্তর
The Pro plan allows 20 users. An extra user costs 2 USD.
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৩
নতুন চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। এটা একটা স্ক্যান করা পাতা, যেখানে পার্সার কোনো টেক্সট পায়নি। এই প্রম্পটটা ইংরেজিতে রাখা হয়েছে, কারণ এখানে ইংরেজি টেক্সটের শব্দের ক্রম নিয়ে পরীক্ষা হচ্ছে।
প্রম্পট Answer the question using ONLY the extracted page text below. If you are not sure, say what is unclear. Extracted text: "" Question: How many users does the Pro plan allow, and how much does an extra user cost?
আপনি দেখবেন: ভালো মডেল বলে টেক্সট খালি, তাই সে উত্তর দিতে পারছে না।
উদাহরণ উত্তর
The extracted text is empty, so I cannot answer. Please give me the page text.
আপনার উত্তরের ভাষা একটু আলাদা হবে।
এইমাত্র কী হলো
চ্যাটবট শুধু সেই টেক্সট ব্যবহার করতে পারে যা পার্সার (যে টুল ফাইল পড়ে) তাকে দেয়। কলাম মিশে গেলে শব্দগুলো ভুল অর্ডারে আসে, তাই AI ভুল সংখ্যা বলতে পারে। স্ক্যানে পার্সার কিছুই পায় না, যদি না সে OCR (ছবি থেকে লেখা পড়ার টুল) ব্যবহার করে। ব্যবহারের আগে সবসময় পার্সারের আউটপুট দেখে নিন।
কাজ শেষ, যখন আপনার কাছে ৩টা উত্তর আছে: একটা সতর্ক বা ভুল, একটা ঠিক (২০ users, ২ USD), আর একটা টেক্সট নেই।
নিজেকে যাচাই করুনRAG সিস্টেমের টেক্সটকে চাঙ্কে কাটার আগে কেন পার্সারের আউটপুট খালি বা অদ্ভুত কি না দেখা উচিত?উত্তর দেখুন
সিস্টেম শুধু সেটাই জমা রাখতে পারে যা পার্সার পেয়েছে। স্ক্যান খালি টেক্সট দেয়, আর সাধারণ রিডার কলাম মিশিয়ে ফেলতে পারে, তাই খারাপ পার্স পরে খারাপ উত্তর দেয়। খালি আউটপুট আছে কি না দেখুন, OCR বা লেআউট বোঝে এমন পার্সার দিয়ে আবার চালান, আর মাল্টি-কলাম পাতা চোখে দেখে নিন।
আরেকটু কঠিন করে দেখুন
নতুন চ্যাটে ধাপ ১-এর ভাঙা টেক্সট নিজে ৩ সারির একটা Markdown টেবিল হিসেবে লিখুন (Basic, Pro, Free trial)। একই প্রশ্ন করুন। কাঠামো কতটা সাহায্য করল?
মাল্টিমোডাল RAG: ছবি, টেবিল, চার্ট
উত্তর কোনো চার্ট, স্ক্যান করা টেবিল বা স্লাইডে থাকলে শুধু টেক্সট-ভিত্তিক RAG অন্ধ হয়ে যায়। মাল্টিমোডাল RAG এই জিনিসগুলোকে খোঁজার যোগ্য রাখে। তিনটি বড় নকশা আছে: সবকিছুকে টেক্সট বানিয়ে ফেলা, ছবিকে সরাসরি একটি শেয়ার্ড ভেক্টর স্পেসে এমবেড করা, অথবা লেট ইন্টারঅ্যাকশন দিয়ে পাতার ছবি রিট্রিভ করে ভিশন-সক্ষম মডেলকে পড়তে দেওয়া।[৬৩][৬২]
অনুশীলন · ১টি টাস্ক
যেকোনো ফ্রি AI চ্যাট খুলুন: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবেন
- নতুন চ্যাট মানে একদম নতুন কথোপকথন, আগের কোনো হিস্ট্রি নেই। ChatGPT, Claude বা Gemini-তে New chat-এ ক্লিক করুন। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই চ্যাট মানে: যে চ্যাট খোলা আছে, সেখানেই লিখতে থাকুন। আগে যা পাঠিয়েছেন, AI তা মনে রাখে।
- প্রম্পট ব্যবহার করতে: কপি-তে ক্লিক করুন, চ্যাটের মেসেজ বক্সে ক্লিক করুন, পেস্ট করুন (Ctrl+V, বা ফোনে চেপে ধরে রাখুন), তারপর Enter চাপুন।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। আপনার উত্তর উদাহরণের সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখুন।
- শুধু বানানো ডেটা ব্যবহার করুন। নিজের বা অন্যের ব্যক্তিগত তথ্য চ্যাটে পেস্ট করবেন না।
টাস্ক ১
সারসংক্ষেপ দিয়ে সার্চ করুন, কাঁচা টেবিল থেকে উত্তর দিন
এটা কেন দরকার
আপনি যখন টেবিল আর চার্টওয়ালা রিপোর্টের উপর একটা চ্যাটবট বানাবেন, সার্চের জন্য প্রায়ই প্রতিটা টেবিলের একটা ছোট AI সারসংক্ষেপ রাখবেন। সারসংক্ষেপ সেই একটা ডিটেইলস বাদ দিয়ে দিতে পারে, যেটা ইউজার জিজ্ঞেস করে।
ধাপ ১
নতুন চ্যাটএই প্রম্পটটা কপি করুন, চ্যাটে পেস্ট করে Enter চাপুন। তারপর AI যে একটা বাক্য লেখে, সেটা কপি করুন।
প্রম্পট এই table-টার একটা মাত্র বাক্যে summary লেখো, যাতে সেটা search index-এ রাখা যায়। শুধু বাক্যটা লেখো। Table: শাখা অনুযায়ী ত্রৈমাসিক revenue (লাখ টাকা) Branch | Q1 | Q2 | Q3 | Q4 Dhaka | 42 | 45 | 51 | 60 Chattogram | 30 | 28 | 35 | 41 Sylhet | 18 | 22 | 19 | 27 Rajshahi | 15 | 16 | 21 | 24
আপনি দেখবেন: সাধারণ ট্রেন্ড নিয়ে একটা বাক্য, যেমন Dhaka এগিয়ে আর রেভিনিউ বাড়ছে। সম্ভবত কোনো কমার কথা থাকবে না।
উদাহরণ উত্তর
Dhaka প্রতিটা quarter-এ সবচেয়ে বেশি revenue করেছে, 42 থেকে বেড়ে 60 লাখ টাকা হয়েছে, আর চারটা branch-ই বছরজুড়ে বেড়েছে।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
নতুন চ্যাটএই প্রম্পটটা কপি করুন। ব্র্যাকেটের ভেতরের লেখাটা ধাপ ১-এর সারসংক্ষেপ দিয়ে বদলান। পেস্ট করে Enter চাপুন।
প্রম্পট শুধু নিচের text দেখে প্রশ্নের উত্তর দাও। text-এ উত্তর না থাকলে লেখো "text-এ উত্তর নেই"। Text: "[এখানে তোমার summary paste করো]" প্রশ্ন: কোন branch-এর revenue Q2 থেকে Q3-তে কমেছে, আর কত লাখ টাকা কমেছে?
আপনি দেখবেন: বেশিরভাগ চ্যাট লেখে টেক্সটে উত্তর নেই। কয়েকটা একটা ব্রাঞ্চ অনুমান করে বসে, যেটা আরও খারাপ।
উদাহরণ উত্তর
text-এ উত্তর নেই
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৩
নতুন চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। এবার AI সারসংক্ষেপ না পেয়ে কাঁচা টেবিল পাচ্ছে।
প্রম্পট শুধু নিচের table দেখে প্রশ্নের উত্তর দাও। table-এ উত্তর না থাকলে লেখো "table-এ উত্তর নেই"। Table: শাখা অনুযায়ী ত্রৈমাসিক revenue (লাখ টাকা) Branch | Q1 | Q2 | Q3 | Q4 Dhaka | 42 | 45 | 51 | 60 Chattogram | 30 | 28 | 35 | 41 Sylhet | 18 | 22 | 19 | 27 Rajshahi | 15 | 16 | 21 | 24 প্রশ্ন: কোন branch-এর revenue Q2 থেকে Q3-তে কমেছে, আর কত লাখ টাকা কমেছে?
আপনি দেখবেন: Sylhet, ৩ লাখ টাকা কমেছে (২২ থেকে ১৯)। শুধু এই ব্রাঞ্চেই রেভিনিউ কমেছে।
উদাহরণ উত্তর
Sylhet। Q2-তে এর revenue ছিল 22 লাখ টাকা, Q3-তে হয়েছে 19 লাখ টাকা, মানে 3 লাখ টাকা কমেছে।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
এইমাত্র কী হলো
সার্চ শুধু সেটাই দেখে যা সারসংক্ষেপে লেখা আছে। সারসংক্ষেপ সাধারণ ট্রেন্ড নিয়ে কথা বলেছে, তাই Sylhet-এর ছোট কমাটা হারিয়ে গেছে, আর AI-এর কাছে উত্তর দেওয়ার মতো কিছু ছিল না। সমাধান হলো সারসংক্ষেপ দিয়ে সার্চ করা, কিন্তু উত্তর লেখার সময় AI-কে কাঁচা টেবিল দেওয়া। তখন সে প্রতিটা সংখ্যা পড়তে পারে।
কাজ শেষ, যখন আপনার কাছে দুটো উত্তর আছে: সারসংক্ষেপ থেকে টেক্সটে উত্তর নেই, আর টেবিল থেকে Sylhet, ৩ লাখ টাকা।
নিজেকে যাচাই করুনসারসংক্ষেপ দিয়ে সার্চ করলেও কেন কাঁচা টেবিল বা ছবির লিংক রেখে দিতে হয়?উত্তর দেখুন
সার্চ শুধু সেটাই খুঁজে পায় যা সারসংক্ষেপে আছে, তাই বাদ পড়া ডিটেইলস খুঁজে পাওয়া বা তার উত্তর দেওয়া যায় না। কাঁচা টেবিল উত্তর দেওয়ার ধাপে গেলে AI ঠিক সংখ্যাগুলো পড়তে পারে।
আরেকটু কঠিন করে দেখুন
আপনার চ্যাটে ছবি আপলোড করা গেলে টেবিলের একটা স্ক্রিনশট নিয়ে ছবি দিয়ে একই প্রশ্ন করুন। উত্তরটা ধাপ ৩-এর সাথে মেলান। ছবি আপলোড করা না গেলে এটা বাদ দিন।
ভিডিও দেখুন · ৩টি
কুইজ
কী শিখলেন যাচাই করুন। ৫টি প্রশ্ন।
১. BM25 আর ভেক্টর সার্চের ফল মেলাতে রেসিপ্রোকাল র্যাংক ফিউশন (RRF) কী ব্যবহার করে?
২. প্রথম ধাপের রিট্রিভাল যে সঠিক প্যাসেজ আনেনি, রিরেংকার সেটি ফিরিয়ে আনতে পারে।
৩. লেট চাঙ্কিং কোথায় টেক্সট কাটে?
৪. ANN সার্চের পরে কড়া মেটাডেটা ফিল্টার বসালে (পোস্ট-ফিল্টারিং) কী সমস্যা হতে পারে?
৫. Microsoft GraphRAG সম্পর্কিত এন্টিটির কমিউনিটিগুলোর সারসংক্ষেপ আগেই তৈরি করে রাখে, তাই ডেটাসেটের প্রধান থিমের মতো গ্লোবাল প্রশ্নের উত্তর দিতে পারে।
মেলাতে সব প্রশ্নের উত্তর দিন।
তথ্যসূত্র
সোর্স
সব সাইটেশন মূল পেপার (arXiv), ভেন্ডরের ডক্স (OpenAI, Anthropic, Google) বা অফিশিয়াল টিম ব্লগে যায়। প্রতিটি পাতা খুলে সাইটেশনের তথ্য যাচাই করা হয়েছে।
- [1]Günther, Mohr, Williams, Wang, Xiao, "Late Chunking: Contextual Chunk Embeddings Using Long-Context Embedding Models" — arXiv, 2024
- [2]Anthropic, "Introducing Contextual Retrieval" — Anthropic, 2024
- [3]LangChain, "RecursiveCharacterTextSplitter" — LangChain documentation
- [4]LlamaIndex, "Node Parser Modules" — LlamaIndex documentation
- [5]LangChain, "MarkdownHeaderTextSplitter" — LangChain documentation
- [6]Malkov, Yashunin, "Efficient and robust approximate nearest neighbor search using Hierarchical Navigable Small World graphs" — arXiv, 2016 (final 2018)
- [7]Weaviate, "Vector index" — Weaviate documentation
- [8]Andrew Kane, "pgvector" — GitHub README
- [9]Milvus, "Index types" — Milvus documentation
- [10]Qdrant, "qdrant/qdrant" — GitHub repository
- [11]Qdrant, "Overview" — Qdrant documentation
- [12]Pinecone, "Get started: overview" — Pinecone documentation
- [13]Weaviate, "Hybrid search" — Weaviate documentation
- [14]Chroma, "Introduction" — Chroma documentation
- [15]Milvus, "Overview" — Milvus documentation
- [16]Cormack, Clarke, Buettcher, "Reciprocal rank fusion outperforms Condorcet and individual rank learning methods" — SIGIR 2009, pp. 758-759
- [17]Robertson, Zaragoza, "The Probabilistic Relevance Framework: BM25 and Beyond" — Foundations and Trends in Information Retrieval, 2009
- [18]SPLADE (sparse neural retrieval with term expansion) — paper summary, Hugging Face Papers (arXiv 2107.05720)
- [19]Elastic, "Reciprocal rank fusion" — Elasticsearch Reference 8.17
- [20]OpenSearch, "Introducing reciprocal rank fusion for hybrid search" — OpenSearch blog, 2025
- [21]Qdrant, "Hybrid queries" — Qdrant documentation
- [22]Pinecone, "Hybrid search" — Pinecone documentation
- [23]Gao, Ma, Lin, Callan, "Precise Zero-Shot Dense Retrieval without Relevance Labels" (HyDE) — arXiv 2212.10496, 2022
- [24]Zheng, Mishra, Chen et al., "Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models" — Google DeepMind, ICLR 2024
- [25]Wang, Yang, Wei, "Query2doc: Query Expansion with Large Language Models" — Microsoft Research, EMNLP 2023
- [26]Rackauckas, "RAG-Fusion: a New Take on Retrieval-Augmented Generation" — arXiv 2402.03367, 2024
- [27]Ma, Gong, He, Zhao, Duan, "Query Rewriting for Retrieval-Augmented Large Language Models" — EMNLP 2023
- [28]Yang et al., "HotpotQA: A Dataset for Diverse, Explainable Multi-hop Question Answering" — EMNLP 2018
- [29]Khot, Sabharwal, Trivedi, Balasubramanian, "Interleaving Retrieval with Chain-of-Thought Reasoning for Knowledge-Intensive Multi-Step Questions" — 2022/2023
- [30]Yao et al., "ReAct: Synergizing Reasoning and Acting in Language Models" — 2022
- [31]Asai, Wu, Wang, Sil, Hajishirzi, "Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection" — 2023
- [32]Yan, Gu, Zhu, Ling, "Corrective Retrieval Augmented Generation" — 2024
- [33]Jeong, Baek, Cho, Hwang, Park, "Adaptive-RAG: Learning to Adapt Retrieval-Augmented LLMs through Question Complexity" — NAACL 2024
- [34]Anthropic, "Building effective agents" — Anthropic Engineering, 2024
- [35]OpenAI, "File search" — OpenAI API guides
- [36]Anthropic, "How we built our multi-agent research system" — Anthropic Engineering, 2025
- [37]Edge et al., "From Local to Global: A Graph RAG Approach to Query-Focused Summarization" — Microsoft, 2024
- [38]Guo, Xia, Yu, Ao, Huang, "LightRAG: Simple and Fast Retrieval-Augmented Generation" — 2024
- [39]Gutierrez, Shu, Gu, Yasunaga, Su, "HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models" — 2024
- [40]Neo4j, "neo4j-graphrag Python package" — Neo4j documentation
- [41]Microsoft, "GraphRAG" — documentation
- [42]Microsoft, "graphrag" — GitHub repository README
- [43]Sentence-Transformers, "Cross-Encoder Applications" — SBERT documentation
- [44]Cohere, "Rerank API reference (v2)" — Cohere documentation
- [45]Voyage AI, "Rerankers" — Voyage AI documentation
- [46]BAAI, "bge-reranker-v2-m3" — Hugging Face model card
- [47]BAAI, "Reranking" tutorial — BGE documentation
- [48]Khattab & Zaharia, "ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT" — SIGIR, 2020 (arXiv 2004.12832)
- [49]Cohere, "Rerank v3.5" — Cohere changelog
- [50]Qdrant, "Vector search filtering" — Qdrant documentation
- [51]Weaviate, "Filtering" — Weaviate documentation (concepts)
- [52]Qdrant, "Pre-filtering vs post-filtering" — Qdrant blog
- [53]Elastic, "Filtered kNN search" — Elasticsearch documentation
- [54]Pinecone, "Filter by metadata" — Pinecone documentation
- [55]Elastic Search Labs, "Self-querying retrievers with Elasticsearch" — Elastic blog
- [56]Yu et al., "Spider: A Large-Scale Human-Labeled Dataset for Complex and Cross-Domain Semantic Parsing and Text-to-SQL Task" — EMNLP, 2018
- [57]Patel et al., "ACORN: Performant and Predicate-Agnostic Search Over Vector Embeddings and Structured Data" — arXiv 2403.04871, 2024
- [58]Auer, Lysak, Nassar, Dolfi et al., "Docling Technical Report" — arXiv, 2024
- [59]Unstructured, "Partitioning" (open-source core functionality) — Unstructured docs
- [60]LlamaIndex, "LlamaParse: Parse" — LlamaIndex developer docs
- [61]IBM Research / LF AI & Data, "Docling documentation" — docling-project, 2025
- [62]Faysse et al., "ColPali: Efficient Document Retrieval with Vision Language Models" — ICLR 2025 (arXiv 2024)
- [63]LangChain, "Multi-modal RAG (semi-structured)" — LangChain blog
- [64]Radford et al., "Learning Transferable Visual Models From Natural Language Supervision (CLIP)" — arXiv, 2021
- [65]Voyage AI, "Multimodal embeddings" — Voyage AI docs
- [66]Cohere, "Embed" — Cohere docs
- [67]Jina AI, "Embeddings" — Jina AI
- [68]Guo, Ren, Xu, Zhang, Huang, "RAG-Anything" — arXiv, 2025