[{"data":1,"prerenderedAt":45},["ShallowReactive",2],{"insight-fa-company-knowledge-ai-assistant":3},{"html":4,"toc":5,"faq":27,"faqTitle":43,"words":44},"\u003Cp>ChatGPT خیلی چیزها می‌داند، ولی هیچ‌چیز درباره‌ی شرکت شما نمی‌داند. قوانین مرخصی، مشخصات محصولات، روال ثبت سفارش، قراردادهای استاندارد و صدها سند دیگری که جواب سؤال‌های روزمره‌ی تیم و مشتری در آن‌هاست، برای ChatGPT وجود ندارند.\u003C/p>\n\u003Cp>خبر خوب این است که می‌شود دستیاری ساخت که درست مثل ChatGPT حرف بزند، ولی جوابش را \u003Cstrong>فقط از روی اسناد خود شما\u003C/strong> بدهد و بگوید هر جواب را از کدام سند برداشته. اسم فنی این روش \u003Cstrong>RAG\u003C/strong> است. این مقاله بدون اصطلاحات پیچیده توضیح می‌دهد چطور کار می‌کند و ساختنش چه مراحلی دارد.\u003C/p>\n\u003Ch2 id=\"section-1\">RAG به زبان ساده\u003C/h2>\n\u003Cp>یک کتابدار باهوش را تصور کنید. وقتی سؤالی می‌پرسید، از حفظ جواب نمی‌دهد. اول می‌رود چند صفحه‌ی مرتبط را از قفسه‌ها پیدا می‌کند، آن‌ها را می‌خواند و بعد جواب شما را بر اساس همان صفحه‌ها می‌دهد، به‌علاوه‌ی اسم کتاب و شماره‌ی صفحه.\u003C/p>\n\u003Cp>RAG دقیقاً همین کار را می‌کند. پشت صحنه پنج مرحله دارد:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>خرد کردن.\u003C/strong> اسناد شما به قطعه‌های کوچک، مثلاً چند پاراگراف، تقسیم می‌شوند.\u003C/li>\n\u003Cli>\u003Cstrong>تبدیل به بردار.\u003C/strong> هر قطعه به یک «اثرانگشت معنایی» تبدیل می‌شود: فهرستی از عددها که معنای آن قطعه را نشان می‌دهد. قطعه‌هایی که معنای نزدیک دارند، عددهای نزدیکی می‌گیرند، حتی اگر کلمه‌هایشان فرق کند.\u003C/li>\n\u003Cli>\u003Cstrong>ذخیره.\u003C/strong> این اثرانگشت‌ها در یک پایگاه‌داده‌ی برداری نگه داشته می‌شوند.\u003C/li>\n\u003Cli>\u003Cstrong>جستجو.\u003C/strong> وقتی کاربر سؤال می‌پرسد، سؤال هم به اثرانگشت تبدیل می‌شود و نزدیک‌ترین قطعه‌ها پیدا می‌شوند.\u003C/li>\n\u003Cli>\u003Cstrong>جواب.\u003C/strong> مدل زبانی فقط همان قطعه‌ها را می‌بیند و جوابش را بر اساس آن‌ها می‌نویسد، با ذکر منبع.\u003C/li>\n\u003C/ol>\n\u003Cp>نتیجه دستیاری است که وقتی سند جدیدی اضافه می‌کنید، از همان لحظه آن را «می‌داند»، بدون این‌که مدل دوباره آموزش ببیند. در \u003Ca href=\"/fa/projects/custom-rag-assistants\">دستیارهای RAG سفارشی\u003C/a> که ساختیم، ادمین فایل بارگذاری می‌کند یا آدرس یک سایت را می‌دهد و در چند ثانیه محتوایش قابل جستجو می‌شود.\u003C/p>\n\u003Ch2 id=\"section-2\">چه اسنادی مناسب‌اند؟\u003C/h2>\n\u003Cp>RAG برای متن‌هایی که جواب سؤال در آن‌هاست بهترین عملکرد را دارد:\u003C/p>\n\u003Cul>\n\u003Cli>آیین‌نامه‌ها، دستورالعمل‌ها و روال‌های داخلی\u003C/li>\n\u003Cli>راهنمای محصول و مشخصات فنی\u003C/li>\n\u003Cli>سؤال‌های متداول و پاسخ‌های قبلی پشتیبانی\u003C/li>\n\u003Cli>صفحه‌های سایت و مقاله‌های آموزشی\u003C/li>\n\u003Cli>قراردادهای استاندارد و شرایط خدمات\u003C/li>\n\u003C/ul>\n\u003Cp>برای داده‌های جدولی مثل فهرست قیمت، موجودی انبار یا گزارش فروش، بهتر است دستیار به‌جای جستجو در متن، \u003Cstrong>مستقیم از پایگاه داده یا API بخواند\u003C/strong>. عددها در متن زود کهنه می‌شوند، و مدل زبانی در جمع و مقایسه‌ی عددهای یک جدول بزرگ قابل اعتماد نیست.\u003C/p>\n\u003Ch2 id=\"section-3\">RAG یا آموزش دادن مدل؟\u003C/h2>\n\u003Cp>خیلی‌ها فکر می‌کنند برای این‌که هوش مصنوعی شرکت‌شان را بشناسد، باید مدل را «آموزش» بدهند (Fine-tuning). در بیشتر موارد این لازم نیست و حتی انتخاب اشتباهی است:\u003C/p>\n\u003Cdiv class=\"prose__table\">\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>\u003C/th>\u003Cth>RAG\u003C/th>\u003Cth>آموزش دادن مدل\u003C/th>\u003C/tr>\u003C/thead>\u003Ctbody>\u003Ctr>\u003Ctd>مناسب برای\u003C/td>\u003Ctd>دانش: اطلاعات، قوانین، مشخصات\u003C/td>\u003Ctd>سبک: لحن، قالب خروجی، کارهای تکراری خاص\u003C/td>\u003C/tr>\n\u003Ctr>\u003Ctd>اضافه کردن اطلاعات جدید\u003C/td>\u003Ctd>فوری، با بارگذاری سند\u003C/td>\u003Ctd>نیاز به آموزش دوباره\u003C/td>\u003C/tr>\n\u003Ctr>\u003Ctd>ذکر منبع\u003C/td>\u003Ctd>بله\u003C/td>\u003Ctd>نه\u003C/td>\u003C/tr>\n\u003Ctr>\u003Ctd>هزینه‌ی راه‌اندازی\u003C/td>\u003Ctd>پایین‌تر\u003C/td>\u003Ctd>بالاتر\u003C/td>\u003C/tr>\u003C/tbody>\u003C/table>\u003C/div>\n\u003Cp>قاعده‌ی کلی: اگر می‌خواهید دستیار \u003Cstrong>چیزهایی بداند\u003C/strong>، RAG. اگر می‌خواهید \u003Cstrong>طور خاصی رفتار کند\u003C/strong>، شاید آموزش مدل، که معمولاً با دستورهای خوب هم به دست می‌آید.\u003C/p>\n\u003Ch2 id=\"section-4\">نکته‌های مخصوص زبان فارسی\u003C/h2>\n\u003Cp>دستیار فارسی چند جزئیات دارد که اگر رعایت نشود، کیفیت جستجو به‌طرز محسوسی پایین می‌آید:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>یکسان‌سازی حروف.\u003C/strong> «ي» و «ی» عربی و فارسی، یا «ك» و «ک»، از نظر رایانه دو حرف متفاوت‌اند. سندی که با صفحه‌کلید عربی تایپ شده، در جستجوی کلمه‌ی فارسی پیدا نمی‌شود، مگر این‌که قبل از پردازش، همه‌ی متن‌ها یکسان‌سازی شوند.\u003C/li>\n\u003Cli>\u003Cstrong>نیم‌فاصله.\u003C/strong> «می‌شود» با نیم‌فاصله، «میشود» بدون فاصله و «می شود» با فاصله باید یکی دیده شوند.\u003C/li>\n\u003Cli>\u003Cstrong>اعداد.\u003C/strong> اعداد فارسی، عربی و انگلیسی را به یک شکل تبدیل کنید، مخصوصاً در کدها و شماره‌ها.\u003C/li>\n\u003Cli>\u003Cstrong>انتخاب مدل بردارساز.\u003C/strong> مدل‌های چندزبانه‌ی امروزی فارسی را خوب می‌فهمند، ولی قبل از انتخاب، چند مدل را با سؤال‌های واقعی خودتان آزمایش کنید.\u003C/li>\n\u003Cli>\u003Cstrong>اسناد اسکن‌شده.\u003C/strong> اگر بخشی از اسناد شما عکس یا PDF اسکن‌شده است، اول باید متن‌شان با OCR فارسی استخراج شود و کیفیتش بررسی شود.\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"section-5\">امنیت و حریم خصوصی\u003C/h2>\n\u003Cp>قبل از شروع، به این سؤال‌ها جواب روشن داشته باشید:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>چه کسی به چه چیزی دسترسی دارد؟\u003C/strong> اگر اسناد مدیریتی و عمومی در یک پایگاه دانش‌اند، دستیار باید بر اساس نقش کاربر فقط اسناد مجاز را جستجو کند. این کنترل باید در لایه‌ی جستجو باشد، نه فقط در دستور مدل.\u003C/li>\n\u003Cli>\u003Cstrong>اسناد کجا پردازش می‌شوند؟\u003C/strong> وقتی از API مدل‌های خارجی استفاده می‌کنید، قطعه‌های مرتبط برای ارائه‌دهنده‌ی مدل فرستاده می‌شوند. برای اسناد حساس، می‌شود از مدل‌های متن‌باز روی سرور خودتان استفاده کرد، با این هزینه که کیفیت فارسی‌شان باید دقیق‌تر سنجیده شود.\u003C/li>\n\u003Cli>\u003Cstrong>دسترسی از ایران.\u003C/strong> OpenAI، Anthropic و Google درخواست از IP ایران را نمی‌پذیرند و پرداخت‌شان کارت بین‌المللی می‌خواهد. این را از اول در معماری و بودجه ببینید.\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"section-6\">کیفیت دستیار را چطور بسنجیم؟\u003C/h2>\n\u003Cp>«به نظر خوب می‌آید» معیار نیست. قبل از انتشار:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>مجموعه‌ی آزمون بسازید.\u003C/strong> پنجاه تا صد سؤال واقعی، با جواب درست و سند مرجع هر کدام.\u003C/li>\n\u003Cli>\u003Cstrong>منبع را چک کنید.\u003C/strong> جواب درست با منبع اشتباه، یعنی دستیار شانسی درست گفته.\u003C/li>\n\u003Cli>\u003Cstrong>سؤال‌های بی‌جواب هم بپرسید.\u003C/strong> دستیار خوب وقتی جواب در اسناد نیست، می‌گوید نمی‌دانم.\u003C/li>\n\u003Cli>\u003Cstrong>بعد از هر تغییر، آزمون را تکرار کنید\u003C/strong>، چه اسناد عوض شده باشند، چه دستورها، چه مدل.\u003C/li>\n\u003C/ol>\n\u003Ch2 id=\"section-7\">مراحل یک پروژه\u003C/h2>\n\u003Col>\n\u003Cli>\u003Cstrong>انتخاب یک کاربرد مشخص.\u003C/strong> «دستیار برای همه‌چیز» شروع خوبی نیست. «دستیار پشتیبانی محصول» یا «دستیار منابع انسانی برای کارکنان» شروع خوبی است.\u003C/li>\n\u003Cli>\u003Cstrong>جمع و پاک‌سازی اسناد.\u003C/strong> نسخه‌های قدیمی و متناقض را کنار بگذارید. دستیار به اندازه‌ی اسنادش خوب است.\u003C/li>\n\u003Cli>\u003Cstrong>ساخت پایگاه دانش و دستیار.\u003C/strong>\u003C/li>\n\u003Cli>\u003Cstrong>آزمون با سؤال‌های واقعی\u003C/strong> و اصلاح.\u003C/li>\n\u003Cli>\u003Cstrong>انتشار برای یک گروه کوچک\u003C/strong>، و بعد برای همه.\u003C/li>\n\u003Cli>\u003Cstrong>نگهداری\u003C/strong>: اضافه کردن اسناد جدید و بررسی سؤال‌هایی که بی‌جواب مانده‌اند.\u003C/li>\n\u003C/ol>\n\u003Cp>همین دستیار را می‌شود پشت یک \u003Ca href=\"/fa/insights/telegram-ai-support-bot\">ربات تلگرام پشتیبانی\u003C/a>، یک پنجره‌ی چت در سایت یا یک ابزار داخلی برای کارکنان قرار داد. برای شروع، صفحه‌ی \u003Ca href=\"/fa/services/ai-automation\">خدمات اتوماسیون و هوش مصنوعی\u003C/a> را ببینید.\u003C/p>\n",[6,9,12,15,18,21,24],{"id":7,"text":8},"section-1","RAG به زبان ساده",{"id":10,"text":11},"section-2","چه اسنادی مناسب‌اند؟",{"id":13,"text":14},"section-3","RAG یا آموزش دادن مدل؟",{"id":16,"text":17},"section-4","نکته‌های مخصوص زبان فارسی",{"id":19,"text":20},"section-5","امنیت و حریم خصوصی",{"id":22,"text":23},"section-6","کیفیت دستیار را چطور بسنجیم؟",{"id":25,"text":26},"section-7","مراحل یک پروژه",[28,31,34,37,40],{"q":29,"a":30},"RAG چیست؟","روشی است که در آن، دستیار هوش مصنوعی قبل از جواب دادن، قطعه‌های مرتبط را از اسناد شما پیدا می‌کند و جوابش را فقط بر اساس همان قطعه‌ها می‌نویسد. نتیجه، جواب‌هایی است که به منبع مشخصی برمی‌گردند.",{"q":32,"a":33},"آیا اسناد ما برای آموزش مدل‌های عمومی استفاده می‌شود؟","در استفاده از API تجاری ارائه‌دهنده‌های اصلی، طبق شرایط فعلی‌شان داده‌ی ارسالی به‌طور پیش‌فرض برای آموزش مدل استفاده نمی‌شود. ولی شرایط هر ارائه‌دهنده را بخوانید، و برای اسناد خیلی حساس، مدل را روی سرور خودتان اجرا کنید.",{"q":35,"a":36},"دستیار می‌تواند از فایل‌های اکسل هم جواب بدهد؟","برای جدول‌های کوچک بله. ولی برای داده‌ی عددی حجیم مثل موجودی یا گزارش فروش، بهتر است دستیار مستقیم از پایگاه داده یا API بخواند تا جواب دقیق و به‌روز باشد.",{"q":38,"a":39},"با اضافه شدن سند جدید، باید دستیار را از نو بسازیم؟","نه. سند جدید خرد و ایندکس می‌شود و از همان لحظه در جستجو قابل استفاده است. نیازی به آموزش دوباره‌ی مدل نیست.",{"q":41,"a":42},"دستیار چقدر جواب اشتباه می‌دهد؟","به کیفیت اسناد، یکسان‌سازی متن و دستورها بستگی دارد. با محدود کردن دستیار به منابع، الزام به ذکر منبع و آزمون منظم، جواب‌های اشتباه به حداقل می‌رسد، و وقتی جواب در اسناد نیست، دستیار باید بگوید نمی‌داند.","سؤال‌های رایج",1055,1790485335171]