11
11
import gradio as gr
12
12
import httpx
13
13
14
+ from docling .datamodel .pipeline_options import (
15
+ PdfBackend ,
16
+ TableFormerMode ,
17
+ TableStructureOptions ,
18
+ )
19
+
14
20
from docling_serve .helper_functions import _to_list_of_strings
15
21
from docling_serve .settings import docling_serve_settings , uvicorn_settings
16
22
@@ -358,20 +364,22 @@ def process_file(
358
364
359
365
parameters = {
360
366
"file_sources" : files_data ,
361
- "to_formats" : to_formats ,
362
- "image_export_mode" : image_export_mode ,
363
- "ocr" : str (ocr ).lower (),
364
- "force_ocr" : str (force_ocr ).lower (),
365
- "ocr_engine" : ocr_engine ,
366
- "ocr_lang" : _to_list_of_strings (ocr_lang ),
367
- "pdf_backend" : pdf_backend ,
368
- "table_mode" : table_mode ,
369
- "abort_on_error" : str (abort_on_error ).lower (),
370
- "return_as_file" : str (return_as_file ).lower (),
371
- "do_code_enrichment" : str (do_code_enrichment ).lower (),
372
- "do_formula_enrichment" : str (do_formula_enrichment ).lower (),
373
- "do_picture_classification" : str (do_picture_classification ).lower (),
374
- "do_picture_description" : str (do_picture_description ).lower (),
367
+ "options" : {
368
+ "to_formats" : to_formats ,
369
+ "image_export_mode" : image_export_mode ,
370
+ "ocr" : ocr ,
371
+ "force_ocr" : force_ocr ,
372
+ "ocr_engine" : ocr_engine ,
373
+ "ocr_lang" : _to_list_of_strings (ocr_lang ),
374
+ "pdf_backend" : pdf_backend ,
375
+ "table_mode" : table_mode ,
376
+ "abort_on_error" : abort_on_error ,
377
+ "return_as_file" : return_as_file ,
378
+ "do_code_enrichment" : do_code_enrichment ,
379
+ "do_formula_enrichment" : do_formula_enrichment ,
380
+ "do_picture_classification" : do_picture_classification ,
381
+ "do_picture_description" : do_picture_description ,
382
+ },
375
383
}
376
384
377
385
try :
@@ -511,7 +519,7 @@ def response_to_output(response, return_as_file):
511
519
with gr .Column (scale = 4 ):
512
520
url_input = gr .Textbox (
513
521
label = "URL Input Source" ,
514
- placeholder = "https://arxiv.org/pdf/2206.01062 " ,
522
+ placeholder = "https://arxiv.org/pdf/2501.17887 " ,
515
523
)
516
524
with gr .Column (scale = 1 ):
517
525
url_process_btn = gr .Button ("Process URL" , scale = 1 )
@@ -530,6 +538,7 @@ def response_to_output(response, return_as_file):
530
538
".pptx" ,
531
539
".html" ,
532
540
".xlsx" ,
541
+ ".json" ,
533
542
".asciidoc" ,
534
543
".txt" ,
535
544
".md" ,
@@ -551,14 +560,14 @@ def response_to_output(response, return_as_file):
551
560
with gr .Column (scale = 1 ):
552
561
to_formats = gr .CheckboxGroup (
553
562
[
554
- ("Markdown" , "md" ),
555
563
("Docling (JSON)" , "json" ),
564
+ ("Markdown" , "md" ),
556
565
("HTML" , "html" ),
557
566
("Plain Text" , "text" ),
558
567
("Doc Tags" , "doctags" ),
559
568
],
560
569
label = "To Formats" ,
561
- value = ["md" ],
570
+ value = ["json" , " md" ],
562
571
)
563
572
with gr .Column (scale = 1 ):
564
573
image_export_mode = gr .Radio (
@@ -590,15 +599,17 @@ def response_to_output(response, return_as_file):
590
599
)
591
600
ocr_engine .change (change_ocr_lang , inputs = [ocr_engine ], outputs = [ocr_lang ])
592
601
with gr .Row ():
593
- with gr .Column (scale = 2 ):
602
+ with gr .Column (scale = 4 ):
594
603
pdf_backend = gr .Radio (
595
- ["pypdfium2" , "dlparse_v1" , "dlparse_v2" ],
604
+ [v . value for v in PdfBackend ],
596
605
label = "PDF Backend" ,
597
- value = "dlparse_v2" ,
606
+ value = PdfBackend . DLPARSE_V4 . value ,
598
607
)
599
608
with gr .Column (scale = 2 ):
600
609
table_mode = gr .Radio (
601
- ["fast" , "accurate" ], label = "Table Mode" , value = "fast"
610
+ [(v .value .capitalize (), v .value ) for v in TableFormerMode ],
611
+ label = "Table Mode" ,
612
+ value = TableStructureOptions ().mode .value ,
602
613
)
603
614
with gr .Column (scale = 1 ):
604
615
abort_on_error = gr .Checkbox (label = "Abort on Error" , value = False )
@@ -627,16 +638,16 @@ def response_to_output(response, return_as_file):
627
638
628
639
# Document output
629
640
with gr .Row (visible = False ) as content_output :
641
+ with gr .Tab ("Docling (JSON)" ):
642
+ output_json = gr .Code (language = "json" , wrap_lines = True , show_label = False )
643
+ with gr .Tab ("Docling-Rendered" ):
644
+ output_json_rendered = gr .HTML (label = "Response" )
630
645
with gr .Tab ("Markdown" ):
631
646
output_markdown = gr .Code (
632
647
language = "markdown" , wrap_lines = True , show_label = False
633
648
)
634
649
with gr .Tab ("Markdown-Rendered" ):
635
650
output_markdown_rendered = gr .Markdown (label = "Response" )
636
- with gr .Tab ("Docling (JSON)" ):
637
- output_json = gr .Code (language = "json" , wrap_lines = True , show_label = False )
638
- with gr .Tab ("Docling-Rendered" ):
639
- output_json_rendered = gr .HTML ()
640
651
with gr .Tab ("HTML" ):
641
652
output_html = gr .Code (language = "html" , wrap_lines = True , show_label = False )
642
653
with gr .Tab ("HTML-Rendered" ):
0 commit comments