root commited on
Commit
23ce00f
1 Parent(s): 3a7774f

Ajout de l'application Gradio et des dépendances

Browse files
Files changed (2) hide show
  1. app.py +46 -0
  2. requirements.txt +3 -0
app.py ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import os
3
+ import json
4
+ from pdf2image import convert_from_path
5
+ from PIL import Image
6
+ from ovis.serve.runner import RunnerArguments, OvisRunner
7
+
8
+ # Chemins des répertoires
9
+ model_path = '/home/nosmokingclub/public_html/MIKA/Ovis/ovis_model'
10
+ prompt = "Extraire la facture avec le listing produit avec les références au format JSON"
11
+ runner_args = RunnerArguments(model_path=model_path)
12
+ runner = OvisRunner(runner_args)
13
+
14
+ def process_pdf(pdf_file):
15
+ # Convertir le PDF en images
16
+ images = convert_from_path(pdf_file.name)
17
+
18
+ # Initialiser une liste pour stocker les résultats de chaque page
19
+ pdf_results = []
20
+
21
+ for i, image in enumerate(images):
22
+ # Effectuer l'inférence avec Ovis sur chaque image
23
+ result = runner.run([image, prompt])
24
+
25
+ # Convertir le résultat en JSON
26
+ try:
27
+ page_result = json.loads(result)
28
+ except json.JSONDecodeError:
29
+ page_result = {"error": f"Impossible de décoder la page {i + 1} en JSON", "raw_result": result}
30
+
31
+ # Ajouter les résultats de la page à la liste
32
+ pdf_results.append({"page": i + 1, "result": page_result})
33
+
34
+ # Retourner le résultat JSON complet
35
+ return json.dumps(pdf_results, ensure_ascii=False, indent=4)
36
+
37
+ # Configurer Gradio Interface
38
+ demo = gr.Interface(
39
+ fn=process_pdf,
40
+ inputs="file",
41
+ outputs="text",
42
+ title="Traitement des Factures avec Ovis",
43
+ description="Téléchargez un PDF de facture pour extraire les produits et les références via Ovis"
44
+ )
45
+
46
+ demo.launch()
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ pdf2image
2
+ pillow
3
+ transformers