edia_full_en / interfaces /interface_BiasWordExplorer.py
nanom's picture
First commit
e8aad19
import gradio as gr
import pandas as pd
from tool_info import TOOL_INFO
from modules.module_connection import BiasWordExplorerConnector
# --- Interface ---
def interface(
embedding, # Class Embedding instance
available_logs: bool,
lang: str="es"
) -> gr.Blocks:
# -- Load examples ---
if lang == 'es':
from examples.examples_es import examples1_explorar_sesgo_en_palabras, examples2_explorar_sesgo_en_palabras
elif lang == 'en':
from examples.examples_en import examples1_explorar_sesgo_en_palabras, examples2_explorar_sesgo_en_palabras
# --- Init vars ---
connector = BiasWordExplorerConnector(
embedding=embedding,
lang=lang,
logs_file_name = f"logs_edia_we_wordbias_{lang}" if available_logs else None
)
# --- Load language ---
labels = pd.read_json(
f"language/{lang}.json"
)["BiasWordExplorer_interface"]
# --- Interface ---
interface = gr.Blocks()
with interface:
gr.Markdown(
value=labels["step1"]
)
with gr.Row():
with gr.Column():
with gr.Row():
diagnose_list = gr.Textbox(
lines=2,
label=labels["wordListToDiagnose"]
)
with gr.Row():
gr.Markdown(
value=labels["step2&2Spaces"]
)
with gr.Row():
wordlist_1 = gr.Textbox(
lines=2,
label=labels["wordList1"]
)
wordlist_2 = gr.Textbox(
lines=2,
label=labels["wordList2"]
)
with gr.Row():
gr.Markdown(
value=labels["step2&4Spaces"]
)
with gr.Row():
wordlist_3 = gr.Textbox(
lines=2,
label=labels["wordList3"]
)
wordlist_4 = gr.Textbox(
lines=2,
label=labels["wordList4"]
)
with gr.Column():
with gr.Row():
bias2d = gr.Button(
value=labels["plot2SpacesButton"]
)
with gr.Row():
bias4d = gr.Button(
value=labels["plot4SpacesButton"]
)
with gr.Row():
err_msg = gr.Markdown(
label="",
visible=True
)
with gr.Row():
bias_plot = gr.Plot(
label="",
show_label=False
)
with gr.Row():
examples = gr.Examples(
fn=connector.calculate_bias_2d,
inputs=[wordlist_1, wordlist_2, diagnose_list],
outputs=[bias_plot, err_msg],
examples=examples1_explorar_sesgo_en_palabras,
label=labels["examples2Spaces"]
)
with gr.Row():
examples = gr.Examples(
fn=connector.calculate_bias_4d,
inputs=[wordlist_1, wordlist_2,wordlist_3, wordlist_4, diagnose_list],
outputs=[
bias_plot, err_msg
],
examples=examples2_explorar_sesgo_en_palabras,
label=labels["examples4Spaces"]
)
with gr.Row():
gr.Markdown(
value=TOOL_INFO
)
bias2d.click(
fn=connector.calculate_bias_2d,
inputs=[wordlist_1, wordlist_2, diagnose_list],
outputs=[bias_plot, err_msg]
)
bias4d.click(
fn=connector.calculate_bias_4d,
inputs=[wordlist_1, wordlist_2,
wordlist_3, wordlist_4, diagnose_list],
outputs=[bias_plot, err_msg]
)
return interface