Spaces:
Runtime error
Runtime error
File size: 3,183 Bytes
4954c84 55479e9 4954c84 55479e9 a3fa4c8 4954c84 55479e9 4954c84 a3fa4c8 55479e9 a3fa4c8 55479e9 4954c84 a3fa4c8 55479e9 a3fa4c8 55479e9 a3fa4c8 55479e9 4954c84 55479e9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
import gradio as gr
from gradio_highlightedtextbox import HighlightedTextbox
def convert_tagged_text_to_highlighted_text(
tagged_text: str, tag_id: str, tag_open: str, tag_close: str
) -> list[tuple[str, str | None]]:
return HighlightedTextbox.tagged_text_to_tuples(
tagged_text, tag_id, tag_open, tag_close
)
def convert_highlighted_text_to_tagged_text(
highlighted_text: dict[str, str | list[tuple[str, str | None]]],
tag_id: str,
tag_open: str,
tag_close: str,
) -> str:
return HighlightedTextbox.tuples_to_tagged_text(
highlighted_text["data"], tag_id, tag_open, tag_close
)
initial_text = "It is not something to be ashamed of: it is no different from the <h>personal fears</h> and <h>dislikes</h> of other things that <h>very many people</h> have."
with gr.Blocks() as demo:
tag_id = gr.Textbox(
"Potential issue",
label="Tag ID",
show_label=True,
info="Insert a tag ID to use in the highlighted textbox.",
)
tag_open = gr.Textbox(
"<h>",
label="Tag open",
show_label=True,
info="Insert a tag to mark the beginning of a highlighted section.",
)
tag_close = gr.Textbox(
"</h>",
label="Tag close",
show_label=True,
info="Insert a tag to mark the end of a highlighted section.",
)
with gr.Row():
tagged_t2h = gr.Textbox(
initial_text,
interactive=True,
label="Input",
show_label=True,
info="Insert a text with <h>...</h> tags to mark spans that will be highlighted.",
)
high_t2h = HighlightedTextbox(
convert_tagged_text_to_highlighted_text(
tagged_t2h.value, tag_id.value, tag_open.value, tag_close.value
),
interactive=True,
label="Output",
info="Highlighted textbox.",
show_legend=True,
show_label=True,
legend_label="Legend:",
show_legend_label=True,
)
with gr.Row():
high_h2t = HighlightedTextbox(
convert_tagged_text_to_highlighted_text(
tagged_t2h.value, tag_id.value, tag_open.value, tag_close.value
),
interactive=True,
label="Input",
info="The following text will be marked by spans according to its highlights.",
show_legend=True,
show_label=True,
legend_label="Legend:",
show_legend_label=True,
)
tagged_h2t = gr.Textbox(
initial_text,
interactive=True,
label="Output",
show_label=True,
)
# Functions
tagged_t2h.change(
fn=convert_tagged_text_to_highlighted_text,
inputs=[tagged_t2h, tag_id, tag_open, tag_close],
outputs=high_t2h,
)
high_t2h.change(
fn=lambda x: x["data"],
inputs=high_t2h,
outputs=high_h2t,
)
high_h2t.change(
fn=convert_highlighted_text_to_tagged_text,
inputs=[high_h2t, tag_id, tag_open, tag_close],
outputs=tagged_h2t,
)
demo.launch()
|