unixscript / laravel-iran-ai-chatbot
A comprehensive AI Chatbot package for Laravel with GapGPT, AvalAI, OpenAI, Gemini, Local models, RAG, Auth handling and UI settings.
Package info
github.com/ho33ein74/laravel-iran-ai-chatbot
pkg:composer/unixscript/laravel-iran-ai-chatbot
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.2
- illuminate/http: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
یک پکیج جامع و حرفهای برای راهاندازی دستیار هوشمند و چتبات در پروژههای لاراول. این پکیج از سرویسدهندههای مختلف (AvalAI، GapGPT، OpenAI، Gemini و مدلهای Local)، جستجوی آفلاین در دیتابیس (RAG بومی)، گاردریلهای امنیتی و اتصال به پیامرسانها پشتیبانی میکند.
ویژگیها
- پشتیبانی از چندین درایور هوش مصنوعی: AvalAI, GapGPT, OpenAI, Gemini و مدلهای لوکال.
- ظاهر کاربری (UI) پیشرفته: کامپوننت Vue.js آماده با قابلیت شخصیسازی نحوه نمایش (پاپآپ، سایدبار، تمامصفحه) و چیدمان (حبابی، زیرهم) توسط ادمین سایت.
- قابلیت Inline (تگ HTML): استفاده از چتبات در یک صفحه خاص به عنوان فرم درونی به جای ویجت شناور.
- جستجوی مستقیم دیتابیس (Direct DB Search): پیدا کردن محصولات و مقالات سایت و پیشنهاد آنها به کاربر بدون نیاز به مصرف توکن API.
- تشخیص هوشمند کاربر لاگین شده: امکان تنظیم الزامی بودن لاگین برای استفاده از چتبات و اتصال خودکار سشنها به
user_id. - تنظیمات داینامیک: مدیریت تنظیمات از طریق دیتابیس (جدول
ai_settings) بدون نیاز به تغییر فایل کد.
۱. نصب و راهاندازی
ابتدا پکیج را در پروژه خود کپی کرده و دستور زیر را اجرا کنید:
composer require unixscript/laravel-iran-ai-chatbot
سپس تنظیمات و مایگریشنها را منتشر کنید:
php artisan vendor:publish --tag=iran-ai-chatbot-assets php artisan migrate
۲. تنظیمات و پیکربندی
شما میتوانید تنظیمات اولیه را در فایل config/iran-ai-chatbot.php یا فایل .env وارد کنید.
برای تغییرات داینامیک در پنل ادمین خودتان، میتوانید مقادیر را مستقیماً در جدول ai_settings ذخیره کنید (مقادیر دیتابیس همیشه اولویت دارند).
اتصال به دیتابیس (پیشنهاد محصولات)
برای اینکه ربات بتواند در محصولات شما جستجو کند، فایل config/iran-ai-chatbot.php را باز کنید و بخش searchable_models را به شکل زیر مقداردهی کنید:
'models_search' => [ 'max_results' => 4, 'searchable_models' => [ \App\Models\Product::class => [ 'columns' => ['title', 'description'], // ستونهایی که باید در آنها سرچ شود 'label' => 'محصول' // نامی که به کاربر نمایش داده میشود ], ] ],
۳. نحوه استفاده در ظاهر سایت (فرانتاند)
این پکیج یک کامپوننت Vue.js قدرتمند ارائه میدهد. فایل resources/js/vendor/iran-ai-chatbot/ChatWidget.vue را در app.js رجیستر کنید:
import ChatWidget from './vendor/iran-ai-chatbot/ChatWidget.vue'; app.component('chat-widget', ChatWidget);
حالت اول: ویجت شناور (گوشه سایت)
کافیست تگ زیر را در فوتر قالب خود قرار دهید:
<chat-widget></chat-widget>
حالت دوم: باکس اختصاصی (Inline Mode)
اگر میخواهید چتبات را در یک برگه (مثلاً "پشتیبانی هوشمند") نمایش دهید:
<div class="col-md-8 mx-auto"> <chat-widget :inline="true"></chat-widget> </div>
۴. مدیریت استایل و رفتار توسط ادمین
ادمین سایت میتواند با درج رکوردهای زیر در جدول ai_settings (مثلاً از طریق پنل ادمین شما)، رفتار بات را برای تمام کاربران تغییر دهد:
- اجباری کردن لاگین:
key:features.auth_required|value:trueیاfalse
- تغییر حالت نمایش (ویجت):
key:ui.default_display_mode|value:popupیاsidebarیاfullscreen
- تغییر چیدمان پیامها:
key:ui.default_layout|value:bubble(حبابی) یاstacked(زیرهم)
- تغییر نام ربات:
key:ui.bot_name|value:پشتیبان آنلاین من
- تغییر درایور هوش مصنوعی:
key:default_driver|value:avalaiیاgapgptیاopenaiیاgeminiیاlocal_offline
۵. مدیریت کاربران (Auth)
سیستم به صورت خودکار با سیستم Auth لاراول یکپارچه است:
- اگر لاگین اجباری نباشد و کاربر مهمان باشد: چتها با کوکی
session_idمدیریت میشوند. - اگر کاربر لاگین باشد: چتها با
user_idاختصاصی او در دیتابیس ثبت میشوند تا بعداً قابل پیگیری باشند.