DocsAPI REST
API REST
Documentation complète de l'API Flask exposant les fonctionnalités de la pipeline THOR.
Configuration
Base URL
http://localhost:8000Content-Type
application/jsonEndpoints
GET
/api/healthVérifie l'état de l'API et des modèles chargés.
Réponse
200 OK
{
"status": "ok",
"models": {
"stt": "whisper",
"nlp": "spacy",
"pathfinding": "dijkstra"
},
"stations_count": 3247,
"connections_count": 5842
}POST
/api/pipelinePipeline complète : Audio → STT → NLP → Pathfinding. Traite un fichier audio et retourne l'itinéraire.
Corps de la requête
Request Body
{
"audio": "base64_encoded_audio_data",
"format": "wav"
}Paramètres
audiostring (base64) — requisformatstring (wav, mp3, webm) — requisRéponse
200 OK
{
"transcript": "Je veux aller de Paris à Lyon",
"origin": "Paris",
"destination": "Lyon",
"is_valid": true,
"confidence": 0.85,
"route": {
"steps": ["Paris Gare de Lyon", "Lyon Part Dieu"],
"total_time": 117,
"total_distance": 390.79,
"metadata": { ... }
}
}POST
/api/searchAnalyse un texte en langage naturel et trouve l'itinéraire correspondant.
Corps de la requête
Request Body
{
"text": "Je voudrais aller de Bordeaux à Marseille"
}Exemple curl
Terminal
curl -X POST http://localhost:8000/api/search \
-H "Content-Type: application/json" \
-d '{"text": "Je veux aller de Paris à Lyon"}'POST
/api/routeTrouve un itinéraire entre deux villes spécifiées directement.
Corps de la requête
Request Body
{
"origin": "Paris",
"destination": "Lyon"
}Réponse
200 OK
{
"success": true,
"route": {
"origin": "Paris",
"destination": "Lyon",
"steps": ["Paris Gare de Lyon", "Lyon Part Dieu"],
"total_time": 117,
"total_distance": 390.79,
"metadata": {
"origin_uic": "87686006",
"destination_uic": "87723197",
"segments": [
{
"from": "Paris Gare de Lyon",
"to": "Lyon Part Dieu",
"temps_min": 117,
"distance_km": 390.79,
"type_train": "TGV",
"geometry": { "type": "LineString", "coordinates": [...] }
}
]
}
}
}GET
/api/stationsListe toutes les gares disponibles avec leurs informations.
Paramètres de requête
searchstring — optionnel (filtre par nom)limitint — optionnel (défaut: 100)Exemple
Terminal
curl "http://localhost:8000/api/stations?search=paris&limit=10"Gestion des erreurs
400 Bad RequestParamètres manquants ou invalides
404 Not FoundGare ou itinéraire non trouvé
500 Internal Server ErrorErreur interne du serveur
Format d'erreur
{
"error": "Message d'erreur descriptif",
"code": "ERROR_CODE",
"details": { ... }
}Conseils d'utilisation
- Utilisez l'option
--preloadau lancement pour précharger les modèles - Pour l'audio, préférez le format WAV 16kHz mono pour de meilleurs résultats
- L'endpoint /api/search est idéal pour les interfaces utilisateur avec saisie libre
- Les géométries des segments permettent d'afficher le tracé réel des voies sur une carte