Spaces:
Runtime error
Runtime error
Ankur Goyal
commited on
Commit
·
87500f1
1
Parent(s):
15fad86
Support multi-page preview
Browse files- app.py +11 -8
- requirements.txt +1 -1
app.py
CHANGED
|
@@ -45,8 +45,8 @@ def run_pipeline(model, question, document, top_k):
|
|
| 45 |
|
| 46 |
# TODO: Move into docquery
|
| 47 |
# TODO: Support words past the first page (or window?)
|
| 48 |
-
def lift_word_boxes(document):
|
| 49 |
-
return document.context["image"][
|
| 50 |
|
| 51 |
|
| 52 |
def expand_bbox(word_boxes):
|
|
@@ -122,23 +122,26 @@ def process_question(question, document, model=list(CHECKPOINTS.keys())[0]):
|
|
| 122 |
return None, None
|
| 123 |
|
| 124 |
predictions = run_pipeline(model, question, document, 3)
|
| 125 |
-
|
| 126 |
-
draw = ImageDraw.Draw(image, "RGBA")
|
| 127 |
for i, p in enumerate(ensure_list(predictions)):
|
| 128 |
if i > 0:
|
| 129 |
# Keep the code around to produce multiple boxes, but only show the top
|
| 130 |
# prediction for now
|
| 131 |
break
|
| 132 |
|
| 133 |
-
if "start" in p and "end" in p
|
|
|
|
|
|
|
| 134 |
x1, y1, x2, y2 = normalize_bbox(
|
| 135 |
-
expand_bbox(
|
|
|
|
|
|
|
| 136 |
image.width,
|
| 137 |
image.height,
|
| 138 |
)
|
| 139 |
draw.rectangle(((x1, y1), (x2, y2)), fill=(0, 255, 0, int(0.4 * 255)))
|
| 140 |
|
| 141 |
-
return gr.update(visible=True, value=
|
| 142 |
visible=True, value=predictions
|
| 143 |
)
|
| 144 |
|
|
@@ -197,7 +200,7 @@ with gr.Blocks(css=CSS) as demo:
|
|
| 197 |
submit_button = gr.Button("Submit", variant="primary", elem_id="submit-button")
|
| 198 |
|
| 199 |
with gr.Row():
|
| 200 |
-
image = gr.
|
| 201 |
with gr.Column():
|
| 202 |
output = gr.JSON(label="Output", visible=False)
|
| 203 |
|
|
|
|
| 45 |
|
| 46 |
# TODO: Move into docquery
|
| 47 |
# TODO: Support words past the first page (or window?)
|
| 48 |
+
def lift_word_boxes(document, page):
|
| 49 |
+
return document.context["image"][page][1]
|
| 50 |
|
| 51 |
|
| 52 |
def expand_bbox(word_boxes):
|
|
|
|
| 122 |
return None, None
|
| 123 |
|
| 124 |
predictions = run_pipeline(model, question, document, 3)
|
| 125 |
+
pages = [x.copy() for x in document.preview]
|
|
|
|
| 126 |
for i, p in enumerate(ensure_list(predictions)):
|
| 127 |
if i > 0:
|
| 128 |
# Keep the code around to produce multiple boxes, but only show the top
|
| 129 |
# prediction for now
|
| 130 |
break
|
| 131 |
|
| 132 |
+
if "start" in p and "end" in p:
|
| 133 |
+
image = pages[p["page"]]
|
| 134 |
+
draw = ImageDraw.Draw(image, "RGBA")
|
| 135 |
x1, y1, x2, y2 = normalize_bbox(
|
| 136 |
+
expand_bbox(
|
| 137 |
+
lift_word_boxes(document, p["page"])[p["start"] : p["end"] + 1]
|
| 138 |
+
),
|
| 139 |
image.width,
|
| 140 |
image.height,
|
| 141 |
)
|
| 142 |
draw.rectangle(((x1, y1), (x2, y2)), fill=(0, 255, 0, int(0.4 * 255)))
|
| 143 |
|
| 144 |
+
return gr.update(visible=True, value=pages), gr.update(
|
| 145 |
visible=True, value=predictions
|
| 146 |
)
|
| 147 |
|
|
|
|
| 200 |
submit_button = gr.Button("Submit", variant="primary", elem_id="submit-button")
|
| 201 |
|
| 202 |
with gr.Row():
|
| 203 |
+
image = gr.Gallery(visible=False)
|
| 204 |
with gr.Column():
|
| 205 |
output = gr.JSON(label="Output", visible=False)
|
| 206 |
|
requirements.txt
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
torch
|
| 2 |
git+https://github.com/huggingface/transformers.git@21f6f58721dd9154357576be6de54eefef1f1818
|
| 3 |
-
git+https://github.com/impira/docquery.git@
|
| 4 |
sentencepiece
|
|
|
|
| 1 |
torch
|
| 2 |
git+https://github.com/huggingface/transformers.git@21f6f58721dd9154357576be6de54eefef1f1818
|
| 3 |
+
git+https://github.com/impira/docquery.git@3aa3cc6ca6624d6371db9cd4732cbbcb9c8b3ea0
|
| 4 |
sentencepiece
|