Documentation non disponible pour la section Introduction
Documentation non disponible pour la section Installation et Démarrage
Documentation non disponible pour la section Points d'Entrée de l'API
Documentation non disponible pour la section API de Téléchargement de Fichiers
Documentation non disponible pour la section 🎯 Extraction de Thèmes - Exemples
Documentation non disponible pour la section Utilisation de l'Interface Swagger
MCP (Model Context Protocol) API
Direct SSE-based access to Synthesia document processing.
API Endpoints
Production
https://api.dev.synthesia.bhub.cloud/mcp/sse # SSE stream
https://api.dev.synthesia.bhub.cloud/mcp/messages # POST messages
https://api.dev.synthesia.bhub.cloud/mcp/info # Server info
https://api.dev.synthesia.bhub.cloud/mcp/tools # List tools
Local Development
http://localhost:8052/mcp/sse
http://localhost:8052/mcp/messages
Authentication
API Keys (Recommended)
Never expire, ideal for integrations.
1. Get JWT token:
curl -X POST 'https://api.dev.synthesia.bhub.cloud/auth/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'username=USERNAME&password=PASSWORD'
2. Create API key:
curl -X POST 'https://api.dev.synthesia.bhub.cloud/auth/api-keys' \
-H 'Authorization: Bearer YOUR_JWT_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"name": "My MCP Client"}'
Response: {"key": "sk_synthesia_...", "key_id": "...", ...}
3. Use API key:
curl -H "X-API-Key: sk_synthesia_YOUR_KEY" \
https://api.dev.synthesia.bhub.cloud/mcp/info
Manage keys:
# List all your keys
curl -H "Authorization: Bearer YOUR_JWT" \
https://api.dev.synthesia.bhub.cloud/auth/api-keys
# Revoke a key
curl -X DELETE \
-H "Authorization: Bearer YOUR_JWT" \
https://api.dev.synthesia.bhub.cloud/auth/api-keys/KEY_ID
JWT Bearer Tokens
Expire after 24 hours (default).
# Get token
curl -X POST 'https://api.dev.synthesia.bhub.cloud/auth/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'username=USERNAME&password=PASSWORD'
# Use token
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://api.dev.synthesia.bhub.cloud/mcp/info
SSE Connection
Open SSE stream for real-time communication:
# With API key
curl -N -H "X-API-Key: sk_synthesia_YOUR_KEY" \
https://api.dev.synthesia.bhub.cloud/mcp/sse
# With JWT token
curl -N -H "Authorization: Bearer YOUR_TOKEN" \
https://api.dev.synthesia.bhub.cloud/mcp/sse
Send Messages
POST JSON-RPC messages to invoke tools:
# List available tools
curl -X POST https://api.dev.synthesia.bhub.cloud/mcp/messages \
-H "X-API-Key: sk_synthesia_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/list",
"id": 1
}'
# Call a tool
curl -X POST https://api.dev.synthesia.bhub.cloud/mcp/messages \
-H "X-API-Key: sk_synthesia_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "get_document_status",
"arguments": {"document_id": "abc123"}
},
"id": 2
}'
Available Tools
Get full list: GET https://api.dev.synthesia.bhub.cloud/mcp/tools
Document Management
upload_document- Upload PDF, DOCX, TXT, audio, videolist_documents- List all documents with statusget_document_status- Check processing statusdownload_original_document- Download original filedelete_document- Delete document and data
Document Conversion
convert_file_to_document- Convert to markdown/textconvert_url_to_document- Convert from URLconvert_audio_to_document- Transcribe audio/videoget_converted_document- Get markdown contentsave_converted_document- Save edited content
Document Processing
process_document_complete- Full pipeline: convert, topics, index, reportwait_for_processing- Wait for completion
Analysis Tools
extract_document_topics- Extract topics with AIget_topic_details- Get topic informationfind_similar_topics- Find similar topics across docscreate_search_index- Create RAPTOR indexsearch_document- Semantic searchgenerate_report- Generate analysis report
Examples
Check Server Status
curl -H "X-API-Key: sk_synthesia_YOUR_KEY" \
https://api.dev.synthesia.bhub.cloud/mcp/info
Response:
{
"name": "Synthesia MCP Server",
"version": "1.0.0",
"tool_count": 25,
"categories": ["document_management", "conversion", "analysis"]
}
Upload Document
curl -X POST https://api.dev.synthesia.bhub.cloud/mcp/messages \
-H "X-API-Key: sk_synthesia_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "upload_document",
"arguments": {
"file": "base64_encoded_file_content",
"filename": "document.pdf"
}
},
"id": 1
}'
List Documents
curl -X POST https://api.dev.synthesia.bhub.cloud/mcp/messages \
-H "X-API-Key: sk_synthesia_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "list_documents"
},
"id": 2
}'
Process Document
curl -X POST https://api.dev.synthesia.bhub.cloud/mcp/messages \
-H "X-API-Key: sk_synthesia_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "process_document_complete",
"arguments": {
"document_id": "abc123",
"options": {
"extract_topics": true,
"create_index": true,
"generate_report": true
}
}
},
"id": 3
}'
Troubleshooting
Authentication Errors
"Authentication failed"
# Verify API key
curl -H "Authorization: Bearer YOUR_JWT" \
https://api.dev.synthesia.bhub.cloud/auth/api-keys
# Check key format: must start with "sk_synthesia_"
# Regenerate if expired or invalid
"Invalid token"
# JWT expired after 24h, get new one
curl -X POST 'https://api.dev.synthesia.bhub.cloud/auth/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-d 'username=USERNAME&password=PASSWORD'
Connection Errors
SSE stream not connecting
- Verify URL: https://api.dev.synthesia.bhub.cloud/mcp/sse
- Check authentication header
- Ensure firewall allows SSE connections
Messages endpoint timeout
- Check network connectivity
- Verify endpoint: https://api.dev.synthesia.bhub.cloud/mcp/messages
- Try with shorter timeout: curl --max-time 30
Tool Errors
"Tool not found"
# Get list of available tools
curl https://api.dev.synthesia.bhub.cloud/mcp/tools
"Invalid arguments"
- Check tool schema in /mcp/tools response
- Ensure all required arguments provided
- Validate argument types (string, number, boolean, object)
API Documentation
Full REST API docs: https://api.dev.synthesia.bhub.cloud/docs
Interactive OpenAPI interface with: - All endpoints and schemas - Try-it-out functionality - Request/response examples - Authentication testing
Documentation non disponible pour la section Génération de Détails Thématiques
Dépannage
Problèmes Courants et Solutions
L'API ne Démarre Pas
- Vérifier l'environnement virtuel: Assurez-vous d'avoir activé l'environnement virtuel
- Vérifier la disponibilité du port: Assurez-vous que le port 8050 n'est pas utilisé par un autre processus
- Vérifier les dépendances: Assurez-vous que toutes les dépendances sont installées avec
pip install -r requirements.txt - Vérifier les journaux: Recherchez les messages d'erreur dans la sortie du terminal
Problèmes de Traitement de Documents
- Contenu du document vide: Vérifiez si le document contient du texte extractible
- Délais d'attente de traitement: Pour les grands documents, le traitement peut prendre plus de temps
- L'extraction de thèmes échoue: Assurez-vous que le document a un contenu textuel suffisant
- Problèmes d'indexation RAPTOR: Vérifiez que les thèmes ont été extraits avec succès
Messages d'Erreur Courants
"Erreur de conversion de fichier": Le format du document peut ne pas être pris en charge ou le fichier est corrompu"L'extraction de thèmes a échoué": Le document peut avoir un contenu insuffisant ou un format non reconnu"La création de l'index RAPTOR a échoué": Les étapes de traitement précédentes peuvent avoir échoué"La génération de rapport a échoué": Les données requises pour le rapport peuvent être manquantes
File de Traitement Bloquée
Symptômes: Les conversions audio/vidéo restent en état "processing" indéfiniment, les nouveaux documents ne se traitent pas.
Causes: - Une opération dans la file d'attente n'a pas libéré son emplacement de traitement - Le processus a échoué sans nettoyer correctement ses ressources - La mémoire GPU est saturée par un modèle Whisper bloqué - Le traitement asynchrone a été interrompu sans libérer les ressources
Solutions:
-
Vérifier l'état de la file d'attente (admin requis):
bash curl -H "Authorization: Bearer $TOKEN" http://localhost:8050/admin/monitoring/queue -
Nettoyer les opérations bloquées (admin requis): ```bash # Nettoyer toutes les opérations ayant dépassé leur timeout curl -X POST -H "Authorization: Bearer $TOKEN" \ http://localhost:8050/admin/monitoring/queue/clear-stuck
# Nettoyer une opération spécifique curl -X POST -H "Authorization: Bearer $TOKEN" \ "http://localhost:8050/admin/monitoring/queue/clear-stuck?operation_id=XXX" ```
- Redémarrer l'API si nécessaire: ```bash # Trouver le processus API ps aux | grep "uvicorn api_main:app" | grep -v grep
# Tuer le processus (remplacer PID par l'ID réel)
kill -9
# L'API devrait redémarrer automatiquement, sinon: cd /data/loic/resume_v2/api_package python start_api.py ```
Prévention: - Les opérations ont maintenant un timeout automatique (60 min pour audio/vidéo, 30 min pour autres) - Surveillez régulièrement la file d'attente via l'endpoint admin - Les opérations bloquées sont automatiquement identifiées dans le monitoring
Problèmes GPU/CPU pour la Transcription Audio
Symptômes: Erreurs de mémoire GPU, transcription lente, échecs de conversion audio.
Causes: - Mémoire GPU insuffisante pour les gros fichiers - Configuration GPU incorrecte - Modèle Whisper ne se charge pas sur le bon périphérique
Solutions:
- Vérifier la configuration GPU: ```bash # Vérifier que CUDA est disponible nvidia-smi
# Vérifier la configuration dans .env grep WHISPER_DEVICE .env ```
-
Forcer l'utilisation du CPU:
bash # Dans .env WHISPER_DEVICE=cpu -
Ajuster les limites mémoire:
bash # Dans .env WHISPER_GPU_MEMORY_LIMIT_GB=8.0 # Augmenté de 4GB à 8GB WHISPER_CPU_THRESHOLD_MB=100.0 # Fichiers < 100MB utilisent le CPU -
Surveiller l'utilisation GPU:
bash # Via l'endpoint health curl http://localhost:8050/health/system | jq .gpu
Prévention: - Utilisez WHISPER_DEVICE=cuda pour de meilleures performances - Les petits fichiers (< 100MB) utilisent automatiquement le CPU - La limite mémoire GPU est maintenant de 8GB par défaut
Surveillance et Journalisation
Fichiers de Journaux
L'API génère des fichiers de journaux détaillés qui peuvent aider à diagnostiquer les problèmes:
- Journaux d'application: Situés dans le dossier
logs/ - Journaux de traitement: Inclus dans le dossier du document sous
resu/<document_id>/logs/
Vérification de l'État du Système
Pour vérifier l'état actuel du système:
curl http://localhost:8050/health/system
Cette commande renvoie des informations détaillées sur l'utilisation des ressources système.
Tâches de Maintenance Courantes
Nettoyage du Cache
Pour nettoyer les fichiers temporaires et le cache:
./scripts/cleanup.sh
Mise à Jour des Dépendances
Pour mettre à jour les dépendances vers les dernières versions compatibles:
pip install --upgrade -r requirements.txt
Redémarrage Complet
En cas de problèmes persistants, un redémarrage complet peut résoudre de nombreux problèmes:
./stop_api.sh
./start_api.sh
Gestion du Mode Persistant
Si l'API a été démarrée en mode persistant (mode par défaut ou via ./start_api.sh sans options):
-
Trouver le processus:
bash ps aux | grep uvicorn # ou lsof -ti:8050 -
Arrêter le processus:
bash kill -9 $(lsof -ti:8050) -
Consulter les journaux du mode persistant:
bash ls -lt logs/nohup_api_*.log tail -f logs/nohup_api_TIMESTAMP.log