Spaces:
Build error
Build error
Parsa Kzr
commited on
Commit
·
f39b7b1
1
Parent(s):
59de00b
style: demo's output formatting without breaking API tests
Browse files
app.py
CHANGED
|
@@ -23,6 +23,7 @@ from nlp4web_codebase.ir.data_loaders.dm import Document
|
|
| 23 |
from nlp4web_codebase.ir.models import BaseRetriever
|
| 24 |
from nlp4web_codebase.ir.data_loaders import Split
|
| 25 |
from scipy.sparse._csc import csc_matrix
|
|
|
|
| 26 |
|
| 27 |
|
| 28 |
# ----------------- PRE SETUP ----------------- #
|
|
@@ -570,7 +571,8 @@ def search(query: str, index_dir: str = index_dir) -> List[Hit]: # , topk:int =
|
|
| 570 |
return hits
|
| 571 |
|
| 572 |
|
| 573 |
-
|
|
|
|
| 574 |
# Function for formatted display of results
|
| 575 |
def format_hits_md(hits: List[Hit]) -> str:
|
| 576 |
if not hits:
|
|
@@ -584,6 +586,8 @@ def format_hits_md(hits: List[Hit]) -> str:
|
|
| 584 |
f"* Text: {hit['text'] or 'No text available.'}\n"
|
| 585 |
)
|
| 586 |
return "\n".join(formatted)
|
|
|
|
|
|
|
| 587 |
# to return pure json data as a list of json objects
|
| 588 |
def format_hits_json(hits: List[Hit]):
|
| 589 |
if not hits:
|
|
@@ -592,27 +596,41 @@ def format_hits_json(hits: List[Hit]):
|
|
| 592 |
# json format
|
| 593 |
for hit in hits:
|
| 594 |
formatted.append(
|
| 595 |
-
{
|
| 596 |
-
"cid": hit['cid'],
|
| 597 |
-
"score": hit['score'],
|
| 598 |
-
"text": hit['text'] or ''
|
| 599 |
-
}
|
| 600 |
)
|
| 601 |
return formatted
|
| 602 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 603 |
# Gradio wrapper
|
| 604 |
-
def interface_search(query: str) -> str:
|
| 605 |
"""Wrapper for Gradio interface to call search function and format results."""
|
| 606 |
try:
|
| 607 |
-
hits = search(query)
|
| 608 |
-
return
|
| 609 |
except Exception as e:
|
| 610 |
return f"Error: {str(e)}"
|
| 611 |
-
|
| 612 |
|
| 613 |
# app interface
|
| 614 |
demo = gr.Interface(
|
| 615 |
-
fn=
|
| 616 |
inputs=[
|
| 617 |
gr.Textbox(label="Search Query", placeholder="Type your search query"),
|
| 618 |
# gr.Number(label="Number of Results (Top-k)", value=10),
|
|
|
|
| 23 |
from nlp4web_codebase.ir.models import BaseRetriever
|
| 24 |
from nlp4web_codebase.ir.data_loaders import Split
|
| 25 |
from scipy.sparse._csc import csc_matrix
|
| 26 |
+
import json
|
| 27 |
|
| 28 |
|
| 29 |
# ----------------- PRE SETUP ----------------- #
|
|
|
|
| 571 |
return hits
|
| 572 |
|
| 573 |
|
| 574 |
+
# Since the test cases limit using Non-Interface or TextBox as output, ->
|
| 575 |
+
# -> these are obselete for passing tests, but better formatted.
|
| 576 |
# Function for formatted display of results
|
| 577 |
def format_hits_md(hits: List[Hit]) -> str:
|
| 578 |
if not hits:
|
|
|
|
| 586 |
f"* Text: {hit['text'] or 'No text available.'}\n"
|
| 587 |
)
|
| 588 |
return "\n".join(formatted)
|
| 589 |
+
|
| 590 |
+
|
| 591 |
# to return pure json data as a list of json objects
|
| 592 |
def format_hits_json(hits: List[Hit]):
|
| 593 |
if not hits:
|
|
|
|
| 596 |
# json format
|
| 597 |
for hit in hits:
|
| 598 |
formatted.append(
|
| 599 |
+
{"cid": hit["cid"], "score": hit["score"], "text": hit["text"] or ""}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 600 |
)
|
| 601 |
return formatted
|
| 602 |
|
| 603 |
+
|
| 604 |
+
def format_hits_jsonstr(hits: List[Hit]):
|
| 605 |
+
if not hits:
|
| 606 |
+
return
|
| 607 |
+
formatted = "["
|
| 608 |
+
for hit in hits:
|
| 609 |
+
formatted += (
|
| 610 |
+
json.dumps(
|
| 611 |
+
{"cid": hit["cid"], "score": hit["score"], "text": hit["text"] or ""},
|
| 612 |
+
separators=(",", ":"),
|
| 613 |
+
indent=4,
|
| 614 |
+
)
|
| 615 |
+
+ ",\n"
|
| 616 |
+
)
|
| 617 |
+
formatted = formatted[:-2] + "]"
|
| 618 |
+
return formatted
|
| 619 |
+
|
| 620 |
+
|
| 621 |
# Gradio wrapper
|
| 622 |
+
def interface_search(query: str) -> str: # , topk: int = 10
|
| 623 |
"""Wrapper for Gradio interface to call search function and format results."""
|
| 624 |
try:
|
| 625 |
+
hits = search(query) # , topk=topk
|
| 626 |
+
return format_hits_jsonstr(hits) # [jsonstr, json, md]
|
| 627 |
except Exception as e:
|
| 628 |
return f"Error: {str(e)}"
|
| 629 |
+
|
| 630 |
|
| 631 |
# app interface
|
| 632 |
demo = gr.Interface(
|
| 633 |
+
fn=interface_search, # interface_search to format Markdown or JSON
|
| 634 |
inputs=[
|
| 635 |
gr.Textbox(label="Search Query", placeholder="Type your search query"),
|
| 636 |
# gr.Number(label="Number of Results (Top-k)", value=10),
|