وبلاگ

خط لولهٔ کامل 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، و تحویل به انسان. این مقالهٔ پایانی همهٔ این لایه‌ها را در یک پروژهٔ گام‌به‌گام کنار هم می‌گذارد تا بتوانید همین حالا، روی مستندات واقعی شرکت […]

توکن چیست و چرا هزینه و محدودیت از آن می‌آید

هر بار که پیامی برای یک مدل زبانی مثل GPT یا Claude می‌فرستید، پیش از هر پردازشی متن شما به واحدهای کوچک‌تری به نام «توکن» شکسته می‌شود. مدل نه حروف را می‌بیند و نه کلمات را به شکلی که ما می‌بینیم؛ او فقط دنباله‌ای از توکن‌ها را پردازش می‌کند. همین واحد ساده، هم پایهٔ محاسبهٔ […]

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

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

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

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

انتخاب مدل Embedding و تلهٔ ناسازگاری ابعاد

یکی از رایج‌ترین اشتباه‌هایی که تیم‌ها هنگام ساخت یک سیستم RAG مرتکب می‌شوند، چیزی نیست که در کد دیده شود؛ در تصمیمی نامرئی اتفاق می‌افتد که هفته‌ها بعد خودش را به‌شکل نتایج جست‌وجوی بی‌معنا نشان می‌دهد: تغییر مدل embedding بعد از این‌که ایندکس با مدل قبلی ساخته شده. این مقاله همان تله را دقیق باز […]