a close up of a laptop on a desk

Utiliser l’API OpenAI en PHP : Guide rapide et pratique

Introduction

La puissance de ChatGPT directement dans ton code PHP ? C’est possible ! Fini les allers-retours avec le navigateur et les copier-coller fastidieux – place à l’intégration native des modèles OpenAI dans tes apps.

🤔 Pourquoi intégrer l’API OpenAI à ton PHP ?

Imagine les possibilités :

  • Générer du contenu à la volée
  • Scanner et analyser des textes instantanément
  • Créer ton propre assistant IA
  • Booster tes workflows actuels avec l’IA

Et tout ça, direct dans ton code PHP !

💪 Le client officiel OpenAI, c’est quoi ?

openai-php/client, c’est comme ton couteau suisse de l’IA :

  • Du code PHP natif et typé
  • Une maintenance aux petits oignons
  • Une doc ! Et oui, tu as bien lu ! 🎉
  • Des requêtes simplifiées

Fini la galère des solutions bricolées !

📚 Au programme :

  1. Installation aux petits oignons
  2. Les secrets des paramètres clés
  3. Ta première intégration OpenAI

Pas de prise de tête : on reste simple et efficace, sans se noyer dans le jargon IA 🤖

    🛠️ On met en place tout ça !

    2 trucs à faire et c’est plié :

    • Installer le client PHP
    • Récupérer ta clé API

    ⚡️ Installation en mode express

    Une ligne dans ton terminal et c’est réglé :

    composer require openai-php/client
    

    🔑 Choper ta clé API

    1. Direction platform.openai.com
    2. Connexion (ou création de compte si t’es nouveau)
    3. Cap sur « API Keys »
    4. Clic sur « Create new secret key » et voilà !

    ⚠️ MEGA IMPORTANT

    • Ta clé API c’est comme ton code de CB – garde ça pour toi !
    • Ne la commit jamais en clair dans ton code
    • L’API est un service PAYANT, distinct de ton abo ChatGPT (même premium)
    • CONSEIL EN OR : Va sur https://platform.openai.com/settings/organization/limits et active « Enable Budget Limit » pour éviter les mauvaises surprises : ajoute le montant mini et op tu seras plus safe
    • CONSEIL EN OR2 : Direction https://platform.openai.com/settings/organization/billing/overview et désactive l’auto recharge. Double sécurité = esprit tranquille !
    • Sans ces limites, une API qui part en vrille peut te coûter TRÈS cher !

    Configuration de base

    Voici le minimum requis pour démarrer :

    require 'vendor/autoload.php';
    
    // Initialisation du client
    $client = OpenAI::client('votre-cle-api');
    
    // Premier test simple
    try {
        $response = $client->completions()->create([
            'model' => 'gpt-3.5-turbo-instruct',
            'prompt' => 'Dis bonjour en PHP !',
            'max_tokens' => 50,
            'temperature' => 0.7,
        ]);
    
        echo $response->choices[0]->text; // Affiche la réponse
    } catch (Exception $e) {
        echo "Oups, quelque chose s'est mal passé : " . $e->getMessage();
    }
    

    Ici rien de bien méchant, on utilise simplement la lib github qui fait parfaitement le job.

    Comprendre les paramètres essentiels 🎛️

    Quand vous utilisez l’API OpenAI, chaque paramètre compte. C’est comme régler les boutons d’une table de mixage : chaque ajustement influence le résultat final.

    Les paramètres de base

    $response = $client->completions()->create([
        'model' => 'gpt-3.5-turbo-instruct',
        'prompt' => $payload,
        'max_tokens' => 300,
        'temperature' => 0.9,
    ]);
    

    Model

    'model' => 'gpt-3.5-turbo-instruct'
    • C’est votre choix de « cerveau » IA
    • gpt-3.5-turbo-instruct : Bon rapport qualité/prix pour du texte
    • Alternative : gpt-4o-mini

    Tu peux aller ici pour voir les models disponible et comparer.

    Prompt

    'prompt' => 'Dis bonjour en PHP !',
    • C’est votre question ou instruction
    • Soyez précis et structuré
    • Pensez à inclure le contexte nécessaire

    max_tokens

    'max_tokens' => 300
    • Limite la longueur de la réponse
    • 1 token ≈ 4 caractères en français
    • Influence directement le coût
    • 300 tokens ≈ un paragraphe moyen

    💡 ASTUCE ÉCONOMIES

    $cleanContent = strip_tags($rssContent); // Bye bye HTML
    $cleanContent = preg_replace('/\s+/', ' ', $cleanContent);  // Adieu espaces multiples
    $cleanContent = trim($cleanContent); // Clean début/fin
    
    • Chaque caractère = potentiellement des tokens = du $$$
    • Un bon nettoyage peut diviser ta facture par 2 !

    temperature

    'temperature' => 0.9  // Plus créatif
    'temperature' => 0.2  // Plus focalisé
    • Contrôle la créativité de l’IA
    • 0 = très focalisé, toujours même réponse
    • 1 = très créatif, réponses variées

    Exemple pratique

    Créons un outil simple pour résumer des articles.

    require 'vendor/autoload.php';
    
    try {
    	$client = OpenAI::client( 'votre-cle-api' );
    
    	// Message initial
    	$msg = 'Texte très long et hyper intéressant';
    
    	// Nettoyage et optimisation
    	$msg = strip_tags( $msg );                        // Supprime HTML
    	$msg = preg_replace( '/\s+/', ' ', $msg );       // Normalise espaces
    	$msg = trim( $msg );                             // Nettoie début/fin
    	$msg = substr( $msg, 0, 5000 );                  // Limite longueur
    
    	$payload = 'Résume moi cet article en français en moins de 100 mots : ' . $msg;
    
    	// Appel API
    	$response = $client->completions()->create(
    		array(
    			'model'       => 'gpt-3.5-turbo-instruct',
    			'prompt'      => $payload,
    			'max_tokens'  => 300,
    			'temperature' => 0.9,
    		)
    	);
    
    	// Affichage résultat
    	echo '<pre>' . print_r( $response->choices[0]->text, true ) . '</pre>';
    
    } catch ( \OpenAI\Exceptions\ErrorException $e ) {
    	echo '<pre>' . print_r( 'Erreur OpenAI', true ) . '</pre>';
    	echo '<pre>' . print_r( $e->getMessage(), true ) . '</pre>';
    } catch ( \Exception $e ) {
    	echo '<pre>' . print_r( 'Erreur générale', true ) . '</pre>';
    	echo '<pre>' . print_r( $e->getMessage(), true ) . '</pre>';
    }
    

    🔍 Décortiquons ce code

    • On prend un texte long (genre un article)
    • On le passe à la moulinette pour virer tout le superflu :
      • Bye bye HTML inutile
      • Au revoir espaces en trop
      • Ciao les caractères parasites
    • Résultat ? Moins de tokens = moins de $$$

    🎯 La partie cool :

    • On guide l’IA avec un prompt clair et précis
    • On limite la réponse avec max_tokens (pas besoin d’un roman !)
    • On gère les erreurs comme des grands

    💰 Petit rappel économies :

    Pro tip : Commence petit, mesure, optimise, puis scale. Ton compte en banque te remerciera ! 🚀

    💡 L’IMPORTANCE DE L’OPTIMISATION : 1 an de recul

    Petit flashback novembre 2023 :

    • Mise de départ : 10$
    • Objectif : Tester une veille auto avec l’IA
    • Première version : pas optimisée, YOLO !

    📊 Les chiffres qui piquent (avant optim) :

    • 0.01$ par requête…
    • 0.06$ à 0.1$ par jour…
    • Multiplication des sources = Multiplication des coûts

    🔧 Après optimisation :

    • Moins de 0.01$ PAR JOUR (pour plusieurs appels !)
    • Code plus propre
    • Même résultat final

    🏆 Le verdict après 1 an ? 5$ toujours en poche sur les 10$ de départ !

    La morale ? « C’est que 0.01$ » × 365 jours × plusieurs sources = Bye bye budget ! Mais avec un peu d’optimisation = Service viable et économique

    Samy Kantari - Expert WordPress + IA

    Kantari Samy

    Expert WordPress + IA

    👨‍💻 10 ans dans le game WordPress, chez Whodunit, à bricoler du code, à dompter des bugs et à faire tourner des projets de toutes tailles.
    Puis l’IA est arrivée… et là, révélation 💡 !
    J’ai switché de mindset, réinventé ma façon de coder et avec le vibe coding : une nouvelle ère où je ne suis plus limité par le temps ni par les outils.

    Aujourd’hui ? Je code toujours… Mais avec mon copilote IA.
    On forme une team de choc. Lui, c’est la puissance. Moi, c’est la vision. Ensemble, on déverrouille ce qui semblait impossible hier. 🚀

    10+ Années d'expérience
    +++ Projets réalisés
    80% code par IA
    S’abonner
    Notification pour
    guest
    0 Commentaires
    Commentaires en ligne
    Afficher tous les commentaires