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)
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
#!/bin/bash
|
||||
# Script d'ajout de Crawl4AI au docker-compose existant
|
||||
# À exécuter sur effi-server dans /root/effi/
|
||||
|
||||
set -e
|
||||
|
||||
echo "================================"
|
||||
echo "Ajout de Crawl4AI à Effi Server"
|
||||
echo "================================"
|
||||
echo ""
|
||||
|
||||
# Vérifier qu'on est dans le bon répertoire
|
||||
if [ ! -f "docker-compose.yml" ]; then
|
||||
echo "❌ Erreur: docker-compose.yml non trouvé"
|
||||
echo " Ce script doit être exécuté dans /root/effi/"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "📄 Docker-compose trouvé"
|
||||
|
||||
# Sauvegarder l'original
|
||||
cp docker-compose.yml docker-compose.yml.backup.$(date +%Y%m%d_%H%M%S)
|
||||
echo "💾 Backup créé: docker-compose.yml.backup.*"
|
||||
|
||||
# Ajouter le service avant "networks:"
|
||||
echo ""
|
||||
echo "🔧 Ajout du service Crawl4AI..."
|
||||
|
||||
# Créer un fichier temporaire avec le service à insérer
|
||||
cat > /tmp/crawl4ai-service.txt << 'EOF'
|
||||
# ─────────────────────────────────────────────────────────
|
||||
# 8. CRAWL4AI - Web Scraping pour OpenWebUI
|
||||
# → http://localhost:11235 (accessible depuis OpenWebUI)
|
||||
# ─────────────────────────────────────────────────────────
|
||||
crawl4ai:
|
||||
image: unclecode/crawl4ai:basic
|
||||
container_name: crawl4ai
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "11235:11235"
|
||||
environment:
|
||||
- CRAWL4AI_API_TOKEN=${CRAWL4AI_API_TOKEN:-}
|
||||
- MAX_CONCURRENT_TASKS=3
|
||||
- CRAWL4AI_ENABLE_GPU=false
|
||||
volumes:
|
||||
- /dev/shm:/dev/shm
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 2G
|
||||
reservations:
|
||||
memory: 512M
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:11235/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 60s
|
||||
networks:
|
||||
- effi-net
|
||||
|
||||
EOF
|
||||
|
||||
# Insérer avant la ligne "networks:"
|
||||
awk '
|
||||
/^networks:/ {
|
||||
while ((getline line < "/tmp/crawl4ai-service.txt") > 0) {
|
||||
print line
|
||||
}
|
||||
close("/tmp/crawl4ai-service.txt")
|
||||
}
|
||||
{ print }
|
||||
' docker-compose.yml > /tmp/docker-compose-new.yml
|
||||
|
||||
# Remplacer le fichier original
|
||||
mv /tmp/docker-compose-new.yml docker-compose.yml
|
||||
|
||||
echo "✅ Service ajouté au docker-compose.yml"
|
||||
echo ""
|
||||
|
||||
# Démarrer le nouveau service
|
||||
echo "🚀 Démarrage de Crawl4AI..."
|
||||
docker-compose up -d crawl4ai
|
||||
|
||||
echo ""
|
||||
echo "⏳ Attente du démarrage (30s)..."
|
||||
sleep 30
|
||||
|
||||
# Vérification
|
||||
echo ""
|
||||
echo "🔍 Vérification..."
|
||||
if curl -s http://localhost:11235/health > /dev/null 2>&1; then
|
||||
echo "✅ Crawl4AI est démarré !"
|
||||
echo ""
|
||||
echo "📋 Configuration OpenWebUI:"
|
||||
echo " Admin → Tools → Web Search and Crawl → ⚙️"
|
||||
echo " Crawl4AI Base URL: http://localhost:11235"
|
||||
echo " Timeout: 30000"
|
||||
else
|
||||
echo "⚠️ Le service ne répond pas encore"
|
||||
echo " Vérifier les logs: docker logs crawl4ai"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "================================"
|
||||
echo "Installation terminée !"
|
||||
echo "================================"
|
||||
Reference in New Issue
Block a user