AI integreren in Laravel

De meeste AI-tutorials gaan ervan uit dat je Python gebruikt.

Na 12 jaar het bouwen van PHP-apps, heb ik onlangs AI-functies toegevoegd aan een productie-dashboard in Laravel. Ik heb het gebruikt om ruwe data om te zetten in begrijpelijke rapporten.

Het lastige was niet de code. Het lastige was het vinden van goede PHP-content over dit onderwerp.

Hier lees je hoe je een schone, productieklare AI-integratie bouwt in Laravel.

De Architectuur

Verspreid geen API-aanroepen door je controllers. Gebruik in plaats daarvan een driver-patroon. Hiermee kun je met één wijziging in je .env-bestand wisselen tussen Claude en OpenAI.

  1. Definieer een contract Maak een AiClientInterface aan. Dit zorgt ervoor dat zowel Claude als OpenAI zich aan dezelfde regels houden.

  2. Bouw je drivers Maak een ClaudeClient en een OpenAiClient aan. Gebruik de HTTP-client van Laravel om de verzoeken af te handelen. Dit maakt het afhandelen van timeouts en retries eenvoudig.

  3. Gebruik de Service Container Koppel je interface aan een specifieke client in je AppServiceProvider. Gebruik een match-statement om de provider te kiezen op basis van je configuratie.

De Verschillen

Je moet deze vijf details kennen om fouten te voorkomen:

• Claude gebruikt x-api-key in de header. OpenAI gebruikt Authorization: Bearer. • Claude vereist een anthropic-version header. • Claude vereist max_tokens. Bij OpenAI is dit optioneel. • Claude gebruikt een system-veld op het hoogste niveau. OpenAI gebruikt een bericht met de role: system. • De JSON-responspaden verschillen. Claude gebruikt content[0].text. OpenAI gebruikt choices[0].message.content.

Tips voor Productie

• Gebruik Caching: AI-aanroepen zijn traag en kosten geld. Als de data hetzelfde is, serveer dan het resultaat vanuit je cache. Dit kan de kosten met 70% verlagen. • Gebruik Queues: Laat een gebruiker nooit 10 seconden wachten op een API-respons. Start een achtergrondtaak (background job) en informeer de gebruiker wanneer deze klaar is. • Behandel fouten: API's kunnen falen. Wikkel je aanroepen in try-catch-blokken. Als de AI faalt, toon dan de ruwe data in plaats van een foutmelding op de pagina. • Stel limieten in: Stel altijd max_tokens in om je uitgaven te beheersen. Gebruik kleinere, goedkopere modellen voor eenvoudige taken zoals samenvattingen.

Je hoeft geen Python te leren om AI-functies te bouwen. Je PHP-vaardigheden werken hier perfect voor.

Bron: https://dev.to/sunakshi_thakur_84a5f59fd/integrating-claudeopenai-api-into-a-laravel-app-a-practical-guide-1hig