
- Suppression du bouton 'Analyser' à côté de l'aperçu - Correction des erreurs JavaScript dans ExtractionView - Amélioration de la gestion des erreurs dans l'API - Alignement avec les endpoints du backend
90 lines
3.2 KiB
Python
90 lines
3.2 KiB
Python
#!/usr/bin/env python3
|
|
import requests
|
|
import json
|
|
import sys
|
|
|
|
def analyze_document(document_id):
|
|
"""Analyser un document via l'API backend"""
|
|
|
|
base_url = "http://localhost:18000"
|
|
|
|
print(f"🔍 Analyse du document: {document_id}")
|
|
print("=" * 50)
|
|
|
|
try:
|
|
# Récupérer les détails du document
|
|
response = requests.get(f"{base_url}/api/notary/documents/{document_id}")
|
|
|
|
if response.status_code == 200:
|
|
data = response.json()
|
|
|
|
print(f"📄 Document: {data.get('filename', 'N/A')}")
|
|
print(f"📊 Taille: {data.get('size', 0)} bytes")
|
|
print(f"📅 Upload: {data.get('upload_time', 'N/A')}")
|
|
print(f"✅ Statut: {data.get('status', 'N/A')}")
|
|
print(f"📈 Progression: {data.get('progress', 0)}%")
|
|
print(f"🔄 Étape: {data.get('current_step', 'N/A')}")
|
|
|
|
results = data.get('results', {})
|
|
if results:
|
|
print("\n📋 Résultats de l'analyse:")
|
|
print("-" * 30)
|
|
|
|
# Type de document
|
|
doc_type = results.get('document_type', 'N/A')
|
|
print(f"📑 Type: {doc_type}")
|
|
|
|
# Texte OCR
|
|
ocr_text = results.get('ocr_text', 'N/A')
|
|
print(f"📝 Texte extrait: {ocr_text[:100]}...")
|
|
|
|
# Entités
|
|
entities = results.get('entities', {})
|
|
if entities:
|
|
print(f"👥 Personnes: {entities.get('persons', [])}")
|
|
print(f"🏠 Adresses: {entities.get('addresses', [])}")
|
|
print(f"🏢 Propriétés: {entities.get('properties', [])}")
|
|
|
|
# Score de vérification
|
|
score = results.get('verification_score', 0)
|
|
print(f"⭐ Score de vérification: {score}")
|
|
|
|
# Données externes
|
|
external_data = results.get('external_data', {})
|
|
if external_data:
|
|
print(f"🌐 Données externes: {external_data}")
|
|
|
|
# Recommandations
|
|
recommendations = results.get('recommendations', [])
|
|
if recommendations:
|
|
print(f"💡 Recommandations:")
|
|
for i, rec in enumerate(recommendations, 1):
|
|
print(f" {i}. {rec}")
|
|
|
|
# Risques
|
|
risks = results.get('risks', [])
|
|
if risks:
|
|
print(f"⚠️ Risques identifiés:")
|
|
for i, risk in enumerate(risks, 1):
|
|
print(f" {i}. {risk}")
|
|
|
|
print("\n✅ Analyse terminée avec succès!")
|
|
|
|
else:
|
|
print(f"❌ Erreur: {response.status_code}")
|
|
print(f"Message: {response.text}")
|
|
|
|
except requests.exceptions.ConnectionError:
|
|
print("❌ Erreur: Impossible de se connecter à l'API backend")
|
|
print("Vérifiez que le backend est démarré sur http://localhost:18000")
|
|
except Exception as e:
|
|
print(f"❌ Erreur: {e}")
|
|
|
|
if __name__ == "__main__":
|
|
if len(sys.argv) > 1:
|
|
document_id = sys.argv[1]
|
|
else:
|
|
document_id = "doc_20250910_232208_10" # ID par défaut
|
|
|
|
analyze_document(document_id)
|