API de l'orchestrateur Gen AI
L'orchestrateur Gen AI est un service Python (FastAPI) appelé par Tock
(le backend de Tock Studio et les bots) pour toutes les fonctionnalités d'IA générative.
Ses sources sont dans gen-ai/orchestrator-server.
Tock l'appelle avec les propriétés suivantes :
| Propriété | Défaut | Description |
|---|---|---|
tock_gen_ai_orchestrator_server_url |
http://localhost:8000 |
URL de l'orchestrateur |
tock_gen_ai_orchestrator_client_request_timeout_ms |
55000 |
Délai d'expiration des requêtes vers l'orchestrateur (ms) |
La référence complète et à jour de l'API (schémas des requêtes et des réponses, exemples) est générée par FastAPI :
ouvrez /docs (Swagger UI) ou /redoc sur l'orchestrateur, par exemple http://localhost:8000/docs.
Le descripteur OpenAPI est disponible sur /openapi.json.
Les variables d'environnement de l'orchestrateur lui-même sont listées dans la référence de configuration.
Routes
Génération
| Méthode | Chemin | Description |
|---|---|---|
POST |
/rag |
Répond à une question avec une chaîne RAG : condensation de la question, recherche de documents, génération de la réponse. debug=true ajoute des informations de debug |
POST |
/qa |
Renvoie les documents de la base de connaissance correspondant à une question, sans générer de réponse |
POST |
/completion/ |
Envoie un prompt à un LLM (utilisé par le playground) |
POST |
/completion/sentences |
Génère des phrases (utilisé par la génération de phrases) |
Certains réglages de la requête /rag ne se définissent que via l'API, pas dans Tock Studio :
guardrail_setting: vérifie la toxicité de la réponse générée avec un classifieur Bloomz auto-hébergé ({"provider": "BloomzGuardrail", "api_base": "...", "max_score": 0.3}). Si l'un des scores renvoyés par le classifieur dépassemax_score, la réponse est rejetée avec l'erreur1004.compressor_settingavec le fournisseurAwsBedrockRerank(voir Compressor settings).
Fournisseurs
Pour chaque type de fournisseur, les quatre mêmes routes sont disponibles :
| Méthode | Chemin | Description |
|---|---|---|
GET |
/<fournisseurs> |
Liste les fournisseurs pris en charge |
GET |
/<fournisseurs>/{provider_id} |
Renvoie un fournisseur |
GET |
/<fournisseurs>/{provider_id}/setting/example |
Renvoie un exemple de réglage pour le fournisseur |
POST |
/<fournisseurs>/{provider_id}/setting/status |
Vérifie un réglage (par exemple que la clé d'API et le modèle sont valides) |
avec <fournisseurs> :
llm-providers: fournisseurs de LLM,em-providers: fournisseurs d'embeddings,vector-store-providers: bases vectorielles,observability-providers: fournisseurs d'observabilité,document-compressor-providers: compresseurs de documents.
Inspection de la base vectorielle
Utilisées par les écrans d'inspection de la base vectorielle :
| Méthode | Chemin | Description |
|---|---|---|
POST |
/vector-store-inspection/capabilities |
Capacités du fournisseur de base vectorielle (modes de recherche, etc.) |
POST |
/vector-store-inspection/indexes |
Liste les index |
POST |
/vector-store-inspection/documents |
Documents et chunks d'un index, avec statistiques et anomalies |
POST |
/vector-store-inspection/condense |
Condense une question et en extrait les mots-clés |
POST |
/vector-store-inspection/search |
Lance une recherche et renvoie le détail de chaque étape |
Supervision
| Méthode | Chemin | Description |
|---|---|---|
GET |
/health-check |
Vérification de santé |
GET |
/liveness-check |
Vérification de vie |
Erreurs
Les erreurs métier sont renvoyées avec le statut HTTP 400 et un corps JSON contenant un code, un message, un detail
et, quand l'erreur vient d'un fournisseur, un objet info (fournisseur, erreur, cause, requête).
Les codes sont définis dans ErrorCode (gen_ai_orchestrator/models/errors/errors_models.py) :
| Codes | Catégorie |
|---|---|
1000–1005 |
Orchestrateur : erreur inconnue, connexion, authentification, réglage de fournisseur inconnu, vérification du guardrail, template de prompt |
2000–2007 |
Fournisseur d'IA (LLM / embeddings) : fournisseur inconnu, requête invalide, erreur d'API, ressource / modèle / déploiement introuvable, taille de contexte dépassée |
3000–3003 |
Base vectorielle : fournisseur ou réglage inconnu, aucun document trouvé, erreur de données |
4000–4003 |
OpenSearch : réglages, transport, ressource ou index introuvable |
5000–5002 |
Observabilité : fournisseur ou réglage inconnu, erreur d'API |
6000–6003 |
Compresseur de documents : fournisseur, réglage ou label inconnu, erreur d'API |