Authentification
L'API YODI utilise l'authentification par clé API pour sécuriser l'accès à nos services.
Obtenir votre clé API​
- Connectez-vous Ă votre tableau de bord YODI
- Accédez à « API Settings »
- Cliquez sur « Generate a new key »
- Copiez et stockez votre clé en toute sécurité
Sécurité
- Ne partagez jamais votre clé API
- Ne l'intégrez pas dans du code côté client
- Utilisez des variables d'environnement
- Régénérez-la si elle est compromise
Utilisation de la clé API​
En-tête Authorization​
Incluez votre clé API dans l'en-tête Authorization de chaque requête :
Authorization: Bearer your_api_key_here
Exemple cURL​
curl -X POST "https://api.yodi.tg/v1/chat/completions" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"model": "yodi-1",
"messages": [
{"role": "user", "content": "Hello!"}
]
}'
Exemple Python​
import requests
headers = {
'Authorization': 'Bearer your_api_key_here',
'Content-Type': 'application/json'
}
data = {
'model': 'yodi-1',
'messages': [
{'role': 'user', 'content': 'Hello!'}
]
}
response = requests.post(
'https://api.yodi.tg/v1/chat/completions',
headers=headers,
json=data
)
Exemple JavaScript​
const response = await fetch('https://api.yodi.tg/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': 'Bearer your_api_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'yodi-1',
messages: [
{ role: 'user', content: 'Hello!' }
]
})
});
Configuration SDK​
SDK Python​
from yodi import Client
# Method 1: Direct
client = Client(api_key="your_api_key_here")
# Method 2: Environment variable (recommended)
import os
client = Client(api_key=os.getenv("YODI_API_KEY"))
# Method 3: Automatic configuration
# The SDK will automatically look for YODI_API_KEY in the environment
client = Client()
SDK JavaScript​
import { YodiClient } from 'yodi-sdk';
// Method 1: Direct
const client = new YodiClient({
apiKey: 'your_api_key_here'
});
// Method 2: Environment variable (recommended)
const client = new YodiClient({
apiKey: process.env.YODI_API_KEY
});
// Method 3: Automatic configuration
const client = new YodiClient(); // Uses process.env.YODI_API_KEY
Variables d'environnement​
Fichier .env​
Créez un fichier .env à la racine de votre projet :
YODI_API_KEY=your_api_key_here
YODI_BASE_URL=https://api.yodi.tg/v1
Configuration système​
Linux/macOS​
export YODI_API_KEY="your_api_key_here"
export YODI_BASE_URL="https://api.yodi.tg/v1"
Windows PowerShell​
$env:YODI_API_KEY="your_api_key_here"
$env:YODI_BASE_URL="https://api.yodi.tg/v1"
Windows Invite de commandes​
set YODI_API_KEY=your_api_key_here
set YODI_BASE_URL=https://api.yodi.tg/v1
Erreurs d'authentification​
Codes d'erreur courants​
| Code | Description | Solution |
|---|---|---|
401 | Clé API manquante ou invalide | Vérifiez votre clé API |
403 | Accès refusé | Vérifiez les permissions de votre clé |
429 | Limite de débit dépassée | Voir Limites de débit |
Exemples de réponses d'erreur​
{
"message": "INVALID_API_KEY",
"error": true,
"data": null,
"status": 401
}
Gestion des erreurs​
try:
response = client.chat.completions.create(
model="yodi-1",
messages=[{"role": "user", "content": "Hello"}]
)
except Exception as e:
if "401" in str(e):
print("Authentication error - check your API key")
elif "403" in str(e):
print("Access denied - insufficient permissions")
elif "429" in str(e):
print("Rate limit exceeded - please wait and retry")
else:
print(f"Error: {e}")
Rotation des clés​
Bonnes pratiques​
- Rotation régulière : Changez vos clés tous les 90 jours
- Clés multiples : Utilisez différentes clés pour différents environnements
- Surveillance : Surveillez l'utilisation des clés
- Révocation : Révoquez immédiatement les clés compromises
Processus de rotation​
- Générez une nouvelle clé API
- Testez-la dans un environnement de développement
- Déployez-la progressivement en production
- Révoquez l'ancienne clé après la migration complète
Sécurité avancée​
Restrictions IP (Enterprise)​
# Configure allowed IPs
curl -X POST "https://api.yodi.tg/v1/api-keys/restrictions" \
-H "Authorization: Bearer your_api_key_here" \
-d '{
"allowed_ips": ["192.168.1.0/24", "10.0.0.1"]
}'
Étendues et permissions​
Les clés API peuvent avoir différents niveaux d'accès :
read: Lecture seule (modèles, utilisation)write: Utilisation complète de l'APIadmin: Gérer les clés et les paramètres
Audit et journalisation​
Suivez l'utilisation de votre clé API dans le tableau de bord :
- Nombre de requĂŞtes
- Endpoints utilisés
- Erreurs et tentatives échouées
- Géolocalisation des requêtes