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 :
- Installation aux petits oignons
- Les secrets des paramètres clés
- 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
- Direction platform.openai.com
- Connexion (ou création de compte si t’es nouveau)
- Cap sur « API Keys »
- 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
- Teste l’appétit de tes prompts sur https://platform.openai.com/tokenizer
- Optimise tes inputs avant envoi
$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 :
- Suivez vos dépenses sur https://platform.openai.com/settings/organization/usage
- Un code propre + des limites bien définies = facture divisée par 2 ou 3
- Chaque caractère compte, littéralement !
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

