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 :

# 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 :

# 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

# 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

GET /config  # Configuration active
GET /methods # Méthodes disponibles
GET /health  # État détaillé des composants

3. Test minimal

# 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 !