# 📝 Effi-OCR Service OCR (Optical Character Recognition) pour Effi. Extrait le texte des images et photos de documents. --- ## 🎯 FonctionnalitĂ©s - Extraction de texte Ă  partir d'images (JPEG, PNG, GIF, BMP, TIFF, WebP) - Support multilingue (Français, Anglais, Allemand, Espagnol, Italien) - PrĂ©traitement automatique pour amĂ©liorer la qualitĂ© - API REST simple et rapide - IntĂ©gration OpenWebUI via Tool --- ## 🚀 DĂ©marrage rapide ```bash # Construire et dĂ©marrer cd ~/Documents/OpenCode/Projets/Effi/effi-ocr sudo docker compose up -d --build # VĂ©rifier le service curl http://localhost:8300/health ``` --- ## 📡 API Endpoints ### Health Check ```bash GET /health ``` ### OCR - Upload fichier ```bash POST /ocr Content-Type: multipart/form-data Parameters: - file: Image Ă  analyser - lang: Code langue (fra, eng, fra+eng, etc.) - preprocess: true/false (prĂ©traitement auto) ``` Exemple: ```bash curl -X POST -F "file=@photo.jpg" -F "lang=fra" http://localhost:8300/ocr ``` ### OCR - Base64 ```bash POST /ocr/base64 Content-Type: application/json { "image_base64": "...", "lang": "fra", "preprocess": true } ``` ### Langues disponibles ```bash GET /languages ``` --- ## 🔧 Configuration ### Variables d'environnement | Variable | DĂ©faut | Description | |----------|--------|-------------| | `OCR_URL` | `http://192.168.1.11:8300` | URL du service OCR | ### Langues supportĂ©es - `fra` - Français - `eng` - Anglais - `fra+eng` - Bilingue FR+EN - `deu` - Allemand - `spa` - Espagnol - `ita` - Italien --- ## 🐳 Docker ### Construction ```bash sudo docker compose build ``` ### DĂ©marrage ```bash sudo docker compose up -d ``` ### Logs ```bash sudo docker logs effi-ocr -f ``` ### ArrĂȘt ```bash sudo docker compose down ``` --- ## 🔗 IntĂ©gration OpenWebUI Voir [TOOL-OPENWEBUI.md](TOOL-OPENWEBUI.md) pour la configuration complĂšte du Tool. **RĂ©sumĂ© rapide:** 1. Admin → Tools → Create Tool 2. Copier le code Python fourni 3. Configurer la variable `OCR_URL` 4. Activer le Tool dans les paramĂštres de conversation --- ## đŸ§Ș Tests ### Test de santĂ© ```bash curl http://localhost:8300/health ``` ### Test OCR simple ```bash curl -X POST \ -F "file=@/chemin/vers/image.jpg" \ -F "lang=fra" \ http://localhost:8300/ocr ``` ### Test avec prĂ©traitement dĂ©sactivĂ© ```bash curl -X POST \ -F "file=@image.png" \ -F "lang=eng" \ -F "preprocess=false" \ http://localhost:8300/ocr ``` --- ## 📊 Performance - **Temps de traitement** : ~1-3 secondes par image (dĂ©pend de la taille) - **Formats supportĂ©s** : JPEG, PNG, GIF, BMP, TIFF, WebP - **Taille max recommandĂ©e** : 2048x2048 pixels - **PrĂ©traitement** : Conversion niveaux de gris + contraste (optionnel) --- ## 🐛 DĂ©pannage ### Service ne rĂ©pond pas ```bash # VĂ©rifier si le conteneur tourne sudo docker ps | grep effi-ocr # RedĂ©marrer sudo docker restart effi-ocr # Voir les logs sudo docker logs effi-ocr ``` ### Tesseract non trouvĂ© L'erreur indique que Tesseract n'est pas installĂ© dans le conteneur. Reconstruire: ```bash sudo docker compose down sudo docker compose up -d --build ``` ### OCR de mauvaise qualitĂ© - Utiliser `lang=fra+eng` pour les documents mixtes - S'assurer que l'image est bien Ă©clairĂ©e - VĂ©rifier la rĂ©solution (300 DPI recommandĂ© pour documents) - Activer le prĂ©traitement (par dĂ©faut: true) --- ## 📁 Structure ``` effi-ocr/ ├── main.py # API FastAPI ├── Dockerfile # Configuration Docker ├── docker-compose.yml # Orchestration ├── requirements.txt # DĂ©pendances Python ├── README.md # Ce fichier └── TOOL-OPENWEBUI.md # Guide Tool OpenWebUI ``` --- ## 📝 DĂ©pendances - Python 3.11 - FastAPI - Pillow (traitement d'images) - pytesseract (wrapper Tesseract) - Tesseract OCR 5.x --- ## 🎹 Cas d'usage - **NumĂ©risation de livres** : Extraire le texte de photos de pages - **Factures** : RĂ©cupĂ©rer les informations de factures scannĂ©es - **Documents** : OCR sur PDF et images de documents - **Notes manuscrites** : Reconnaissance de texte manuscrit (limitĂ©e) --- ## 🔒 SĂ©curitĂ© - Le service Ă©coute uniquement sur localhost (127.0.0.1:8300) - Aucune donnĂ©e n'est stockĂ©e persistante - Les images sont traitĂ©es en mĂ©moire et supprimĂ©es aprĂšs --- Créé le 6 Avril 2026