routeur_ia_api / postman_collection.json
Cyril Dupland
FIrst Commit
d28f1ed
raw
history blame
14 kB
{
"info": {
"_postman_id": "capl-routeur-ia-api",
"name": "CAPL Routeur IA API",
"description": "Collection complète pour l'API Routeur IA avec LangGraph\n\n## Configuration\n1. Créer un environnement Postman avec:\n - `base_url`: http://localhost:7860\n - `token`: (sera rempli automatiquement après /auth/token)\n\n## Workflow\n1. Exécuter POST /auth/token pour obtenir un JWT\n2. Le token sera automatiquement sauvegardé\n3. Tous les autres endpoints l'utiliseront automatiquement",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Authentication",
"item": [
{
"name": "Get JWT Token",
"event": [
{
"listen": "test",
"script": {
"exec": [
"// Sauvegarder le token automatiquement",
"if (pm.response.code === 200) {",
" const jsonData = pm.response.json();",
" pm.environment.set(\"token\", jsonData.access_token);",
" console.log(\"Token saved:\", jsonData.access_token);",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{}"
},
"url": {
"raw": "{{base_url}}/auth/token",
"host": [
"{{base_url}}"
],
"path": [
"auth",
"token"
]
},
"description": "Obtenir un token JWT pour authentification.\nLe token est automatiquement sauvegardé dans l'environnement."
},
"response": []
},
{
"name": "Verify Token",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{token}}",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/auth/verify",
"host": [
"{{base_url}}"
],
"path": [
"auth",
"verify"
]
},
"description": "Vérifier si le token JWT est valide."
},
"response": []
}
],
"description": "Endpoints d'authentification JWT"
},
{
"name": "Info & Health",
"item": [
{
"name": "Root - API Info",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/",
"host": [
"{{base_url}}"
],
"path": [
""
]
},
"description": "Informations générales sur l'API (route publique)."
},
"response": []
},
{
"name": "Health Check",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/health",
"host": [
"{{base_url}}"
],
"path": [
"health"
]
},
"description": "Vérifier l'état de santé de l'API (route publique)."
},
"response": []
}
],
"description": "Routes publiques d'information"
},
{
"name": "Models & Agents",
"item": [
{
"name": "List Available Models",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{token}}",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/models",
"host": [
"{{base_url}}"
],
"path": [
"models"
]
},
"description": "Liste tous les modèles LLM disponibles (OpenAI et Mistral AI)."
},
"response": []
},
{
"name": "List Available Agents",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{token}}",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/agents",
"host": [
"{{base_url}}"
],
"path": [
"agents"
]
},
"description": "Liste tous les types d'agents disponibles."
},
"response": []
}
],
"description": "Endpoints pour lister les modèles et agents"
},
{
"name": "Completion",
"item": [
{
"name": "Completion Simple (GPT-4o)",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{token}}",
"type": "string"
}
]
},
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"message\": \"Bonjour, comment vas-tu?\",\n \"model\": \"gpt-4o\",\n \"agent_type\": \"simple\",\n \"stream\": false,\n \"temperature\": 0.7\n}"
},
"url": {
"raw": "{{base_url}}/completion",
"host": [
"{{base_url}}"
],
"path": [
"completion"
]
},
"description": "Completion simple avec GPT-4o (mode non-streaming)."
},
"response": []
},
{
"name": "Completion Simple (Mistral Large)",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{token}}",
"type": "string"
}
]
},
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"message\": \"Explique-moi la théorie de la relativité en 2 phrases\",\n \"model\": \"mistral-large-latest\",\n \"agent_type\": \"simple\",\n \"stream\": false,\n \"temperature\": 0.7\n}"
},
"url": {
"raw": "{{base_url}}/completion",
"host": [
"{{base_url}}"
],
"path": [
"completion"
]
},
"description": "Completion simple avec Mistral Large (mode non-streaming)."
},
"response": []
},
{
"name": "Completion Streaming (GPT-3.5)",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{token}}",
"type": "string"
}
]
},
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"message\": \"Raconte-moi une courte histoire\",\n \"model\": \"gpt-3.5-turbo\",\n \"agent_type\": \"simple\",\n \"stream\": true,\n \"temperature\": 0.9\n}"
},
"url": {
"raw": "{{base_url}}/completion",
"host": [
"{{base_url}}"
],
"path": [
"completion"
]
},
"description": "Completion avec streaming (Server-Sent Events).\nNote: Postman peut avoir des limites avec les SSE, testez avec curl pour un meilleur résultat."
},
"response": []
},
{
"name": "Completion avec Historique",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{token}}",
"type": "string"
}
]
},
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"message\": \"Et en Python?\",\n \"model\": \"gpt-4o\",\n \"stream\": false,\n \"conversation_history\": [\n {\n \"role\": \"user\",\n \"content\": \"Comment faire une boucle en JavaScript?\"\n },\n {\n \"role\": \"assistant\",\n \"content\": \"En JavaScript, vous pouvez utiliser: for (let i = 0; i < 10; i++) { console.log(i); }\"\n }\n ]\n}"
},
"url": {
"raw": "{{base_url}}/completion",
"host": [
"{{base_url}}"
],
"path": [
"completion"
]
},
"description": "Completion avec historique de conversation pour maintenir le contexte."
},
"response": []
},
{
"name": "Completion avec Paramètres Avancés",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{token}}",
"type": "string"
}
]
},
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"message\": \"Écris un poème court sur l'IA\",\n \"model\": \"gpt-4o\",\n \"agent_type\": \"simple\",\n \"stream\": false,\n \"temperature\": 1.2,\n \"max_tokens\": 150\n}"
},
"url": {
"raw": "{{base_url}}/completion",
"host": [
"{{base_url}}"
],
"path": [
"completion"
]
},
"description": "Completion avec température élevée et limitation de tokens."
},
"response": []
}
],
"description": "Endpoints de completion texte (simple et streaming)"
},
{
"name": "Transcription",
"item": [
{
"name": "Transcribe Audio File",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{token}}",
"type": "string"
}
]
},
"method": "POST",
"header": [],
"body": {
"mode": "formdata",
"formdata": [
{
"key": "file",
"description": "Fichier audio (mp3, wav, m4a, etc.)",
"type": "file",
"src": []
}
]
},
"url": {
"raw": "{{base_url}}/transcription",
"host": [
"{{base_url}}"
],
"path": [
"transcription"
]
},
"description": "Transcription audio vers texte avec OpenAI Whisper.\nSupporte: mp3, mp4, mpeg, mpga, m4a, wav, webm\nMax: 25 MB"
},
"response": []
},
{
"name": "Transcribe with Language",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{token}}",
"type": "string"
}
]
},
"method": "POST",
"header": [],
"body": {
"mode": "formdata",
"formdata": [
{
"key": "file",
"description": "Fichier audio",
"type": "file",
"src": []
}
]
},
"url": {
"raw": "{{base_url}}/transcription?language=fr",
"host": [
"{{base_url}}"
],
"path": [
"transcription"
],
"query": [
{
"key": "language",
"value": "fr",
"description": "Code langue ISO-639-1 (fr, en, es, etc.)"
}
]
},
"description": "Transcription avec langue spécifiée pour améliorer la précision."
},
"response": []
},
{
"name": "Get Supported Formats",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{token}}",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/transcription/supported-formats",
"host": [
"{{base_url}}"
],
"path": [
"transcription",
"supported-formats"
]
},
"description": "Liste des formats audio supportés et limitations."
},
"response": []
}
],
"description": "Endpoints de transcription audio (STT)"
},
{
"name": "Real-time",
"item": [
{
"name": "Get Active Connections",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{token}}",
"type": "string"
}
]
},
"method": "GET",
"header": [],
"url": {
"raw": "{{base_url}}/realtime/connections",
"host": [
"{{base_url}}"
],
"path": [
"realtime",
"connections"
]
},
"description": "Nombre de connexions WebSocket actives."
},
"response": []
},
{
"name": "Broadcast Message",
"request": {
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{token}}",
"type": "string"
}
]
},
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"text\": \"Message de broadcast à tous les clients\",\n \"priority\": \"normal\"\n}"
},
"url": {
"raw": "{{base_url}}/realtime/broadcast",
"host": [
"{{base_url}}"
],
"path": [
"realtime",
"broadcast"
]
},
"description": "Envoyer un message à toutes les connexions WebSocket actives."
},
"response": []
}
],
"description": "Endpoints temps réel (WebSocket)\nNote: WebSocket /realtime/ws doit être testé avec un client WebSocket"
}
],
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [
"// Script global pre-request",
"// Vérifier si le token existe",
"if (!pm.environment.get(\"token\")) {",
" console.log(\"⚠️ Token manquant. Exécutez d'abord POST /auth/token\");",
"}"
]
}
}
],
"variable": [
{
"key": "base_url",
"value": "http://localhost:7860",
"type": "string"
}
]
}