Configuration de l'API
Mise en place de l'API ChatGPT
10-15 min
Configuration de l’API ChatGPT
Obtenir une clé API
Pour utiliser l’API ChatGPT, vous devez d’abord obtenir une clé API :
- Créez un compte sur OpenAI
- Accédez à la section “API Keys” dans votre tableau de bord
- Générez une nouvelle clé API
- Conservez cette clé en lieu sûr (elle ne sera affichée qu’une seule fois)
Configuration de base
Voici comment configurer l’API ChatGPT dans votre application :
// Configuration de base
const OPENAI_API_KEY = 'votre-clé-api';
const API_URL = 'https://api.openai.com/v1/chat/completions';
// Fonction pour appeler l'API
async function callChatGPT(prompt) {
try {
const response = await fetch(API_URL, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${OPENAI_API_KEY}`
},
body: JSON.stringify({
model: 'gpt-3.5-turbo',
messages: [
{ role: 'user', content: prompt }
],
temperature: 0.7,
max_tokens: 1000
})
});
const data = await response.json();
return data.choices[0].message.content;
} catch (error) {
console.error('Erreur lors de l\'appel à l\'API:', error);
throw error;
}
}
Paramètres de l’API
L’API ChatGPT propose plusieurs paramètres pour personnaliser les réponses :
Modèles disponibles
gpt-3.5-turbo
: Équilibre entre performance et coûtgpt-4
: Plus puissant mais plus coûteuxgpt-4-turbo
: Version optimisée de GPT-4
Paramètres de génération
temperature
: Contrôle la créativité (0 = déterministe, 1 = créatif)max_tokens
: Limite la longueur de la réponsetop_p
: Contrôle la diversité des réponsesfrequency_penalty
: Réduit la répétition de tokenspresence_penalty
: Encourage la diversité des sujets
Gestion des erreurs
Il est important de gérer correctement les erreurs lors de l’utilisation de l’API :
async function callChatGPTWithErrorHandling(prompt) {
try {
const response = await fetch(API_URL, {
// Configuration de la requête...
});
if (!response.ok) {
const errorData = await response.json();
throw new Error(`Erreur API: ${errorData.error?.message || 'Erreur inconnue'}`);
}
const data = await response.json();
return data.choices[0].message.content;
} catch (error) {
if (error.message.includes('429')) {
console.error('Limite de taux dépassée. Veuillez réessayer plus tard.');
} else if (error.message.includes('401')) {
console.error('Clé API invalide ou expirée.');
} else {
console.error('Erreur lors de l\'appel à l\'API:', error);
}
throw error;
}
}
Bonnes pratiques de sécurité
Pour sécuriser votre utilisation de l’API ChatGPT :
-
Ne stockez jamais votre clé API dans le code source
- Utilisez des variables d’environnement
- Utilisez un service de gestion de secrets
-
Limitez l’accès à votre clé API
- Créez des clés API avec des permissions limitées
- Surveillez l’utilisation de votre clé
-
Implémentez des limites de taux
- Limitez le nombre d’appels par utilisateur
- Mettez en place un système de file d’attente
-
Validez les entrées utilisateur
- Nettoyez les prompts avant de les envoyer à l’API
- Limitez la taille des prompts
Exemple d’implémentation sécurisée
// Utilisation de variables d'environnement
const OPENAI_API_KEY = process.env.OPENAI_API_KEY;
// Validation des entrées
function validatePrompt(prompt) {
if (!prompt || typeof prompt !== 'string') {
throw new Error('Le prompt doit être une chaîne de caractères non vide');
}
if (prompt.length > 4000) {
throw new Error('Le prompt est trop long (maximum 4000 caractères)');
}
return prompt.trim();
}
// Fonction sécurisée pour appeler l'API
async function secureChatGPTCall(prompt) {
// Valider le prompt
const validatedPrompt = validatePrompt(prompt);
// Vérifier la clé API
if (!OPENAI_API_KEY) {
throw new Error('Clé API non configurée');
}
// Appeler l'API avec gestion d'erreurs
return callChatGPTWithErrorHandling(validatedPrompt);
}
Commentaires
Les commentaires sont alimentés par GitHub Discussions
Connectez-vous avec GitHub pour participer à la discussion