|
|
| import gradio as gr |
| from sentence_transformers import SentenceTransformer |
| from transformers import pipeline |
|
|
| print("⏳ Loading Models... (This happens once on startup)") |
|
|
| |
| |
| embedder = SentenceTransformer('all-MiniLM-L6-v2') |
|
|
| |
| |
| sentiment_task = pipeline( |
| "sentiment-analysis", |
| model="cardiffnlp/twitter-roberta-base-sentiment-latest", |
| tokenizer="cardiffnlp/twitter-roberta-base-sentiment-latest" |
| ) |
|
|
| def get_embeddings(text): |
| |
| vector = embedder.encode(text) |
| return vector.tolist() |
|
|
| def get_sentiment(text): |
| |
| result = sentiment_task(text)[0] |
| return {"label": result['label'], "score": float(result['score'])} |
|
|
| |
| with gr.Blocks() as demo: |
| gr.Markdown("# Flunzup NLP API") |
| |
| with gr.Tab("Sentiment Analysis"): |
| txt_in = gr.Textbox(label="Text to Analyze") |
| out_sent = gr.JSON(label="Sentiment Result") |
| btn_sent = gr.Button("Analyze Sentiment") |
| |
| btn_sent.click(get_sentiment, inputs=txt_in, outputs=out_sent, api_name="sentiment") |
|
|
| with gr.Tab("Embeddings"): |
| txt_embed = gr.Textbox(label="Text to Embed") |
| out_embed = gr.JSON(label="Vector Output") |
| btn_embed = gr.Button("Generate Embedding") |
| |
| btn_embed.click(get_embeddings, inputs=txt_embed, outputs=out_embed, api_name="embedding") |
|
|
| demo.launch() |
|
|