وبلاگ

Chunking؛ سند را چطور تکه کنیم که جواب درست دربیاید

خیلی از تیم‌هایی که برای اولین‌بار یک سیستم RAG راه‌اندازی می‌کنند، بیشترین وقت را صرف انتخاب مدل embedding یا وکتور دیتابیس می‌کنند، در حالی که کیفیت واقعی پاسخ نهایی اغلب به یک تصمیم ساده‌تر و کم‌توجه‌تر برمی‌گردد: سند را چطور تکه‌تکه کرده‌اید؟ به این فرایند Chunking می‌گویند، و انتخاب نادرست اندازهٔ chunk می‌تواند نتیجهٔ بهترین […]

متادیتا و فیلتر؛ جست‌وجوی محدود به یک مشتری یا یک دوره

فرض کنید یک چت‌بات تخصصی ساخته‌اید که هم‌زمان به چند مشتری یا چند سازمان سرویس می‌دهد و هر کدام مستندات محرمانهٔ خودشان را در همان وکتور دیتابیس مشترک دارند. اگر جست‌وجوی معنایی صرفاً بر اساس شباهت بردارها انجام شود، هیچ تضمینی وجود ندارد که سؤال یک مشتری، تصادفاً به یک chunk از دادهٔ مشتری دیگر […]

خط لولهٔ کامل RAG؛ از فایل خام تا جواب با ارجاع

وقتی می‌گویند «چت‌بات ما روی مستندات شرکت جواب می‌دهد»، پشت این جمله یک خط لولهٔ چندمرحله‌ای پنهان است که هر مرحله‌اش می‌تواند کل کیفیت جواب نهایی را خراب یا نجات دهد. RAG (Retrieval-Augmented Generation) فقط «وصل کردن مدل زبانی به یک پایگاه دانش» نیست؛ زنجیره‌ای از تبدیل‌هاست که فایل خام PDF یا Word را به […]

Reranking و Hybrid Search؛ وقتی جست‌وجوی برداری کافی نیست

خیلی از تیم‌هایی که برای اولین‌بار یک خط لولهٔ RAG می‌سازند، بعد از چند هفته با یک الگوی آزاردهنده مواجه می‌شوند: بات برای سؤال‌های کلی و مفهومی خوب جواب می‌دهد، اما وقتی کاربر شمارهٔ مدل دقیق یک محصول یا نام یک فیلد فنی را می‌پرسد، جواب اشتباه یا ناقص می‌دهد. این نشانهٔ کلاسیک محدودیت جست‌وجوی […]

اتصال بات به تلگرام، واتساپ و وب‌سایت

یک اشتباه رایج در پروژه‌های چت‌بات این است که موتور RAG را یک‌بار می‌سازند و بعد فرض می‌کنند اتصال آن به کانال‌های مختلف فقط یک کار API است. در عمل، تلگرام، واتساپ و ویجت وب سه محیط با قواعد متفاوت‌اند: محدودیت طول پیام فرق دارد، انتظار کاربر از سرعت پاسخ فرق دارد، و مکانیزم احراز […]

Tool Calling؛ وقتی بات باید کاری انجام دهد نه فقط جواب بدهد

یک بات که فقط از روی مستندات جواب می‌دهد، در نهایت به یک دیوار شیشه‌ای می‌رسد: کاربر می‌پرسد «سفارش من کجاست؟» یا «رمز عبورم را ریست کن»، و هیچ سندی جواب این سؤال را ندارد چون جواب یک عمل است، نه یک متن. اینجاست که Tool Calling وارد می‌شود؛ مکانیزمی که به مدل زبانی اجازه […]

تحویل به انسان؛ طراحی نقطهٔ خروج از گفت‌وگو

موفقیت یک بات پشتیبانی را نباید با «چند درصد سؤالات را خودش جواب داد» سنجید؛ باید با «چند بار به‌موقع تشخیص داد که نباید خودش جواب بدهد» سنجید. تحویل به انسان (human handoff) یکی از مهم‌ترین بخش‌های طراحی یک بات جدی است، و طنز ماجرا این‌جاست که اغلب تیم‌ها کل انرژی‌شان را روی بهبود جواب‌دهی […]

پروژهٔ پایانی: بات پشتیبانی روی مستندات شرکت خودتان

تا اینجای این مجموعه، هر مقاله یک لایه از ساخت یک بات پشتیبانی جدی را باز کرده: خط لولهٔ RAG، Hybrid Search و rerank، اتصال به کانال‌ها، Tool Calling، و تحویل به انسان. این مقالهٔ پایانی همهٔ این لایه‌ها را در یک پروژهٔ گام‌به‌گام کنار هم می‌گذارد تا بتوانید همین حالا، روی مستندات واقعی شرکت […]

Embedding به زبان ساده؛ تبدیل معنا به عدد

وقتی می‌گوییم یک مدل «معنای» یک جمله را می‌فهمد، منظور این نیست که مدل مثل انسان فکر می‌کند؛ منظور این است که آن جمله را به یک آرایه از اعداد تبدیل کرده که موقعیتش را در یک فضای ریاضی مشخص می‌کند. به این آرایه، Embedding یا بردار معنایی می‌گویند. این مفهوم قلب هر سیستمی است […]

شباهت کسینوسی؛ چرا دو جمله «نزدیک» می‌شوند

بعد از این‌که هر تکه از دادهٔ شما به یک بردار عددی (embedding) تبدیل شد، سیستم باید راهی داشته باشد تا بگوید کدام بردارها به بردار سؤال کاربر «نزدیک‌تر»اند. یکی از رایج‌ترین و پرکاربردترین معیارها برای این مقایسه، شباهت کسینوسی یا Cosine Similarity است. فهم این‌که این معیار دقیقاً چه چیزی را اندازه می‌گیرد — […]