Files
Effi/effi-ocr
Folzo 93f31cdaeb Ajout Effi-OCR (Tesseract) + Web Scraper pour OpenWebUI
- Effi-OCR: Service OCR avec Tesseract (multilingue FR/EN)
  * API FastAPI sur port 8300
  * Prétraitement images (contraste, niveaux de gris)
  * Tool OpenWebUI intégré

- Web Scraper: Service Python (BeautifulSoup) sur port 11235
  * Alternative à Crawl4AI (incompatible ARM64/J5040)
  * Scraping HTML basique mais fonctionnel
  * Intégré au docker-compose d'effi-server

- Documentation:
  * ROADMAP-FONCTIONNALITES.md: Plan des 9 fonctionnalités
  * WEB-SCRAPER-CONFIG.md: Configuration OpenWebUI
  * WEB-SCRAPER-TOOL.md: Code du Tool

- Script start-all-services.sh mis à jour (6 services)
2026-04-06 16:34:27 +02:00
..

📝 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

# 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

GET /health

OCR - Upload fichier

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:

curl -X POST -F "file=@photo.jpg" -F "lang=fra" http://localhost:8300/ocr

OCR - Base64

POST /ocr/base64
Content-Type: application/json

{
  "image_base64": "...",
  "lang": "fra",
  "preprocess": true
}

Langues disponibles

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

sudo docker compose build

Démarrage

sudo docker compose up -d

Logs

sudo docker logs effi-ocr -f

Arrêt

sudo docker compose down

🔗 Intégration OpenWebUI

Voir 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é

curl http://localhost:8300/health

Test OCR simple

curl -X POST \
  -F "file=@/chemin/vers/image.jpg" \
  -F "lang=fra" \
  http://localhost:8300/ocr

Test avec prétraitement désactivé

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

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

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