میخوایم کتاب
هدیه بدیم برای ۵ نفر😊
به ۵ نفر اولی که اعلام حضور کنه
⚠️ لطفا اگر میدونید موضوعش چی هست و علاقه به مطالعه دارید اعلام کنید .
(تمام شد)
تست مامان
هدیه بدیم برای ۵ نفر
به ۵ نفر اولی که اعلام حضور کنه
(تمام شد)
Please open Telegram to view this post
VIEW IN TELEGRAM
Panic Dev
میخوایم کتاب تست مامان هدیه بدیم برای ۵ نفر 😊 به ۵ نفر اولی که اعلام حضور کنه ⚠️ لطفا اگر میدونید موضوعش چی هست و علاقه به مطالعه دارید اعلام کنید . (تمام شد)
۵ نفر رو هم من دونیت میکنم حسام 😅
(تمام شد)
(تمام شد)
🔥8😁3
ایشون آقای Deven هستن .
و این صفحه گیت هاب ایشون
همانجور که میبینید خودشون رو lead engineer و سنیور میدونند .
از صفحه گیت هاب و رزومه هم مشخصه که
استک و tools نمونده که شخم نزده باشه .
بعد ایشون یه مقاله نوشته به این صورت
Why I Regret Choosing Laravel for My Small-Scale High-Performance App
شما مقایسه رو ببینید تورو خدا .
یه سیستم SPA رو با چی و چه سطحی مقایسه میکنه .
بعد از معایب فیلامنت فرمودن
مثل آقا Deven نباشید .
و این صفحه گیت هاب ایشون
همانجور که میبینید خودشون رو lead engineer و سنیور میدونند .
از صفحه گیت هاب و رزومه هم مشخصه که
استک و tools نمونده که شخم نزده باشه .
بعد ایشون یه مقاله نوشته به این صورت
Why I Regret Choosing Laravel for My Small-Scale High-Performance App
شما مقایسه رو ببینید تورو خدا .
یه سیستم SPA رو با چی و چه سطحی مقایسه میکنه .
بعد از معایب فیلامنت فرمودن
Becomes limiting for complex UI or logic
What might be a 5-min job in React can take hours in Filament
مثل آقا Deven نباشید .
🤣8🥱5👍2👎2
🔄 ردگیری وضعیت و پیشرفت صفها در Laravel
اگه توی پروژههات با Laravel کار میکنی، احتمال زیاد با صفها (Queues) سروکار داشتی. صفها کمک میکنن کارهای سنگین رو ببری پشت صحنه تا تجربهی کاربر بهتر بشه.
اما فقط فرستادن job به صف کافی نیست — خیلی وقتها لازمه بدونی اون job دقیقاً در چه مرحلهایه یا اینکه اصلاً تموم شده یا نه.
🧠 چرا ردگیری job مهمه؟
وقتی یه job طولانی مثل وارد کردن هزاران رکورد، پردازش ویدیو یا ارسال ایمیلهای انبوه اجرا میشه، اگه کاربر هیچ اطلاعاتی از پیشرفت نداشته باشه، حس میکنه برنامه هنگ کرده یا مشکلی هست.
ردگیری پیشرفت job هم به کاربر اطمینان میده، هم به تیم توسعه برای رفع سریعتر مشکلات کمک میکنه.
📦برای این کار Laravel Job Status پکیج کاربردی هست.
با نصب این پکیج، میتونی خیلی راحت وضعیت و درصد پیشرفت هر job رو ذخیره و مانیتور کنی.
🛠 مراحل استفاده:
نصب پکیج:
داخل کلاس job، از trait مخصوص استفاده کن:
وقتی job رو dispatch میکنی، ID وضعیت رو ذخیره کن:
وضعیت رو هر موقع خواستی از دیتابیس بخون:
📌 نکته مهم:
اگه از
لینک مقاله
لینک گیتهاب
@panicdev
اگه توی پروژههات با Laravel کار میکنی، احتمال زیاد با صفها (Queues) سروکار داشتی. صفها کمک میکنن کارهای سنگین رو ببری پشت صحنه تا تجربهی کاربر بهتر بشه.
اما فقط فرستادن job به صف کافی نیست — خیلی وقتها لازمه بدونی اون job دقیقاً در چه مرحلهایه یا اینکه اصلاً تموم شده یا نه.
🧠 چرا ردگیری job مهمه؟
وقتی یه job طولانی مثل وارد کردن هزاران رکورد، پردازش ویدیو یا ارسال ایمیلهای انبوه اجرا میشه، اگه کاربر هیچ اطلاعاتی از پیشرفت نداشته باشه، حس میکنه برنامه هنگ کرده یا مشکلی هست.
ردگیری پیشرفت job هم به کاربر اطمینان میده، هم به تیم توسعه برای رفع سریعتر مشکلات کمک میکنه.
📦برای این کار Laravel Job Status پکیج کاربردی هست.
با نصب این پکیج، میتونی خیلی راحت وضعیت و درصد پیشرفت هر job رو ذخیره و مانیتور کنی.
🛠 مراحل استفاده:
نصب پکیج:
composer require imtigger/laravel-job-status
داخل کلاس job، از trait مخصوص استفاده کن:
use Imtigger\LaravelJobStatus\Trackable;
$this->prepareStatus(); // in __construct
$this->setProgressMax(10);
$this->setProgressNow($i);
$this->setOutput(['message' => 'Job completed']);
وقتی job رو dispatch میکنی، ID وضعیت رو ذخیره کن:
$job = new ExampleJob([]);
$this->dispatch($job);
$jobStatusId = $job->getJobStatusId();
وضعیت رو هر موقع خواستی از دیتابیس بخون:
$jobStatus = JobStatus::find($jobStatusId);
echo $jobStatus->progress_now . "/" . $jobStatus->progress_max;
echo $jobStatus->status; // مثل queued، executing، finished، failed
📌 نکته مهم:
اگه از
YourJob::dispatch() استفاده کنی، دیگه نمیتونی job object رو بگیری! پس دستی job رو بساز و dispatch کن.لینک مقاله
لینک گیتهاب
@panicdev
👍9❤🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
دوستان این ریپازیتوری آپدیت شد
از اونجایی که سوال خیلی ها بود که چطور دیتا از سمت فرانت میفرستیم به بک و ذخیره میکنیم یا عملیاتی روش انجام میدید .
سناریو چهارم این ریپازیتوری دقیقا همین کارو میکنه .
دیتای ادیتور رو به صورت ریل تایم روی وب سوکت میفرسته و لاراول بلافاصله اون رو ذخیره میکنه . برای فیلد denoscription یک یوزر
کارهایی که توی این سناریو انجام شده میتونید داخل این PR مشاهده کنید .
Add user denoscription update functionality with MessageReceived event and editor component
@panicdev
از اونجایی که سوال خیلی ها بود که چطور دیتا از سمت فرانت میفرستیم به بک و ذخیره میکنیم یا عملیاتی روش انجام میدید .
سناریو چهارم این ریپازیتوری دقیقا همین کارو میکنه .
دیتای ادیتور رو به صورت ریل تایم روی وب سوکت میفرسته و لاراول بلافاصله اون رو ذخیره میکنه . برای فیلد denoscription یک یوزر
کارهایی که توی این سناریو انجام شده میتونید داخل این PR مشاهده کنید .
Add user denoscription update functionality with MessageReceived event and editor component
@panicdev
1🔥5👍1
🚀 معرفی Laravel RagKit: دستیار هوشمند اسناد برای پروژههای لاراولی شما!
تا حالا دوست داشتید اپلیکیشن Laravel شما بتونه بهصورت هوشمند به سوالات درباره مستندات پاسخ بده؟
با Laravel RagKit آشنا بشید — ابزار قدرتمند RAG (تولید تقویتشده با بازیابی) مخصوص لاراول!
🎯 مشکلاتی که حل میکنه:
* دیگه نیازی به جستجوی دستی توی اسناد نیست
* پاسخهای دقیق و وابسته به متن
* پردازش خودکار مستندات
* تعامل به سبک چت با اسناد شما
💡 مثال ساده:
فرض کنید یه SaaS دارید با مستندات زیاد. به جای اینکه کاربرها توی مستندات سردرگم بشن:
1️⃣ مستندات رو آپلود کنید:
2️⃣ اجازه بدید کاربرها سوال بپرسن:
3️⃣ جوابهای هوشمند همراه با منبع دریافت کنید! 🎉
🔥 ویژگیهای مهم:
• پردازش Async
• پشتیبانی از چند ارائهدهنده
• گفتوگوهای چتی
• خلاصهسازی و FAQ اسناد
• یکپارچه با لاراول
⚙️ شروع سریع:
🔗 لینک پروژه:
laravel-ragkit
#Laravel #هوش_مصنوعی #RAG #PHP #مستندسازی
@panicdev
تا حالا دوست داشتید اپلیکیشن Laravel شما بتونه بهصورت هوشمند به سوالات درباره مستندات پاسخ بده؟
با Laravel RagKit آشنا بشید — ابزار قدرتمند RAG (تولید تقویتشده با بازیابی) مخصوص لاراول!
🎯 مشکلاتی که حل میکنه:
* دیگه نیازی به جستجوی دستی توی اسناد نیست
* پاسخهای دقیق و وابسته به متن
* پردازش خودکار مستندات
* تعامل به سبک چت با اسناد شما
💡 مثال ساده:
فرض کنید یه SaaS دارید با مستندات زیاد. به جای اینکه کاربرها توی مستندات سردرگم بشن:
1️⃣ مستندات رو آپلود کنید:
RagKit::uploadDocument(
$collection,
'user-guide.pdf',
[
'category' => 'documentation',
]
);
2️⃣ اجازه بدید کاربرها سوال بپرسن:
$answer = RagKit::ask(
$collection,
"چطور رمز عبورم رو ریست کنم؟",
null,
[]
);
3️⃣ جوابهای هوشمند همراه با منبع دریافت کنید! 🎉
🔥 ویژگیهای مهم:
• پردازش Async
• پشتیبانی از چند ارائهدهنده
• گفتوگوهای چتی
• خلاصهسازی و FAQ اسناد
• یکپارچه با لاراول
⚙️ شروع سریع:
composer require mohaphez/laravel-ragkit
🔗 لینک پروژه:
laravel-ragkit
#Laravel #هوش_مصنوعی #RAG #PHP #مستندسازی
@panicdev
13🔥11👌3❤🔥1👍1😁1
Panic Dev
🚀 معرفی Laravel RagKit: دستیار هوشمند اسناد برای پروژههای لاراولی شما! تا حالا دوست داشتید اپلیکیشن Laravel شما بتونه بهصورت هوشمند به سوالات درباره مستندات پاسخ بده؟ با Laravel RagKit آشنا بشید — ابزار قدرتمند RAG (تولید تقویتشده با بازیابی) مخصوص لاراول!…
فعلا از ChatBees پشتیبانی میکنه
اگر نظری داشتید یا مشکلی دید . ممنون میدم گزارش بدید .
یا از سرویس دهنده های دیگه استفاده کردید ، درایورش و به این پکیج هم اضافش کنید، خوب میشه😊
اگر نظری داشتید یا مشکلی دید . ممنون میدم گزارش بدید .
یا از سرویس دهنده های دیگه استفاده کردید ، درایورش و به این پکیج هم اضافش کنید، خوب میشه
Please open Telegram to view this post
VIEW IN TELEGRAM
www.chatbees.ai
AI Customer Support Automation - ChatBees
Use ChatBees AI Customer Support Automation to 10x the Speed of Customer Ticket Resolution & Boost Customer Satisfaction
خوب صحبت از Octane شد، گفتیم یه بررسی داشته باشیم تا در انتخاب استفاده ازش دقت لازم داشته باشید .
🚀 فرق بین Laravel یا Laravel Octane چیست ؟
باید گفت Laravel Octane یه نسخه جدا نیست، بلکه یه افزونهست که روی Laravel اجرا میشه و مخصوص PHP 8 به بالاست.
هدفش فقط یه چیزه: سرعت! ⚡️
⚙️ مقایسهی سرعت
در Laravel معمولی: حدود ۵۰۰ درخواست در ثانیه
در Laravel Octane: راحت بالای ۲۰۰۰ درخواست در ثانیه!
اونم با حداقل ۱۰ برابر عملکرد بهتر 🤯
🧠 چرا Octane اینقدر سریعتره؟
تو Laravel معمولی، هر درخواست باعث میشه PHP از اول همه چیزو لود کنه (بوت اپلیکیشن، سرویسها، کانفیگها و...).
ولی تو Octane، همه اینا فقط یه بار لود میشن و بعدش تو حافظه میمونن، یعنی هر درخواست بعدی خیلی سریعتر انجام میشه!
💡 پس Octane باهوشتره و تکرارای اضافی رو حذف میکنه.
🌐 سرورهای Octane فرق دارن
خود Laravel معمولاً روی Apache یا Nginx با PHP-FPM اجرا میشه.
ولی Octane از Swoole یا RoadRunner بهعنوان سرور استفاده میکنه و ترافیک باید به اینا هدایت بشه.
🧩فرق Stateful یا Stateless چیه؟
لاراول معمولی «Stateless»، یعنی هر درخواست جداست.
ولی Octane «نیمه-Stateful»، یعنی یه سری اطلاعات بین درخواستها تو حافظه میمونه.
📌 مثال واقعی:
تو حالت Stateless، هر بار که صفحهای باز میکنی، سرور بررسی میکنه که لاگین هستی یا نه.
تو حالت Stateful (مثل Octane)، سرور همونطور که وارد شدی، اطلاعاتت رو نگه میداره تا وقتی logout کنی!
🔧خوب Swoole یا RoadRunner؟ کدوم بهتره؟
میشه گفت Swoole سریعتره ولی باید روی PHP نصب بشه، با Xdebug و مانیتورینگها خوب کار نمیکنه.
درحالی که RoadRunner راحتتر نصب میشه و به تنظیم خاصی نیاز نداره، ولی کمی کندتر از Swoole.
🤔 بالاخره Octane رو استفاده کنیم یا نه؟
✅ بله، اگه سایتت زیر بار سنگینه یا سرعتش اذیتت میکنه
❌ نه، اگه با PHP 8 سازگار نیستی یا تیمت هنوز با مفاهیم stateful آشنا نیست
#Laravel #PHP #Octane
@panicdev
🚀 فرق بین Laravel یا Laravel Octane چیست ؟
باید گفت Laravel Octane یه نسخه جدا نیست، بلکه یه افزونهست که روی Laravel اجرا میشه و مخصوص PHP 8 به بالاست.
هدفش فقط یه چیزه: سرعت! ⚡️
⚙️ مقایسهی سرعت
در Laravel معمولی: حدود ۵۰۰ درخواست در ثانیه
در Laravel Octane: راحت بالای ۲۰۰۰ درخواست در ثانیه!
اونم با حداقل ۱۰ برابر عملکرد بهتر 🤯
🧠 چرا Octane اینقدر سریعتره؟
تو Laravel معمولی، هر درخواست باعث میشه PHP از اول همه چیزو لود کنه (بوت اپلیکیشن، سرویسها، کانفیگها و...).
ولی تو Octane، همه اینا فقط یه بار لود میشن و بعدش تو حافظه میمونن، یعنی هر درخواست بعدی خیلی سریعتر انجام میشه!
💡 پس Octane باهوشتره و تکرارای اضافی رو حذف میکنه.
🌐 سرورهای Octane فرق دارن
خود Laravel معمولاً روی Apache یا Nginx با PHP-FPM اجرا میشه.
ولی Octane از Swoole یا RoadRunner بهعنوان سرور استفاده میکنه و ترافیک باید به اینا هدایت بشه.
🧩فرق Stateful یا Stateless چیه؟
لاراول معمولی «Stateless»، یعنی هر درخواست جداست.
ولی Octane «نیمه-Stateful»، یعنی یه سری اطلاعات بین درخواستها تو حافظه میمونه.
📌 مثال واقعی:
تو حالت Stateless، هر بار که صفحهای باز میکنی، سرور بررسی میکنه که لاگین هستی یا نه.
تو حالت Stateful (مثل Octane)، سرور همونطور که وارد شدی، اطلاعاتت رو نگه میداره تا وقتی logout کنی!
🔧خوب Swoole یا RoadRunner؟ کدوم بهتره؟
میشه گفت Swoole سریعتره ولی باید روی PHP نصب بشه، با Xdebug و مانیتورینگها خوب کار نمیکنه.
درحالی که RoadRunner راحتتر نصب میشه و به تنظیم خاصی نیاز نداره، ولی کمی کندتر از Swoole.
🤔 بالاخره Octane رو استفاده کنیم یا نه؟
✅ بله، اگه سایتت زیر بار سنگینه یا سرعتش اذیتت میکنه
❌ نه، اگه با PHP 8 سازگار نیستی یا تیمت هنوز با مفاهیم stateful آشنا نیست
#Laravel #PHP #Octane
@panicdev
👍15🔥1
🚀خوب Laravel Octane واقعاً فوقالعادهست، اما...
همانطور که میدونید Laravel Octane بهخاطر افزایش چشمگیر سرعت اپلیکیشنها خیلی محبوب شده. چون حافظهی اپ بین درخواستها حفظ میشه، دیگه هر بار لازم نیست از اول بارگذاری بشه.
ولی همونطور که دوستمون @Mahdi_Saremi گفت باید ها و نباید ها دارد .
قبل از اینکه سریع بری سراغ استفاده ازش، باید یهسری نکات مهم رو بدونی تا سرت به سنگ نخوره! 🧠
👇 چند مورد از محدودیتها و نکات مهم Octane رو باهم مرور کنیم:
🔁 1. برنامه دیگه Stateless نیست!
تو لاراول معمولی، هر درخواست از صفر اجرا میشه. ولی تو Octane همه چیز تو حافظه میمونه!
یعنی اگه تو یه درخواست یه متغیر مثل $user ست بشه و پاک نشه، ممکنه درخواست بعدی هم همون مقدار رو ببینه! 😱
✅ حتماً از Octane::reset() یا tick/booting برای پاکسازی وضعیت استفاده کن.
🔌 2. همه پکیجها با Octane سازگار نیستن!
یهسری پکیجها مثل پکیجهای سشن یا احراز هویت که به lifecycle معمولی PHP وابستهان، ممکنه تو Octane درست کار نکنن.
✅ قبل از استفاده از هر پکیجی، بررسی کن با Octane سازگاره یا نه. اگه ناسازگاره یا عوضش کن یا resetش کن.
🧠 3. نشت حافظه (Memory Leak)
چون پردازشها طولانیان، حافظه میتونه پر بشه و اپت کند یا حتی داون بشه!
✅ با تنظیم max_requests بعد از یه تعداد خاصی درخواست، worker رو ریاستارت کن. حواست به مصرف رم باشه.
📦 4. مناسب کارای طولانی نیست
بله Octane برای درخواستهای سریع و زیاد ساخته شده. کارای سنگین مثل آپلود فایل یا پردازش تصویری رو میتونه قفل کنه.
✅ این کارا رو بده به Queue یا jobهای پسزمینه.
🔀 5. محدودیت تو همزمانی (Concurrency)
بسته به اینکه از Swoole یا RoadRunner استفاده میکنی، یهسری مشکلات خاص ممکنه پیش بیاد، مثل همزمان نوشتن روی فایل.
✅ از lock و عملیات اتمی استفاده کن. اپ رو قبل از دیپلوی حسابی تست کن.
🐞 6. دیباگ و تست کردن عجیب میشه!
دیگه مثل قبل نمیتونی راحت dd() بزنی و نتیجه بگیری. چون ممکنه state قبلی تو worker هنوز بمونه!
✅ از ابزارهایی مثل Clockwork یا Laravel Debugbar استفاده کن. Log بگیر و از رویدادهای reset کمک بگیر.
🚀 7. تغییر تو دیپلوی و CI/CD
اگه بعد از دیپلوی workerها رو ریاستارت نکنی، اپ ممکنه با کد یا تنظیمات قدیمی اجرا بشه!
✅ از ابزارهایی مثل Envoyer استفاده کن. حتماً بعد از دیپلوی بزن:
⚠️ جمعبندی
خوب Octane واقعاً عالیه برای اپهایی که درخواست زیاد و سریع دارن. ولی باید با دقت و آگاهی ازش استفاده کنی، چون اگه آماده نباشی، ممکنه بیشتر از اینکه کمک کنه، دردسر درست کنه.
اینم یه ریپازیتوری که best-practice های مربوط به اکتان رو اوردن
laravel-octane-best-practices
#Laravel #PHP #Octane
@panicdev
همانطور که میدونید Laravel Octane بهخاطر افزایش چشمگیر سرعت اپلیکیشنها خیلی محبوب شده. چون حافظهی اپ بین درخواستها حفظ میشه، دیگه هر بار لازم نیست از اول بارگذاری بشه.
ولی همونطور که دوستمون @Mahdi_Saremi گفت باید ها و نباید ها دارد .
قبل از اینکه سریع بری سراغ استفاده ازش، باید یهسری نکات مهم رو بدونی تا سرت به سنگ نخوره! 🧠
👇 چند مورد از محدودیتها و نکات مهم Octane رو باهم مرور کنیم:
🔁 1. برنامه دیگه Stateless نیست!
تو لاراول معمولی، هر درخواست از صفر اجرا میشه. ولی تو Octane همه چیز تو حافظه میمونه!
یعنی اگه تو یه درخواست یه متغیر مثل $user ست بشه و پاک نشه، ممکنه درخواست بعدی هم همون مقدار رو ببینه! 😱
✅ حتماً از Octane::reset() یا tick/booting برای پاکسازی وضعیت استفاده کن.
🔌 2. همه پکیجها با Octane سازگار نیستن!
یهسری پکیجها مثل پکیجهای سشن یا احراز هویت که به lifecycle معمولی PHP وابستهان، ممکنه تو Octane درست کار نکنن.
✅ قبل از استفاده از هر پکیجی، بررسی کن با Octane سازگاره یا نه. اگه ناسازگاره یا عوضش کن یا resetش کن.
🧠 3. نشت حافظه (Memory Leak)
چون پردازشها طولانیان، حافظه میتونه پر بشه و اپت کند یا حتی داون بشه!
✅ با تنظیم max_requests بعد از یه تعداد خاصی درخواست، worker رو ریاستارت کن. حواست به مصرف رم باشه.
📦 4. مناسب کارای طولانی نیست
بله Octane برای درخواستهای سریع و زیاد ساخته شده. کارای سنگین مثل آپلود فایل یا پردازش تصویری رو میتونه قفل کنه.
✅ این کارا رو بده به Queue یا jobهای پسزمینه.
🔀 5. محدودیت تو همزمانی (Concurrency)
بسته به اینکه از Swoole یا RoadRunner استفاده میکنی، یهسری مشکلات خاص ممکنه پیش بیاد، مثل همزمان نوشتن روی فایل.
✅ از lock و عملیات اتمی استفاده کن. اپ رو قبل از دیپلوی حسابی تست کن.
🐞 6. دیباگ و تست کردن عجیب میشه!
دیگه مثل قبل نمیتونی راحت dd() بزنی و نتیجه بگیری. چون ممکنه state قبلی تو worker هنوز بمونه!
✅ از ابزارهایی مثل Clockwork یا Laravel Debugbar استفاده کن. Log بگیر و از رویدادهای reset کمک بگیر.
🚀 7. تغییر تو دیپلوی و CI/CD
اگه بعد از دیپلوی workerها رو ریاستارت نکنی، اپ ممکنه با کد یا تنظیمات قدیمی اجرا بشه!
✅ از ابزارهایی مثل Envoyer استفاده کن. حتماً بعد از دیپلوی بزن:
php artisan octane:restart
⚠️ جمعبندی
خوب Octane واقعاً عالیه برای اپهایی که درخواست زیاد و سریع دارن. ولی باید با دقت و آگاهی ازش استفاده کنی، چون اگه آماده نباشی، ممکنه بیشتر از اینکه کمک کنه، دردسر درست کنه.
اینم یه ریپازیتوری که best-practice های مربوط به اکتان رو اوردن
laravel-octane-best-practices
#Laravel #PHP #Octane
@panicdev
GitHub
GitHub - michael-rubel/laravel-octane-best-practices: A compiled list of Laravel Octane best practices for your team to follow.
A compiled list of Laravel Octane best practices for your team to follow. - michael-rubel/laravel-octane-best-practices
1👍19🔥2👌1
فردا ساعت ۸ شب؛ یک وبینار درمورد Text Embedding و وکتورایز کردن متن و ذخیره اونها توی Vector Database ها خواهیم داشت و درنهایت وکتور دیتابیسمون رو به یک LLM متصل میکنیم تا کاربر بتونه با زبان طبیعی توی دادهها سرچ بزنه و به نتیجه برسه.
مثلا: "چه غدایی با گوشت، سیب زمینی و گوجه میتونم درست کنم؟" و سیستم بر اساس داده ها نزدیک ترین پیشنهادات رو به کاربر درقالب متن + لینک به رسپی ها بده
مثلا: "چه غدایی با گوشت، سیب زمینی و گوجه میتونم درست کنم؟" و سیستم بر اساس داده ها نزدیک ترین پیشنهادات رو به کاربر درقالب متن + لینک به رسپی ها بده
👍12👌5
Panic Dev
فردا ساعت ۸ شب؛ یک وبینار درمورد Text Embedding و وکتورایز کردن متن و ذخیره اونها توی Vector Database ها خواهیم داشت و درنهایت وکتور دیتابیسمون رو به یک LLM متصل میکنیم تا کاربر بتونه با زبان طبیعی توی دادهها سرچ بزنه و به نتیجه برسه. مثلا: "چه غدایی با…
از اینجا مطالب رو دنبال کنید:
https://news.1rj.ru/str/ArminNotes/157
* کانال پابلیکه و نیاز نیست جوین بدید اگه علاقهای ندارید — بعدا نگید تبلیغ میکنه :)))
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Armin's Notes 🪴
درود 😁👋
از اونجایی که امشب قراره یک وبینار جمع و جور درمورد Semantic Search و Word Embedding و VectorDB ها داشته باشیم - به جهت اینکه قبل از وبینار یه Big Picture از کلیت ماجرا گرفته باشید و بدونید که قراره چیکار کنیم یکسری توضیحات رو به صورت متنی براتون…
از اونجایی که امشب قراره یک وبینار جمع و جور درمورد Semantic Search و Word Embedding و VectorDB ها داشته باشیم - به جهت اینکه قبل از وبینار یه Big Picture از کلیت ماجرا گرفته باشید و بدونید که قراره چیکار کنیم یکسری توضیحات رو به صورت متنی براتون…
👍7❤🔥2🔥1
Panic Dev
توضیحات اولیه پس از ۳ ساعت تموم شد 😁
با احترام فراوان اگه قراره امشب تشریف بیارید توی لایو این موارد رو بخونید - من با این فرض که شما تمام مطالب رو خوندید و متوجه شدید صحبتارو پیش میبرم و دیگه چیزایی که الان تایپ کردم رو تکرار نمیکنم.
شروع:
t.me/ArminNotes/157
پایان:
t.me/ArminNotes/198
اگه موردی هم هست توی کامنتهای همین پست یا به صورت ناشناس از لینک زیر ارسال کنید برام جواب میدم.
https://news.1rj.ru/str/BiChatBot?start=sc-ac97b074ad
با احترام فراوان اگه قراره امشب تشریف بیارید توی لایو این موارد رو بخونید - من با این فرض که شما تمام مطالب رو خوندید و متوجه شدید صحبتارو پیش میبرم و دیگه چیزایی که الان تایپ کردم رو تکرار نمیکنم.
شروع:
t.me/ArminNotes/157
پایان:
t.me/ArminNotes/198
اگه موردی هم هست توی کامنتهای همین پست یا به صورت ناشناس از لینک زیر ارسال کنید برام جواب میدم.
https://news.1rj.ru/str/BiChatBot?start=sc-ac97b074ad
Telegram
Armin's Notes 🪴
درود 😁👋
از اونجایی که امشب قراره یک وبینار جمع و جور درمورد Semantic Search و Word Embedding و VectorDB ها داشته باشیم - به جهت اینکه قبل از وبینار یه Big Picture از کلیت ماجرا گرفته باشید و بدونید که قراره چیکار کنیم یکسری توضیحات رو به صورت متنی براتون…
از اونجایی که امشب قراره یک وبینار جمع و جور درمورد Semantic Search و Word Embedding و VectorDB ها داشته باشیم - به جهت اینکه قبل از وبینار یه Big Picture از کلیت ماجرا گرفته باشید و بدونید که قراره چیکار کنیم یکسری توضیحات رو به صورت متنی براتون…
👍3🔥2
اقا ببخشید دیگه :)) میت پرمیوم نداشتیم بیشتر از ۱ ساعت در خدمتتون باشیم.
سوالی ابهامی چیزی به وجود اومد همینجا بپرسید جواب بدم
سوالی ابهامی چیزی به وجود اومد همینجا بپرسید جواب بدم
👍6❤🔥4🔥1
نمیدونم راهتون به API چت بات ها خورده یا نه
ولی یه مشکلی که شاید داشته باشید این هست که
وقتی میخواید سوال کاربر و OpenAi بدید تا جواب بهتون بده .
تو حالت عادی که rest api کال میکنید . به این صورت
احتمالا خیلی طول میکشه
چون باید تمام جواب و پردازش کنه یه جا درستش کنه و بهتون برگردونه
هرچی جواب بزرگ تر باشه ، مدت زمان انتظار کاربر شما بالا تر میره .
و این میتونه اون رضایت و حس کاربری که موقع کار با چت بات ها دارن با پلتفرم شما نداشته باشن
البته از نظر فرانتی امده بودن بهش انیمیشن داده بودن ،
وقتی جواب از API میرسید همه رو یه جا چاپ نمیکرد
مثل همون چت بات ها با انیمیشن چاپ میکرد
ولی این باعث نمیشد جواب زودتر جنریت بشه و باز اون انتظار زیاد بود
خیلی وقت پیش گزارش کرده بودن که این حالت اصلا مورد رضایت کلاینت ها نیست .
امروز راه حلی براش یه جا دیدم ، جالب بود .
راه حلی که براش پیدا شد و پیاده سازی شد اینجوری بود .
برای اینکه بتونید سریعتر به کاربر جواب نشون بدید و دقیقا همون حس چت بات هارو بهش بدید، استفاده از استریم اونت
پلتفرم هایی مثل openAi این قابلیت و دارن که درخواست بدی به صورت استریم بهت جواب بدن .
ولی از طرفی شما هم باید بتونید اینو پشت صحنه بگیرید و به فرانت خودتون هم به صورت استریم نشون بدید .
برای این کار شما یه endpoint میخواید که به صورت SSE به فرانت شما وصل بشه .
بعد شما درخواستش رو به openAi میدید و میگید به صورت استریم بهم جواب بده .
وقتی جواب و میگیرید پارس میکنید و با همون SSE به فرانت خودتون بر میگردونید .
حالا کاربر شما میتونه به صورت ریل تایم جوابی که جنریت میشه رو ببینه و دقیقا همون حس رضایت چت بات واقعی رو داشته باشه .
در تصاویر هم میتونید نمونه کد سمپل رو ببنید .
شاید در آینده به دردتون خورد😊
@panicdev
ولی یه مشکلی که شاید داشته باشید این هست که
وقتی میخواید سوال کاربر و OpenAi بدید تا جواب بهتون بده .
تو حالت عادی که rest api کال میکنید . به این صورت
$client = OpenAI::client(config('services.openai.key'));
$response = $client->chat()->create([
'model' => 'gpt-4o',
'messages' => $messages,
]);
return response()->json([
'message' => $response
->choices[0]
->message,
], 200);
احتمالا خیلی طول میکشه
چون باید تمام جواب و پردازش کنه یه جا درستش کنه و بهتون برگردونه
هرچی جواب بزرگ تر باشه ، مدت زمان انتظار کاربر شما بالا تر میره .
و این میتونه اون رضایت و حس کاربری که موقع کار با چت بات ها دارن با پلتفرم شما نداشته باشن
البته از نظر فرانتی امده بودن بهش انیمیشن داده بودن ،
وقتی جواب از API میرسید همه رو یه جا چاپ نمیکرد
مثل همون چت بات ها با انیمیشن چاپ میکرد
ولی این باعث نمیشد جواب زودتر جنریت بشه و باز اون انتظار زیاد بود
خیلی وقت پیش گزارش کرده بودن که این حالت اصلا مورد رضایت کلاینت ها نیست .
امروز راه حلی براش یه جا دیدم ، جالب بود .
راه حلی که براش پیدا شد و پیاده سازی شد اینجوری بود .
برای اینکه بتونید سریعتر به کاربر جواب نشون بدید و دقیقا همون حس چت بات هارو بهش بدید، استفاده از استریم اونت
پلتفرم هایی مثل openAi این قابلیت و دارن که درخواست بدی به صورت استریم بهت جواب بدن .
ولی از طرفی شما هم باید بتونید اینو پشت صحنه بگیرید و به فرانت خودتون هم به صورت استریم نشون بدید .
برای این کار شما یه endpoint میخواید که به صورت SSE به فرانت شما وصل بشه .
بعد شما درخواستش رو به openAi میدید و میگید به صورت استریم بهم جواب بده .
وقتی جواب و میگیرید پارس میکنید و با همون SSE به فرانت خودتون بر میگردونید .
حالا کاربر شما میتونه به صورت ریل تایم جوابی که جنریت میشه رو ببینه و دقیقا همون حس رضایت چت بات واقعی رو داشته باشه .
در تصاویر هم میتونید نمونه کد سمپل رو ببنید .
شاید در آینده به دردتون خورد
@panicdev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥6🕊1