project_space / app.py
RoselineT's picture
Update app.py
90ffb9d verified
import gradio as gr
from transformers import pipeline
# Load the instruction-tuned model
model = pipeline(
"text2text-generation",
model="google/flan-t5-base"
)
# Allowed vocational domains
ALLOWED_TOPICS = [
"fashion", "tailoring", "sewing", "clothing",
"catering", "cooking", "baking", "food",
"hair", "hairdressing", "barbing",
"shoe", "shoemaking", "leather",
"bag", "bag making",
"hat", "millinery",
"decoration", "event decoration",
"dtf", "printing", "craft"
]
# Unsafe keywords (basic content filtering)
UNSAFE_KEYWORDS = [
"poison", "acid", "chemical", "drug",
"weapon", "bomb", "kill", "hack",
"medical", "treatment", "diagnosis",
"legal", "court", "lawsuit"
]
def is_vocational(question):
question_lower = question.lower()
return any(topic in question_lower for topic in ALLOWED_TOPICS)
def is_unsafe(question):
question_lower = question.lower()
return any(word in question_lower for word in UNSAFE_KEYWORDS)
def vocational_ai(question):
if len(question.strip()) == 0:
return "Please enter a vocational-related question."
if is_unsafe(question):
return (
"⚠️ This question may involve unsafe or restricted content.\n\n"
"I can only provide safe, educational vocational guidance."
)
if not is_vocational(question):
return (
"❌ I am a vocational training assistant.\n\n"
"Please ask questions related to skills like fashion design, catering, "
"hairdressing, shoemaking, bag making, decoration, or printing."
)
prompt = f"""
You are an AI-powered vocational training assistant.
Rules:
- Give beginner-friendly explanations
- Focus on safety and best practices
- Do NOT give medical, legal, or dangerous advice
- Provide structured steps where appropriate
- End with a safety reminder
Question:
{question}
"""
response = model(prompt, max_length=250)
return response[0]["generated_text"] + "\n\n⚠️ This information is for educational purposes only."
# Gradio Interface
interface = gr.Interface(
fn=vocational_ai,
inputs=gr.Textbox(
lines=3,
placeholder="Ask about fashion, catering, hairdressing, shoemaking, bag making, etc."
),
outputs="text",
title="AI-Powered Vocational Training Assistant",
description=(
"An AI assistant that provides safe, beginner-friendly guidance "
"for vocational skills. Available 24/7."
),
)
if __name__ == "__main__":
interface.launch()