Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| from transformers import pipeline | |
| from huggingface_hub import InferenceClient, login | |
| import gtts | |
| from transformers import pipeline | |
| # Load sentiment analysis model | |
| sentiment_pipeline = pipeline( | |
| "sentiment-analysis", | |
| model="distilbert/distilbert-base-uncased-finetuned-sst-2-english" | |
| ) | |
| # Define sentiment analysis function | |
| def analyze_sentiment(text): | |
| result = sentiment_pipeline(text)[0] | |
| label = result["label"] | |
| score = result["score"] * 100 | |
| return f"{label} β {score:.2f}%" | |
| from huggingface_hub import InferenceClient, login | |
| import gradio as gr | |
| # Load Mistral model | |
| client = InferenceClient("mistralai/Mistral-7B-Instruct-v0.2") | |
| # Response generator | |
| def respond(message, history, system_message, max_tokens, temperature, top_p): | |
| messages = [{"role": "system", "content": system_message}] | |
| for user_msg, bot_msg in history: | |
| if user_msg: | |
| messages.append({"role": "user", "content": user_msg}) | |
| if bot_msg: | |
| messages.append({"role": "assistant", "content": bot_msg}) | |
| messages.append({"role": "user", "content": message}) | |
| response = "" | |
| for chunk in client.chat_completion( | |
| messages, | |
| max_tokens=max_tokens, | |
| stream=True, | |
| temperature=temperature, | |
| top_p=top_p, | |
| ): | |
| token = chunk.choices[0].delta.content or "" | |
| response += token | |
| yield response | |
| from transformers import pipeline | |
| # Load summarization pipeline | |
| summarizer = pipeline("summarization", model="facebook/bart-large-cnn") | |
| # Define summarization function | |
| def summarize_text(text): | |
| summary = summarizer(text, max_length=130, min_length=30, do_sample=False) | |
| return summary[0]["summary_text"] | |
| import gtts | |
| # Define text-to-speech function | |
| def text_to_speech(text): | |
| tts = gtts.gTTS(text) | |
| tts.save("output.mp3") | |
| return "output.mp3" | |
| """*π* Gradio Multi-Tab Interface | |
| (final step to connect all functions above into UI) | |
| """ | |
| import gradio as gr | |
| with gr.Blocks(theme=gr.themes.Soft(primary_hue="purple")) as demo: | |
| gr.Image( | |
| value="https://www.leaders-mena.com/leaders/uploads/2024/09/Tuwaiq-Meta-780x470.jpg", | |
| show_label=False, | |
| show_download_button=False, | |
| height=120 | |
| ) | |
| gr.Markdown( | |
| "<h1 style='text-align: center; color: orange;'>π TrailTrek Gears - All-in-One AI App</h1>", | |
| elem_id="main-title" | |
| ) | |
| # π Sentiment Analysis Tab | |
| with gr.Tab("π Sentiment Analysis"): | |
| sentiment_input = gr.Textbox(label="Enter your text") | |
| sentiment_output = gr.Textbox(label="Sentiment Result") | |
| sentiment_btn = gr.Button("Analyze Sentiment") | |
| sentiment_btn.click(analyze_sentiment, inputs=sentiment_input, outputs=sentiment_output) | |
| # π¬ Chatbot Tab | |
| with gr.Tab("π¬ Chatbot"): | |
| gr.Markdown("### Simple Chat with Mistral-7B") | |
| chatbot_output = gr.Textbox(label="Chat History", lines=10, interactive=False, show_copy_button=True) | |
| chatbot_input = gr.Textbox(label="Your Message", placeholder="Type something...") | |
| chatbot_history = gr.State([]) | |
| def custom_chat_simple(user_input, history): | |
| if history is None: | |
| history = [] | |
| system_message = "You are a helpful and polite assistant." | |
| gen = respond(user_input, history, system_message, 256, 0.5, 0.95) | |
| final_response = "" | |
| for chunk in gen: | |
| final_response = chunk | |
| history.append((user_input, final_response)) | |
| chat_display = "" | |
| for user, bot in history: | |
| chat_display += f"π§: {user}\nπ€: {bot}\n\n" | |
| return chat_display, history | |
| send_button = gr.Button("Send") | |
| send_button.click(fn=custom_chat_simple, inputs=[chatbot_input, chatbot_history], outputs=[chatbot_output, chatbot_history]) | |
| # βοΈ Summarization Tab | |
| with gr.Tab("βοΈ Summarization"): | |
| input_text = gr.Textbox(lines=8, label="Enter long text") | |
| output_summary = gr.Textbox(label="Summary") | |
| summarize_btn = gr.Button("Summarize") | |
| summarize_btn.click(summarize_text, inputs=input_text, outputs=output_summary) | |
| # π Text-to-Speech Tab | |
| with gr.Tab("π Text-to-Speech"): | |
| tts_input = gr.Textbox(label="Enter text to convert to audio") | |
| tts_output = gr.Audio(label="Generated Speech") | |
| tts_btn = gr.Button("Generate Audio") | |
| tts_btn.click(text_to_speech, inputs=tts_input, outputs=tts_output) | |
| demo.launch() |