aa / app.py
root
Ajout de l'application Gradio et des dépendances
23ce00f
import gradio as gr
import os
import json
from pdf2image import convert_from_path
from PIL import Image
from ovis.serve.runner import RunnerArguments, OvisRunner
# Chemins des répertoires
model_path = '/home/nosmokingclub/public_html/MIKA/Ovis/ovis_model'
prompt = "Extraire la facture avec le listing produit avec les références au format JSON"
runner_args = RunnerArguments(model_path=model_path)
runner = OvisRunner(runner_args)
def process_pdf(pdf_file):
# Convertir le PDF en images
images = convert_from_path(pdf_file.name)
# Initialiser une liste pour stocker les résultats de chaque page
pdf_results = []
for i, image in enumerate(images):
# Effectuer l'inférence avec Ovis sur chaque image
result = runner.run([image, prompt])
# Convertir le résultat en JSON
try:
page_result = json.loads(result)
except json.JSONDecodeError:
page_result = {"error": f"Impossible de décoder la page {i + 1} en JSON", "raw_result": result}
# Ajouter les résultats de la page à la liste
pdf_results.append({"page": i + 1, "result": page_result})
# Retourner le résultat JSON complet
return json.dumps(pdf_results, ensure_ascii=False, indent=4)
# Configurer Gradio Interface
demo = gr.Interface(
fn=process_pdf,
inputs="file",
outputs="text",
title="Traitement des Factures avec Ovis",
description="Téléchargez un PDF de facture pour extraire les produits et les références via Ovis"
)
demo.launch()