DemahAlmutairi commited on
Commit
c34df38
·
verified ·
1 Parent(s): c9f4cf9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +70 -24
app.py CHANGED
@@ -1,31 +1,77 @@
1
  import gradio as gr
2
- from transformers import pipeline
 
 
3
 
4
- # Load the multilingual model for text generation
5
- model_name = "google/mt5-small"
6
- text_generator = pipeline("text-generation", model=model_name)
 
 
 
 
7
 
8
- def generate_text(prompt, language):
9
- # Depending on the language, prepend a language token if needed
10
- if language == "Arabic":
11
- prompt = "<ar>" + prompt
12
- else: # English
13
- prompt = "<en>" + prompt
14
-
15
- generated_text = text_generator(prompt, max_length=200, num_return_sequences=1)
16
- return generated_text[0]['generated_text']
 
 
 
 
 
 
 
 
 
 
 
17
 
18
- # Create the Gradio interface
19
- with gr.Blocks() as demo:
20
- gr.Markdown("## Bilingual Text Generator")
21
- with gr.Row():
22
- language_choice = gr.Radio(choices=["English", "Arabic"], label="Select Language")
23
- prompt_input = gr.Textbox(label="Enter your prompt", placeholder="Type your prompt here...")
24
- generate_button = gr.Button("Generate Text")
25
-
26
- output_text = gr.Textbox(label="Generated Text", interactive=False)
27
-
28
- generate_button.click(generate_text, inputs=[prompt_input, language_choice], outputs=output_text)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
 
30
  # Launch the Gradio app
31
  demo.launch()
 
1
  import gradio as gr
2
+ from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
3
+ import torch
4
+ import spaces
5
 
6
+ def get_model_name(language):
7
+ """Map language choice to the corresponding model."""
8
+ model_mapping = {
9
+ "English": "microsoft/Phi-3-mini-4k-instruct",
10
+ "Arabic": "ALLaM-AI/ALLaM-7B-Instruct-preview"
11
+ }
12
+ return model_mapping.get(language, "ALLaM-AI/ALLaM-7B-Instruct-preview") # Default to Arabic model
13
 
14
+ def load_model(model_name):
15
+ device = "cuda" if torch.cuda.is_available() else "cpu"
16
+ model = AutoModelForCausalLM.from_pretrained(
17
+ model_name,
18
+ device_map=device,
19
+ torch_dtype="auto",
20
+ trust_remote_code=True,
21
+ )
22
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
23
+ generator = pipeline(
24
+ "text-generation",
25
+ model=model,
26
+ tokenizer=tokenizer,
27
+ return_full_text=False,
28
+ max_new_tokens=500,
29
+ do_sample=True, # Enable sampling for more creative outputs
30
+ top_k=50, # Control diversity
31
+ top_p=0.95 # Control diversity
32
+ )
33
+ return generator
34
 
35
+ @spaces.GPU
36
+ def generate_kids_story(character, setting, language):
37
+ model_name = get_model_name(language)
38
+ generator = load_model(model_name)
39
+
40
+ # Define prompt for the AI model
41
+ if language == "English":
42
+ prompt = (f"Write a short story for kids about a character named {character} who goes on an adventure in {setting}. "
43
+ "Make it fun, engaging, and suitable for children.")
44
+ else:
45
+ prompt = (f"اكتب قصة قصيرة للأطفال عن شخصية اسمها {character} التي تذهب في مغامرة في {setting}. "
46
+ "اجعلها ممتعة وجذابة ومناسبة للأطفال.")
47
+
48
+ messages = [{"role": "user", "content": prompt}]
49
+ output = generator(messages)
50
+ return output[0]["generated_text"]
51
+
52
+ # Create Gradio interface
53
+ demo = gr.Interface(
54
+ fn=generate_kids_story,
55
+ inputs=[
56
+ gr.Textbox(placeholder="Enter a character name (e.g., Benny the Bunny)...", label="Character Name"),
57
+ gr.Textbox(placeholder="Enter a setting (e.g., a magical forest)...", label="Setting"),
58
+ gr.Dropdown(
59
+ choices=["English", "Arabic"],
60
+ label="Choose Language",
61
+ value="English" # Default to English
62
+ )
63
+ ],
64
+ outputs=gr.Textbox(label="Kids' Story"),
65
+ title="📖 AI Kids' Story Generator - English & Arabic 📖",
66
+ description="Enter a character name and a setting, and AI will generate a fun short story for kids in English or Arabic.",
67
+ examples=[
68
+ ["Benny the Bunny", "a magical forest", "English"],
69
+ ["علي البطل", "غابة سحرية", "Arabic"],
70
+ ["Lila the Ladybug", "a garden full of flowers", "English"],
71
+ ["ليلى الجنية", "حديقة مليئة بالأزهار", "Arabic"]
72
+ ],
73
+ theme="default",
74
+ )
75
 
76
  # Launch the Gradio app
77
  demo.launch()