Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import AutoTokenizer, AutoModelForSeq2SeqLM | |
| # Using a robust and stable model for the free tier | |
| MODEL = "google/flan-t5-large" | |
| tokenizer = AutoTokenizer.from_pretrained(MODEL) | |
| model = AutoModelForSeq2SeqLM.from_pretrained(MODEL) | |
| def generate_content(topic, lang_choice, content_type): | |
| # Language selection based on user input | |
| if lang_choice == "Arabic": | |
| if content_type == "YouTube Script": | |
| prompt = f"اكتب سكربت يوتيوب احترافي باللغة العربية عن: {topic}. اجعله دقيقة واحدة مع مقدمة جذابة ونقاط أساسية وخاتمة." | |
| elif content_type == "YouTube Title": | |
| prompt = f"أنشئ عنوان يوتيوب جذاب قصير لا يتجاوز 60 حرفاً عن: {topic}." | |
| elif content_type == "Description + SEO": | |
| prompt = f"اكتب وصف يوتيوب مُحسَّن للسيو عن: {topic} مع هاشتاغات مقترحة." | |
| else: # LinkedIn Post | |
| prompt = f"اكتب منشور لينكدإن احترافي قصير بالعربية عن: {topic}." | |
| else: # English | |
| if content_type == "YouTube Script": | |
| prompt = f"Write a professional YouTube script in English about: {topic}. Make it one minute long with an engaging intro, key points, and a conclusion." | |
| elif content_type == "YouTube Title": | |
| prompt = f"Create a catchy YouTube title in English, under 60 characters, about: {topic}." | |
| elif content_type == "Description + SEO": | |
| prompt = f"Write an SEO-friendly YouTube description about: {topic} with suggested hashtags." | |
| else: # LinkedIn Post | |
| prompt = f"Write a professional LinkedIn post in English about: {topic}." | |
| # Using try-except block to handle potential model errors | |
| try: | |
| inputs = tokenizer(prompt, return_tensors="pt") | |
| outs = model.generate(**inputs, max_length=300) | |
| return tokenizer.decode(outs[0], skip_special_tokens=True) | |
| except Exception as e: | |
| return f"حدث خطأ: {str(e)}. حاول مرة أخرى أو غيّر الموضوع." | |
| iface = gr.Interface( | |
| fn=generate_content, | |
| inputs=[ | |
| gr.Textbox(label="Topic"), | |
| gr.Radio(["Arabic", "English"], label="Language"), | |
| gr.Radio(["YouTube Script", "YouTube Title", "Description + SEO", "LinkedIn Post"], label="Content Type") | |
| ], | |
| outputs=gr.Textbox(label="Result") | |
| ) | |
| if __name__ == "__main__": | |
| iface.launch() |