جستجو در PDF با FileSearch لاراول — بدون هیچ منطق جستجویی!
خلاصهٔ کاملتر
اگه تا حالا با سری آموزشی «Ship AI with Laravel» همراه بودی، میدونی که در اپیزود پنجم یه سیستم semantic search از صفر با embeddings و pgvector ساختیم. اون روش برای مقالات FAQ و جایی که کنترل کامل روی داده میخوای عالیه. ولی وقتی مستنداتت صدها صفحه پالیسی، دفترچه محصول، یا PDFهای حجیم باشن، داستان فرق میکنه.
در این اپیزود رویکرد دومی رو بررسی میکنیم: آپلود اسناد به سرویس هوش مصنوعی و استفاده از ابزار FileSearch که خود SDK در اختیارمون میذاره. تمام کار chunking، embedding و نگهداری vectorها رو سرویسدهنده انجام میده. از طرف ما هیچ ریاضی similarity لازم نیست — فقط آپلود کن و بعد جستجو کن.
یه دستور Artisan ساخته میشه که یک vector store با نام SupportAI Knowledge Base میسازه و پنج فایل مارکداون رو درش آپلود میکنه؛ از جمله پالیسی مرجوعی، حملونقل، سوالات پرتکرار صورتحساب، امنیت حساب کاربری و گارانتی محصول. شناسه این store در فایل .env و config اپ ذخیره میشه تا بقیه بخشهای برنامه بتونن بهش دسترسی داشته باشن.
بعد از اون، ابزار FileSearch به ایجنت ساپورت اضافه میشه تا کنار KnowledgeSearch از اپیزود قبلی قرار بگیره. دستورالعمل ایجنت هم بهروز میشه تا بدونه کِی از کدوم ابزار استفاده کنه:
- KnowledgeSearch → سوالهای سریع و FAQگونه
- FileSearch → جستجوی عمیق در پالیسیها و مستندات کامل
در تست اول، یه سوال درباره اجناس آسیبدیده پرسیده میشه و ایجنت دقیقاً شرط ۴۸ ساعته گزارشدهی رو از داخل فایل پالیسی پیدا میکنه. در تست دوم، یه سوال ترکیبی با شماره سفارش و یه سوال پالیسی با هم پرسیده میشن؛ ایجنت هوشمندانه هم OrderLookup و هم FileSearch رو در یه پاسخ واحد بهکار میگیره.
یه نکته مهم برای وقتی میخوای این رو به production ببری: FileSearch توکنبر هست چون سرویسدهنده vectorها رو هاست میکنه و جستجو رو اجرا میکنه، بنابراین نیاز به اعتبار پرداختی (billing credits) داری.
اپیزود بعدی هم به ساخت رابط کاربری چت real-time با Livewire اختصاص داره تا مشتریان بتونن از طریق یه اینترفیس واقعی با ایجنت صحبت کنن.
نکات کلیدی:
FileSearchدر SDK لاراول اجازه میده بدون نوشتن منطق جستجو، کل PDF رو کوئری بزنی- سرویسدهنده هوش مصنوعی تمام کارهای chunking و embedding رو بهجای تو انجام میده
- شناسه vector store در
.envذخیره میشه تا در سراسر اپ قابل دسترسی باشه - ایجنت میتونه
KnowledgeSearchوFileSearchرو همزمان و در یه پاسخ استفاده کنه FileSearchبرای production نیاز به billing credits داره چون هاست vector از سمت سرویسدهندهست




