|
|
import gradio as gr |
|
|
from transformers import pipeline |
|
|
import random |
|
|
|
|
|
|
|
|
sentiment_pipe = pipeline("sentiment-analysis") |
|
|
|
|
|
|
|
|
summarizer = pipeline("summarization") |
|
|
|
|
|
|
|
|
tts_pipe = pipeline("text-to-speech", model="suno/bark-small") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_sentiment(input_text): |
|
|
analysis = sentiment_pipe(input_text)[0] |
|
|
return analysis['label'], str(round(analysis['score'], 4)) |
|
|
|
|
|
|
|
|
def summarize_text(input_text): |
|
|
summary = summarizer(input_text, max_length=150, min_length=30, do_sample=False)[0] |
|
|
return summary['summary_text'] |
|
|
|
|
|
|
|
|
def text_to_speech(input_text): |
|
|
speech = tts_pipe(input_text) |
|
|
return speech["path"] |
|
|
|
|
|
|
|
|
def chat(message, history): |
|
|
history = history or [] |
|
|
if message.startswith("How many"): |
|
|
response = str(random.randint(1, 10)) |
|
|
elif message.startswith("How"): |
|
|
response = random.choice(["Great", "Good", "Okay", "Bad"]) |
|
|
elif message.startswith("Where"): |
|
|
response = random.choice(["Here", "There", "Somewhere"]) |
|
|
else: |
|
|
response = "I don't know" |
|
|
history.append((message, response)) |
|
|
return history, history |
|
|
|
|
|
|
|
|
with gr.Blocks(title="TrailTrek AI Suite") as demo: |
|
|
gr.Markdown("# TrailTrek Gears Co. AI Prototype") |
|
|
|
|
|
with gr.Tabs(): |
|
|
|
|
|
with gr.Tab("Sentiment Analysis"): |
|
|
gr.Markdown("## Analyze Text Sentiment") |
|
|
with gr.Row(): |
|
|
text_input = gr.Textbox(label="Input Text") |
|
|
with gr.Column(): |
|
|
sentiment_label = gr.Textbox(label="Sentiment") |
|
|
score_output = gr.Textbox(label="Confidence Score") |
|
|
analyze_btn = gr.Button("Analyze") |
|
|
analyze_btn.click( |
|
|
fn=get_sentiment, |
|
|
inputs=text_input, |
|
|
outputs=[sentiment_label, score_output] |
|
|
) |
|
|
|
|
|
|
|
|
with gr.Tab("Chatbot"): |
|
|
gr.Markdown("## Interactive Chat") |
|
|
chatbot = gr.Chatbot() |
|
|
msg = gr.Textbox(label="Your Message") |
|
|
clear = gr.Button("Clear") |
|
|
msg.submit(chat, [msg, chatbot], [chatbot, msg]) |
|
|
clear.click(lambda: None, None, chatbot, queue=False) |
|
|
|
|
|
|
|
|
with gr.Tab("Summarization"): |
|
|
gr.Markdown("## Text Summarization") |
|
|
with gr.Row(): |
|
|
long_text = gr.Textbox(label="Input Text", lines=5) |
|
|
summary = gr.Textbox(label="Summary", lines=5) |
|
|
summarize_btn = gr.Button("Summarize") |
|
|
summarize_btn.click( |
|
|
fn=summarize_text, |
|
|
inputs=long_text, |
|
|
outputs=summary |
|
|
) |
|
|
|
|
|
|
|
|
with gr.Tab("Text-to-Speech"): |
|
|
gr.Markdown("## Web Accessibility Prototype") |
|
|
with gr.Row(): |
|
|
tts_input = gr.Textbox(label="Enter Text") |
|
|
tts_output = gr.Audio(label="Generated Speech") |
|
|
tts_btn = gr.Button("Convert to Speech") |
|
|
tts_btn.click( |
|
|
fn=text_to_speech, |
|
|
inputs=tts_input, |
|
|
outputs=tts_output |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
demo.launch() |