تو دنیای امروز که تکنولوژی و هوش مصنوعی حسابی پیشرفت کرده، استفاده از ابزارهای هوشمند برای بهتر شدن عملکرد برنامههای وب یه ضرورت شده. یکی از این ابزارها Deepseek هست که بهت کمک میکنه از قدرت هوش مصنوعی توی پروژههای لاراولی استفاده کنی. تو این مقاله قراره نشون بدیم چطور میتونی پکیج Deepseek رو برای ادغام هوش مصنوعی با پروژههای لاراول به کار بگیری. این پکیج با یه رابط کاربری ساده و مطمئن، این امکان رو میده که راحت درخواستهای هوش مصنوعی بفرستی و جوابهای دقیق بگیری. با ما همراه باش تا ببینی چطور میتونی این ابزار قدرتمند رو توی پروژهات پیادهسازی کنی و از قابلیتهاش لذت ببری.
استفاده و نصب و پکیج Deepseek Laravel
برای نصب این پکیج، ابتدا باید از composer استفاده کنید. دستور زیر را در ترمینال وارد کنید:
composer require deepseek-php/deepseek-laravel
Bashاین دستور پکیج Deepseek Laravel را به پروژه شما اضافه میکنه!
انتشار فایل های پیکربندی
بعد از نصب پکیج، باید فایل های تنظیماتش رو به پروژه اضافه کنی. برای این کار می تونی از دستور زیر استفاده کنی:
php artisan vendor:publish --tag=deepseek
Bashاین دستور فایل های تنظیمات رو توی پوشه config پروژه قرار می ده و از اونجا می تونی ویرایششون کنی.
افزودن کلید API به env
برای استفاده از API Deepseek، باید یه کلید API داشته باشی. میتونی کلیدت رو از سایت platform.deepseek.com/api_keys بگیری و بعد تو فایل .env پروژه اینطوری قرارش بدی:
DEEPSEEK_API_KEY="your_api_key"
PHPاستفاده از پکیج در کنترلر
در این مرحله، نحوه استفاده از پکیج Deepseek را در دو حالت ساده و حرفه ای بهتون توضیح میدم:
در حالت ساده استفاده از پکیج خیلی ساده است. فقط کافیه یه درخواست بفرستی و پاسخ رو بگیری. این روش وقتی نیازی به تنظیمات خاص نداری، خیلی کاربردیه.
کد زیر رو توی کنترلرت قرار بده:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DeepseekClient;
class DeepseekController extends Controller
{
public function queryDeepseekBasic()
{
$deepseek = app(DeepseekClient::class);
// ارسال پرسش به Deepseek API
$response = $deepseek->query('Hello deepseek, I am Laravel Framework , how are you Today ^_^ ?')->run();
// نمایش پاسخ
return response()->json([
'message' => 'deepseek API response:',
'response' => $response,
]);
}
}
PHPاینجا با متد query() یه سوال به Deepseek API میفرستیم و بعدش با متد run() درخواست رو اجرا میکنیم. جواب API هم توی قالب JSON به کاربر نمایش داده میشه.
اگه بخوای حرفهایتر کار کنی، میتونی درخواستهای پیچیدهتری بفرستی و بعضی از تنظیمات رو شخصیسازی کنی. اینجا چندتا سوال مختلف میفرستیم و تنظیمات مدل و مقدار دما (temperature) رو تغییر میدیم.
تو این مثال، میتونی چندتا سوال مختلف رو برای Deepseek بفرستی و جوابها رو به صورت ترکیبی بگیری.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DeepseekClient;
class DeepseekController extends Controller
{
public function queryDeepseekAdvanced()
{
$deepseek = app(DeepseekClient::class);
// ارسال چندین پرسش با سفارشیسازی
$response = $deepseek
->query('Hello deepseek, how are you ?', 'system') // پرسش اول
->query('Hello deepseek, my name is PHP ', 'user') // پرسش دوم
->withModel("deepseek-chat") // مدل مورد نظر
->setTemperature(1.5) // تنظیم Temperature برای پاسخهای خلاقانهتر
->run();
// نمایش پاسخ
return response()->json([
'message' => 'deepseek API response:',
'response' => $response,
]);
}
}
PHPاین کد علاوه بر ارسال پرسشهای مختلف، از متدهای اضافی مثل withModel() برای تنظیم مدل و setTemperature() برای تنظیم مقدار پارامتر temperature استفاده کرده. این پارامتر به شما این امکان رو میده که میزان خلاقیت و تنوع در پاسخها رو کنترل کنید. مقادیر بالاتر این پارامتر معمولاً باعث میشه پاسخها خلاقانه تر و متفاوت تر بشن.
لیست انواع Temperature در Deepseek
Temperature | موارد استفاده |
0.0 | کدنویسی / ریاضیات |
1.0 | پاکسازی دادهها / تحلیل دادهها |
1.3 | مکالمه عمومی |
1.3 | ترجمه |
1.5 | نویسندگی خلاق / شعر |
انواع خطا و پاسخ های سرور
خطا | توضیحات |
400 – Invalid Format | علت: فرمت درخواست بد است (مشکلی در ساختار بدنه درخواست). راهحل: بدنۀ درخواست خود را طبق نکات ذکر شده در پیغام خطا اصلاح کنید. برای جزئیات بیشتر در مورد فرمت API، به مستندات DeepSeek API مراجعه کنید. |
401 – Authentication Fails | علت: اعتبارسنجی با شکست مواجه شده است به دلیل کلید API اشتباه. راهحل: کلید API خود را بررسی کنید. اگر کلید ندارید، ابتدا یک کلید API ایجاد کنید |
402 – Insufficient Balance | علت: موجودی حساب شما تمام شده است. راهحل: موجودی حساب خود را بررسی کنید و برای اضافه کردن اعتبار به صفحه “Top up” مراجعه کنید |
422 – Invalid Parameters | علت: درخواست شما شامل پارامترهای نادرست است. راهحل: پارامترهای درخواست خود را طبق نکات موجود در پیغام خطا اصلاح کنید. برای جزئیات بیشتر، به مستندات DeepSeek API مراجعه کنید. |
429 – Rate Limit Reached | علت: شما درخواستها را خیلی سریع ارسال کردهاید. راهحل: درخواستهای خود را با فاصله مناسب ارسال کنید. همچنین پیشنهاد میشود که برای مدتی به APIهای سایر ارائهدهندگان LLM (مانند OpenAI) منتقل شوید. |
500 – Server Error | علت: مشکلی در سرور DeepSeek پیش آمده است. راهحل: درخواست خود را پس از مدت زمانی کوتاه مجدداً ارسال کنید و در صورتی که مشکل ادامه داشت، با تیم پشتیبانی تماس بگیرید. |
503 – Server Overloaded | علت: سرور به دلیل ترافیک بالا بارگذاری شده است. راهحل: درخواست خود را پس از مدت زمانی کوتاه مجدداً ارسال کنید. |
محدودیت Rate Limit
نقل قول مستقیم از مستندات DeepSeek:
API DeepSeek هیچ محدودیت سرعتی برای کاربران خود اعمال نمیکند و ما تلاش میکنیم تا هر درخواست را پردازش کنیم.
با این حال، توجه داشته باشید که زمانی که سرورهای ما تحت فشار ترافیک بالا قرار دارند، ممکن است پاسخها کمی زمانبر شوند. در این دوره، درخواست HTTP شما همچنان متصل خواهد ماند و ممکن است به صورت پیوسته محتویاتی به فرمتهای زیر دریافت کنید:
- درخواستهای غیر استریم: خطوط خالی به طور پیوسته برمیگردند.
- درخواستهای استریم: کامنتهای
SSE keep-alive
به طور پیوسته برمیگردند.این محتویات تاثیری در تجزیه بدنه JSON توسط OpenAI SDK ندارند. اگر خودتان پاسخهای HTTP را تجزیه میکنید، لطفاً اطمینان حاصل کنید که این خطوط خالی یا کامنتها را به درستی مدیریت کنید.
اگر درخواست بعد از ۳۰ دقیقه تکمیل نشد، اتصال سرور قطع خواهد شد.
نظر ما چیه؟!
بازخورد شما برای ما ارزشمنده! اگر این مقاله برات مفید بود، خوشحال میشیم نظرت رو بدونیم. همچنین، اگه محتوای ما برات جذاب بود، با دادن یک ستاره به مخزن گیتهاب از ما حمایت کن!