Spaces:
Running
Running
| import sklearn | |
| import gradio as gr | |
| import joblib | |
| import requests.exceptions | |
| from huggingface_hub import HfApi, hf_hub_download | |
| from huggingface_hub.repocard import metadata_load | |
| pipe = joblib.load("./pipeline.pkl") | |
| inputs = [gr.Textbox(value = "The customer service was satisfactory.")] | |
| outputs = [gr.Label(label = "Sentiment")] | |
| title = "Sentiment Analysis" | |
| app = gr.Blocks() | |
| def load_agent(model_id_1, model_id_2): | |
| """ | |
| This function load the agent's video and results | |
| :return: video_path | |
| """ | |
| # Load the metrics | |
| metadata_1 = get_metadata(model_id_1) | |
| # Get the accuracy | |
| results_1 = parse_metrics_accuracy(metadata_1) | |
| # Load the metrics | |
| metadata_2 = get_metadata(model_id_2) | |
| # Get the accuracy | |
| results_2 = parse_metrics_accuracy(metadata_2) | |
| return model_id_1, results_1, model_id_2, results_2 | |
| def parse_metrics_accuracy(meta): | |
| if "model-index" not in meta: | |
| return None | |
| result = meta["model-index"][0]["results"] | |
| metrics = result[0]["metrics"] | |
| accuracy = metrics[0]["value"] | |
| return accuracy | |
| def get_metadata(model_id): | |
| """ | |
| Get the metadata of the model repo | |
| :param model_id: | |
| :return: metadata | |
| """ | |
| try: | |
| readme_path = hf_hub_download(model_id, filename="README.md") | |
| metadata = metadata_load(readme_path) | |
| print(metadata) | |
| return metadata | |
| except requests.exceptions.HTTPError: | |
| return None | |
| with app: | |
| gr.Markdown( | |
| """ | |
| # Compare Sentiment Analysis Models | |
| Type two models id you want to compare or check examples below. | |
| """) | |
| with gr.Row(): | |
| model1_input = gr.Textbox(label="Model 1") | |
| model2_input = gr.Textbox(label="Model 2") | |
| with gr.Row(): | |
| app_button = gr.Button("Compare models") | |
| with gr.Row(): | |
| with gr.Column(): | |
| model1_name = gr.Markdown() | |
| #model1_video_output = gr.Video() | |
| model1_score_output = gr.Textbox(label="Sentiment") | |
| with gr.Column(): | |
| model2_name = gr.Markdown() | |
| #model2_video_output = gr.Video() | |
| model2_score_output = gr.Textbox(label="Sentiment") | |
| app_button.click(load_agent, inputs=[model1_input, model2_input], outputs=[model1_name, model1_score_output, model2_name, model2_score_output]) | |
| examples = gr.Examples(examples=[["scikit-learn/sentiment-analysis","microsoft/Multilingual-MiniLM-L12-H384"], | |
| ["distilbert-base-uncased-finetuned-sst-2-english", "microsoft/Multilingual-MiniLM-L12-H384"]], | |
| inputs=[model1_input, model2_input]) | |
| app.launch() |