import gradio as gr
from transformers import pipeline, AutoTokenizer, AutoConfig, AutoModelForSequenceClassification

modelName="Seethal/sentiment_analysis_generic_dataset"

tokenizer = AutoTokenizer.from_pretrained(modelName)
model = AutoModelForSequenceClassification.from_pretrained(modelName)
sentimentPipeline = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)
Label2Des = {
    "LABEL_0": "NEGATIVE",
    "LABEL_1": "NEUTRAL",
    "LABEL_2": "POSITIVE"
}

def sentiment_analysis(text):
    results = sentimentPipeline(text)

    return f"Sentiment: {Label2Des.get(results[0]['label'])}, Score: {results[0]['score']:.2f}" 
    
demo = gr.Interface(fn=sentiment_analysis, 
                    inputs='text', 
                    outputs='text',
                    title = "文本情感分析"
                    )


if __name__ == "__main__":
    demo.queue(concurrency_count=3)
    demo.launch(server_name = "0.0.0.0", server_port = 7028)
