שילוב AI בתוך Laravel
רוב המדריכים ל-AI מניחים שאתם משתמשים ב-Python.
אחרי 12 שנים של בניית אפליקציות PHP, לאחרונה הוספתי תכונות AI ללוח בקרה (dashboard) של Laravel בסביבת ייצור (production). השתמשתי בזה כדי להפוך נתונים גולמיים לדוחות קריאים לבני אדם.
החלק הקשה לא היה הקוד. החלק הקשה היה למצוא תוכן PHP טוב בנושא הזה.
הנה איך בונים אינטגרציית AI נקייה ומוכנה לייצור ב-Laravel.
הארכיטקטורה
אל תפזרו קריאות API בתוך ה-controllers שלכם. במקום זאת, השתמשו בתבנית driver. זה יאפשר לכם לעבור בין Claude ל-OpenAI באמצעות שינוי אחד בקובץ ה-.env שלכם.
הגדירו חוזה (contract) צרו
AiClientInterface. זה מבטיח שגם Claude וגם OpenAI יעקבו אחר אותם כללים.בנו את ה-drivers שלכם צרו
ClaudeClientו-OpenAiClient. השתמשו ב-HTTP client של Laravel כדי לטפל בבקשות. זה הופך את הטיפול ב-timeouts ובניסיונות חוזרים (retries) לקל.השתמשו ב-Service Container קשרו (bind) את ה-interface שלכם ללקוח (client) ספציפי ב-
AppServiceProvider. השתמשו ב-match statementכדי לבחור את הספק בהתאם לקונפיגורציה שלכם.
ההבדלים
אתם חייבים להכיר את חמשת הפרטים האלו כדי להימנע משגיאות:
• Claude משתמש ב-x-api-key ב-header. OpenAI משתמש ב-Authorization: Bearer.
• Claude דורש header של anthropic-version.
• Claude דורש max_tokens. ב-OpenAI זה אופציונלי.
• Claude משתמש בשדה system ברמה העליונה. OpenAI משתמש ב-message עם ה-role: system.
• נתיבי תגובת ה-JSON שונים. Claude משתמש ב-content[0].text. OpenAI משתמש ב-choices[0].message.content.
טיפים לייצור (Production)
• השתמשו ב-Caching: קריאות AI הן איטיות ועולות כסף. אם הנתונים זהים, הגישו את התוצאה מה-cache שלכם. זה יכול לחסוך עד 70% מהעלויות.
• השתמשו ב-Queues: לעולם אל תגרמו למשתמש לחכות 10 שניות לתגובת API. שלחו (dispatch) background job והודיעו להם כשהוא מוכן.
• טפלו בכשלים: APIs נכשלים. עטפו את הקריאות שלכם בבלוקים של try-catch. אם ה-AI נכשל, הציגו את הנתונים הגולמיים במקום דף שבור.
• הגדירו מגבלות: תמיד הגדירו max_tokens כדי לשלוט בהוצאות שלכם. השתמשו במודלים קטנים וזולים יותר למשימות פשוטות כמו סיכומים.
אתם לא צריכים ללמוד Python כדי לבנות תכונות AI. כישורי ה-PHP שלכם יעבדו כאן בצורה מושלמת.
