chunking-intelligent-api-V2 / deployment_instructions.md
KJ24's picture
Upload 9 files
26b23e3 verified
# 🚀 Instructions de déploiement - Smart Chunker v4.0
## 📋 Étapes à suivre
### 1. **Remplacement des fichiers**
Remplace les fichiers suivants dans ton projet par les versions corrigées :
```bash
# Fichiers à remplacer
├── chunker_pipeline.py # ✅ Version corrigée avec CustomRecursiveChunker
├── requirements.txt # ✅ Dépendances compatibles épinglées
├── app.py # ✅ API FastAPI mise à jour
└── custom_recursive_chunker.py # ✅ Nouveau fichier à ajouter
```
### 2. **Garde les fichiers existants**
Ces fichiers restent inchangés :
- `config.yaml` ✅ (déjà compatible)
- `schemas.py` ✅ (déjà compatible)
- `Dockerfile` (si nécessaire)
### 3. **Structure finale du projet**
```
ton_projet/
├── app.py # ✅ API FastAPI corrigée
├── chunker_pipeline.py # ✅ Pipeline principal corrigé
├── custom_recursive_chunker.py # ✅ NOUVEAU - Chunker personnalisé
├── requirements.txt # ✅ Dépendances mises à jour
├── config.yaml # ✅ Configuration existante (OK)
├── schemas.py # ✅ Schémas existants (OK)
└── Dockerfile # ✅ Si nécessaire
```
## 🔧 Changements principaux
### ✅ Chunker personnalisé au lieu de chonkie instable
- Plus de problèmes avec `separators=` ou `chunk_sizes=`
- Logique récursive native et contrôlée
- Compatible avec toutes les versions
### ✅ Embeddings corrigés
- `EmbeddingWrapper` pour compatibilité LlamaIndex
- Plus d'erreurs `encode()`
- SentenceTransformer utilisé directement
### ✅ Imports simplifiés
- Import seulement de `SemanticChunker` depuis chonkie (optionnel)
- Plus de dépendances sur des modules instables
- Fallback automatique si chonkie indisponible
## 🧪 Test de fonctionnement
Après déploiement, teste avec :
```bash
# 1. Health check
curl -X GET "http://localhost:7860/health"
# 2. Test simple
curl -X POST "http://localhost:7860/test"
# 3. Chunking personnalisé
curl -X POST "http://localhost:7860/chunk" \
-H "Content-Type: application/json" \
-d '{
"text": "Ton texte à chunker ici...",
"method": "custom_recursive",
"export_obsidian": true,
"metadata": {"title": "Test Document"}
}'
```
## 📊 Méthodes disponibles
1. **`custom_recursive`** (recommandée) - Chunker intelligent personnalisé
2. **`chonkie_semantic`** (si chonkie disponible) - Chunking sémantique
3. **`llamaindex`** (fallback) - Chunking standard LlamaIndex
## 🔍 Vérifications de debug
Si problèmes persistent :
### 1. Vérifier les logs d'initialisation
```bash
# Recherche ces lignes dans les logs :
✅ CustomRecursiveChunker initialisé avec succès
✅ SmartChunkerPipeline v4.0 initialisé avec succès
✅ Pipeline initialisé avec succès
```
### 2. Endpoint de diagnostic
```bash
GET /config # Configuration active
GET /methods # Méthodes disponibles
GET /health # État détaillé des composants
```
### 3. Test minimal
```python
# Test local rapide
import asyncio
from chunker_pipeline import SmartChunkerPipeline
async def test():
pipeline = SmartChunkerPipeline()
await pipeline.initialize()
chunks = await pipeline.chunk_text("Test simple", method="custom_recursive")
print(f"✅ {len(chunks)} chunks générés")
asyncio.run(test())
```
## 🎯 Avantages de cette solution
### ✅ **Stabilité**
- Plus de dépendances sur des versions instables de chonkie
- Chunker personnalisé 100% maîtrisé
- Compatibilité garantie avec LlamaIndex v0.12
### ✅ **Fonctionnalités complètes**
- Chunking récursif hiérarchique intelligent
- Relations parent-enfant automatiques
- Embeddings sémantiques intégrés
- Export Obsidian formaté
### ✅ **Performance**
- Optimisé pour HuggingFace Spaces
- Modèles légers (CPU-friendly)
- Cache intelligent des embeddings
### ✅ **Flexibilité**
- 3 méthodes de chunking disponibles
- Configuration modulaire via YAML
- API RESTful complète
## 🚨 Points d'attention
1. **Première initialisation** peut prendre 1-2 minutes (téléchargement modèles)
2. **Mémoire requise** : ~2GB RAM pour les modèles
3. **CPU uniquement** sur HF Spaces gratuits (normal)
4. **Cache des modèles** : utilise le répertoire temporaire
## 📞 Support
Si tu rencontres des erreurs après déploiement :
1. **Copie les logs complets** (surtout les lignes avec ❌)
2. **Teste l'endpoint** `/health` pour diagnostic
3. **Vérifie** que tous les fichiers sont bien remplacés
4. **Confirme** la version Python (3.10+ recommandée)
---
🎉 **Cette solution devrait résoudre définitivement tous les problèmes identifiés dans ta discussion avec GPT !**