edia_we_es / interfaces /interface_BiasWordExplorer.py
nanom's picture
Typing. Added __init_ann_method and __init_sklearn_method in embedding class. Upgrade getNearestNeighbors method. Fix bug in get method from ann class. Etc
ced76fc
raw
history blame
4.9 kB
import gradio as gr
import pandas as pd
from modules.module_logsManager import HuggingFaceDatasetSaver
from modules.module_connection import BiasWordExplorerConnector
from examples.examples import examples1_explorar_sesgo_en_palabras, examples2_explorar_sesgo_en_palabras
from tool_info import TOOL_INFO
# --- Interface ---
def interface(
embedding, # Class Embedding instance
available_logs: bool,
lang: str="spanish"
) -> gr.Blocks:
# --- Init logs ---
log_callback = HuggingFaceDatasetSaver(
available_logs=available_logs,
dataset_name=f"logs_edia_we_{lang}"
)
# --- Init vars ---
connector = BiasWordExplorerConnector(
embedding=embedding
)
# --- 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]
)
# --- Logs ---
save_field = [wordlist_1, wordlist_2,wordlist_3, wordlist_4, diagnose_list]
log_callback.setup(
components=save_field,
flagging_dir="logs_word_bias"
)
bias2d.click(
fn=lambda *args: log_callback.flag(
flag_data=args,
flag_option="plot_2d",
username="vialibre"
),
inputs=save_field,
outputs=None,
preprocess=False
)
bias4d.click(
fn=lambda *args: log_callback.flag(
flag_data=args,
flag_option="plot_4d",
username="vialibre"
),
inputs=save_field,
outputs=None,
preprocess=False
)
return interface