RemotelyBest_Development_of_AI_Application / piitun päivittämä app.py.py
piituj's picture
Upload piitun päivittämä app.py.py
37086c1 verified
raw
history blame
4.48 kB
import gradio as gr
import pandas as pd
import numpy as np
import random
def show_stars():
""" Function that shows the HTML script for stars -Janika"""
stars_html = """
<style>
/* Title */
.title-text {
color: white;
font-family: sans-serif;
font-size: 14px;
font-weight: bold;
}
/* Empty stars */
.star-rating {
display: inline-block;
font-size: 1.5em;
color: lightgray;
}
/* Filled stars */
.star-rating .star.filled {
color: gold;
}
/* Box for the whole star rating component */
.rating-box {
border: 1px transparent;
background-color: #1f2937;
padding: 10px;
border-radius: 5px;
width: 100%;
margin-left: 0;
}
/* Box for the title */
.title-box {
border: 1px transparent;
background-color: #ca8a04;
padding: 3px;
border-radius: 8px;
display: inline-block;
margin-bottom: 6px;
}
/* Box for stars */
.star-box {
border: 1px transparent;
background-color: #374151;
padding: 10px;
border-radius: 5px;
width: fit-content;
margin: 0;
}
</style>
<div class="rating-box">
<div class="title-box">
<p class="title-text">Star rating</p>
</div>
<div class="star-box">
<div class="star-rating" data-rating="4">
<span class="star">★</span>
<span class="star">★</span>
<span class="star">★</span>
<span class="star">★</span>
<span class="star">★</span>
</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
const ratingElement = document.querySelector('.star-rating');
const rating = parseInt(ratingElement.getAttribute('data-rating'));
const stars = ratingElement.querySelectorAll('.star');
for (let i = 0; i < rating; i++) {
stars[i].classList.add('filled');
}
});
</script>
"""
return stars_html
# Random data for testing, actual data added later
df = pd.DataFrame({
'Year': np.random.randint(2000, 2024, 25),
'Reviews': np.random.randint(120, 320, 25),
})
# Function to handle feedback submission -Piitu
def handle_feedback(feedback, name):
return f"Thank you for your feedback, {name}!"
# Function to update placeholder text -Piitu
def update_placeholder(name):
if name:
return f"Enter your feedback here, {name}..."
else:
return "Enter your feedback here..."
# Theme
theme = gr.themes.Soft(
primary_hue="yellow",
secondary_hue="amber",
spacing_size="sm",
radius_size="lg",
)
with gr.Blocks(theme=theme) as demo:
# Basic user interface for company's view -Janika
with gr.Tab("User Interface"):
with gr.Row():
with gr.Column(scale=1, min_width=300):
# Summary
summary_output = gr.Textbox(label="Summary")
with gr.Column(scale=2, min_width=300):
# Star rating
star_rating = gr.HTML(value=show_stars())
# Keywords
keywords_output = gr.Textbox(label="Keywords")
# Testing Area -Piitu
with gr.Tab("Testing Area"):
with gr.Row():
name_input = gr.Textbox(label="Enter your name", placeholder="Enter your name here...")
with gr.Row():
text_input = gr.Textbox(label="Please give us feedback!",
placeholder="Enter your feedback here...",
max_length=5000)
# Update placeholder based on name input -Piitu
name_input.change(fn=update_placeholder, inputs=name_input, outputs=text_input)
# Send button -Piitu
send_button = gr.Button("Send")
# Output for feedback submission confirmation -Piitu
feedback_output = gr.Textbox(label="Submission Result", interactive=False)
# Link button to function that handles feedback submission -Piitu
send_button.click(handle_feedback, inputs=[text_input, name_input], outputs=feedback_output)
demo.launch()