model_train / app.py
sufya12's picture
Update app.py
653cf6d verified
Raw History Blame Contribute Delete
3.98 kB
import gradio as gr
from transformers import pipeline
import pandas as pd
import logging
# Set up logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
class FrenchTitleGenerator:
def __init__(self):
try:
# Load your fine-tuned model from Hugging Face
# Replace with your actual model name after training
self.generator = pipeline(
"translation",
model="sufya12/french-title-model", # Change this to your model
tokenizer="sufya12/french-title-model"
)
logger.info("✅ Model loaded successfully from Hugging Face")
except Exception as e:
logger.error(f"❌ Error loading model: {e}")
self.generator = None
def generate_title(self, year, city, event_description, temperature=0.8, max_length=60):
if not self.generator:
return "Error: Model not loaded. Please check the logs."
try:
# Create input prompt
input_text = f"Generate French title: Year: {year} City: {city} Event: {event_description}"
# Generate title
result = self.generator(
input_text,
max_length=max_length,
num_beams=3,
temperature=temperature,
do_sample=True,
early_stopping=True
)
return result[0]['translation_text']
except Exception as e:
return f"Error generating title: {str(e)}"
# Initialize the generator
title_generator = FrenchTitleGenerator()
# Gradio interface
def generate_french_title(year, city, event_description, temperature, max_length):
return title_generator.generate_title(year, city, event_description, temperature, max_length)
# Create the interface
with gr.Blocks(theme=gr.themes.Soft()) as demo:
gr.Markdown("# 🇫🇷 French Event Title Generator")
gr.Markdown("Generate professional French event titles using AI!")
with gr.Row():
with gr.Column():
year_input = gr.Textbox(
label="Year",
placeholder="e.g., 2025",
value="2025"
)
city_input = gr.Textbox(
label="City",
placeholder="e.g., Paris",
value="Paris"
)
event_input = gr.Textbox(
label="Event Description",
placeholder="Describe your event in English...",
lines=3
)
with gr.Row():
temperature_slider = gr.Slider(
minimum=0.1,
maximum=1.5,
value=0.8,
step=0.1,
label="Creativity Level"
)
max_length_slider = gr.Slider(
minimum=20,
maximum=100,
value=60,
step=5,
label="Title Length"
)
generate_btn = gr.Button("Generate Title 🚀", variant="primary")
with gr.Column():
output_text = gr.Textbox(
label="Generated French Title",
lines=4,
show_copy_button=True
)
# Examples
gr.Examples(
examples=[
["2025", "Paris", "Summer Jazz Festival in the Park"],
["2024", "Lyon", "International Food and Wine Exhibition"],
["2025", "Nice", "Beach Music Concert and Party"]
],
inputs=[year_input, city_input, event_input]
)
generate_btn.click(
fn=generate_french_title,
inputs=[year_input, city_input, event_input, temperature_slider, max_length_slider],
outputs=output_text
)
if __name__ == "__main__":
demo.launch()