عندما يلتقي PHP بالذكاء الاصطناعي: لماذا يعمل هذا
\n\nتخيل: أنت تكتب كودًا بلغة PHP، وفجأة يظهر لديك زميل لا ينام أبدًا، ولا يطلب راتبًا، ويمكنه في ثانية توليد وصف لآلاف المنتجات، أو كتابة رسالة إلى عميل، أو حتى المساعدة في تصحيح استعلام SQL معقد. يبدو هذا كخيال علمي؟ لكنه ليس كذلك. إنها حقيقة مع دمج ChatGPT في مشاريع PHP.
\n\nظلت PHP لفترة طويلة "الحصان العامل" للويب، ولكن مع قدوم الذكاء الاصطناعي حصلت على نفس جديد. لم يعد من الضروري كتابة أطنان من الكود النمطي يدويًا - تتولى الشبكة العصبية المهام الروتينية، بينما تركز أنت على البنية. في هذه المقالة، سنشرح كيفية ربط ChatGPT بتطبيق PHP الخاص بك، وسنفعل ذلك بأقصى قدر من التطبيق العملي.
\n\nماذا ستحتاج للبدء؟
\n\nقبل الغوص في الكود، تأكد من أن لديك:
\n\n- \n
- PHP 8.0+ - للعمل مع الميزات الحديثة (الكتابة، السمات). \n
- cURL - لإرسال الطلبات إلى OpenAI API. \n
- مفتاح API من OpenAI - سجل على platform.openai.com وأنشئ مفتاحًا. \n
- Composer - لإدارة التبعيات بسهولة (على الرغم من أنه يمكنك الاستغناء عنه). \n
هل أنت مستعد؟ لنبدأ.
\n\nالاتصال الأساسي: إرسال أول طلب إلى ChatGPT
\n\nلنبدأ بأبسط شيء - إرسال رسالة إلى ChatGPT والحصول على رد. يستخدم OpenAI REST API، لذلك نحتاج إلى طلب HTTP عادي. إليك فئة العمل الأساسية:
\n\n<?php\n\nclass ChatGPTClient {\n private string $apiKey;\n private string $apiUrl = 'https://api.openai.com/v1/chat/completions';\n\n public function __construct(string $apiKey) {\n $this->apiKey = $apiKey;\n }\n\n public function ask(string $message): string {\n $data = [\n 'model' => 'gpt-3.5-turbo',\n 'messages' => [\n ['role' => 'user', 'content' => $message]\n ],\n 'temperature' => 0.7\n ];\n\n $ch = curl_init($this->apiUrl);\n curl_setopt_array($ch, [\n CURLOPT_RETURNTRANSFER => true,\n CURLOPT_POST => true,\n CURLOPT_HTTPHEADER => [\n 'Content-Type: application/json',\n 'Authorization: Bearer ' . $this->apiKey\n ],\n CURLOPT_POSTFIELDS => json_encode($data)\n ]);\n\n $response = curl_exec($ch);\n $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);\n curl_close($ch);\n\n if ($httpCode !== 200) {\n throw new \\RuntimeException("API error: $httpCode - $response");\n }\n\n $result = json_decode($response, true);\n return $result['choices'][0]['message']['content'] ?? '';\n }\n}\n\n// الاستخدام\n$client = new ChatGPTClient('your-api-key-here');\necho $client->ask('اكتب تحية قصيرة لموقع PHP');\n\nهذا الكود هو الأساس. لاحظ: نحن نستخدم gpt-3.5-turbo - إنه رخيص وسريع. للمهام المعقدة، يمكنك التبديل إلى gpt-4، لكنه أغلى.
معالجة الأخطاء والحدود
\n\nتتطلب المشاريع الحقيقية معالجة أكثر موثوقية. أضف إعادة المحاولة عند خطأ 429 (عدد كبير جدًا من الطلبات) وتسجيل الأخطاء:
\n\npublic function askWithRetry(string $message, int $maxRetries = 3): string {\n for ($attempt = 1; $attempt <= $maxRetries; $attempt++) {\n try {\n return $this->ask($message);\n } catch (\\RuntimeException $e) {\n if (str_contains($e->getMessage(), '429') && $attempt < $maxRetries) {\n sleep(pow(2, $attempt)); // تأخير أسي\n continue;\n }\n throw $e;\n }\n }\n}\n\nسيناريوهات متقدمة: من توليد المحتوى إلى تحليل البيانات
\n\nالآن بعد أن أصبح الأساس جاهزًا، دعنا نرى كيف يمكن لـ Cha