| # 🚀 Guide de Démarrage Rapide |
|
|
| ## Installation en 5 minutes |
|
|
| ### 1. Prérequis |
| - Python 3.12+ |
| - Clés API OpenAI et Mistral AI |
|
|
| ### 2. Installation |
|
|
| ```bash |
| # Créer environnement virtuel |
| python -m venv venv |
| source venv/bin/activate # Linux/Mac |
| # ou venv\Scripts\activate sur Windows |
| |
| # Installer dépendances |
| pip install -r requirements.txt |
| ``` |
|
|
| ### 3. Configuration |
|
|
| Copiez `.env.example` vers `.env` et remplissez vos clés API: |
|
|
| ```env |
| OPENAI_API_KEY=sk-votre-cle-openai |
| MISTRALAI_API_KEY=votre-cle-mistral |
| JWT_SECRET_KEY=changez-moi-en-production |
| ``` |
|
|
| ### 4. Lancement |
|
|
| ```bash |
| python app.py |
| ``` |
|
|
| L'API sera accessible sur: http://localhost:7860 |
|
|
| Documentation interactive: http://localhost:7860/docs |
|
|
| ## 🎯 Premier test |
|
|
| ### 1. Obtenir un token JWT |
|
|
| ```bash |
| curl -X POST http://localhost:7860/auth/token |
| ``` |
|
|
| Vous obtiendrez: |
| ```json |
| { |
| "access_token": "eyJhbG...", |
| "token_type": "bearer", |
| "expires_in": 3600 |
| } |
| ``` |
|
|
| ### 2. Tester la completion |
|
|
| ```bash |
| TOKEN="<votre-token>" |
| |
| curl -X POST http://localhost:7860/completion \ |
| -H "Authorization: Bearer $TOKEN" \ |
| -H "Content-Type: application/json" \ |
| -d '{ |
| "message": "Dis bonjour en français", |
| "model": "gpt-4o", |
| "stream": false |
| }' |
| ``` |
|
|
| ### 3. Tester le streaming |
|
|
| ```bash |
| curl -N -X POST http://localhost:7860/completion \ |
| -H "Authorization: Bearer $TOKEN" \ |
| -H "Content-Type: application/json" \ |
| -d '{ |
| "message": "Compte de 1 à 10", |
| "model": "gpt-3.5-turbo", |
| "stream": true |
| }' |
| ``` |
|
|
| ### 4. Lister les modèles disponibles |
|
|
| ```bash |
| curl -X GET http://localhost:7860/models \ |
| -H "Authorization: Bearer $TOKEN" |
| ``` |
|
|
| ### 5. Transcription audio |
|
|
| ```bash |
| curl -X POST http://localhost:7860/transcription \ |
| -H "Authorization: Bearer $TOKEN" \ |
| -F "file=@votre-fichier.mp3" |
| ``` |
|
|
| ## 🔧 Configuration avancée |
|
|
| ### LangSmith (monitoring) |
|
|
| Activez LangSmith dans `.env`: |
| ```env |
| LANGCHAIN_TRACING_V2=true |
| LANGCHAIN_API_KEY=votre-cle-langsmith |
| LANGCHAIN_PROJECT=routeur-ia |
| ``` |
|
|
| ### Production |
|
|
| ```bash |
| # Générer un secret JWT sécurisé |
| python -c "import secrets; print(secrets.token_urlsafe(32))" |
| |
| # Lancer en production |
| uvicorn app:app --host 0.0.0.0 --port 7860 --workers 4 |
| ``` |
|
|
| ## 🐳 Docker |
|
|
| ```bash |
| # Build |
| docker build -t routeur-ia-api . |
| |
| # Run |
| docker run -p 7860:7860 --env-file .env routeur-ia-api |
| ``` |
|
|
| ## 📚 Prochaines étapes |
|
|
| - Consultez le [README.md](README.md) pour la documentation complète |
| - Explorez la documentation interactive sur `/docs` |
| - Ajoutez vos propres graphes LangGraph dans `graphs/` |
| - Personnalisez les agents dans `services/agent_registry.py` |
|
|
| ## ❓ Problèmes courants |
|
|
| ### Erreur "Could not validate credentials" |
| → Vérifiez que vous incluez le token dans le header `Authorization: Bearer <token>` |
|
|
| ### Erreur "API key not found" |
| → Vérifiez votre fichier `.env` et que les clés API sont correctes |
|
|
| ### Erreur au lancement |
| → Vérifiez que toutes les dépendances sont installées: `pip install -r requirements.txt` |
|
|
| ## 💡 Exemples de code |
|
|
| ### Python |
|
|
| ```python |
| import requests |
| |
| # Obtenir token |
| token_response = requests.post("http://localhost:7860/auth/token") |
| token = token_response.json()["access_token"] |
| |
| # Completion |
| headers = {"Authorization": f"Bearer {token}"} |
| response = requests.post( |
| "http://localhost:7860/completion", |
| headers=headers, |
| json={ |
| "message": "Bonjour!", |
| "model": "gpt-4o", |
| "stream": False |
| } |
| ) |
| print(response.json()) |
| ``` |
|
|
| ### JavaScript |
|
|
| ```javascript |
| // Obtenir token |
| const tokenRes = await fetch('http://localhost:7860/auth/token', { |
| method: 'POST' |
| }); |
| const { access_token } = await tokenRes.json(); |
| |
| // Completion |
| const response = await fetch('http://localhost:7860/completion', { |
| method: 'POST', |
| headers: { |
| 'Authorization': `Bearer ${access_token}`, |
| 'Content-Type': 'application/json' |
| }, |
| body: JSON.stringify({ |
| message: 'Hello!', |
| model: 'gpt-4o', |
| stream: false |
| }) |
| }); |
| const data = await response.json(); |
| console.log(data); |
| ``` |
|
|
| Bon codage! 🎉 |
|
|
|
|