Reem1 commited on
Commit
736dee8
·
verified ·
1 Parent(s): b351435

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +65 -0
app.py ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import gradio as gr
3
+ from transformers import pipeline
4
+
5
+ # نحدد كاش للموديل عشان يقلل زمن التحميل
6
+ os.environ["TRANSFORMERS_CACHE"] = "/app/cache"
7
+
8
+ # اسم الموديل بتاعك
9
+ MODEL_REPO = "Reem1/hakayti-merged"
10
+
11
+ # مثال few-shot زي ما هو بالظبط
12
+ few_shot_example = """<s>[User]: اسمي كريم وأحب الفضاء.
13
+ اكتب لي قصة طويلة للأطفال (40 جملة على الأقل) مكتوبة بأسلوب قصصي ممتع.
14
+ [Assistant]:
15
+ كريم كان يحب النظر إلى السماء كل ليلة. كان يجلس في شرفة بيته، يراقب النجوم ويعدها واحدة تلو الأخرى. أحيانًا كان يتخيل أن النجوم مثل مصابيح صغيرة تضيء له الطريق نحو أحلامه الكبيرة.
16
+ في المدرسة، لاحظ المعلم شغف كريم بالفضاء. أعطاه كتابًا مليئًا بالصور الملونة للكواكب والأقمار. انبهر كريم عندما رأى صور كوكب زحل وحلقاته اللامعة، وأخذ يتخيل نفسه يطير حوله.
17
+ قرر كريم أن يصنع نموذجًا صغيرًا للمجموعة الشمسية. جمع كرات صغيرة وطلّاها بالألوان: الأزرق للأرض، الأحمر للمريخ، والأصفر للشمس. علّقها بخيوط في غرفته، فصارت كأنها سماء صغيرة يعيش فيها.
18
+ في أحد الأيام، أعلنت المدرسة عن مسابقة للرسم بعنوان "رحلة إلى الفضاء". رسم كريم لوحة كبيرة يظهر فيها صاروخ ينطلق من الأرض، وحوله أطفال يلوّحون بأيديهم. فاز كريم بالجائزة الأولى، وكان سعيدًا جدًا لأن حلمه بالفضاء أصبح أقرب مما يتخيل.
19
+ في المساء، جلس كريم مع والده على سطح المنزل. أشار والده إلى القمر وقال: "تخيّل يا كريم أن العلماء يدرسون الآن كيف يعيش الناس يومًا ما في الفضاء". ابتسم كريم وأجاب: "سأكون أنا واحدًا منهم".
20
+ وهكذا تعلم كريم أن الحلم يبدأ بخطوة صغيرة، وأن حب المعرفة يمكن أن يفتح له أبوابًا واسعة نحو المستقبل.
21
+ </s>"""
22
+
23
+ # تحميل الموديل
24
+ pipe = pipeline(
25
+ "text-generation",
26
+ model=MODEL_REPO,
27
+ tokenizer=MODEL_REPO,
28
+ max_new_tokens=900,
29
+ temperature=0.9,
30
+ top_p=0.95
31
+ )
32
+
33
+ # نفس دالة توليد القصة
34
+ def generate_story(name, hobby):
35
+ prompt = f"""{few_shot_example}
36
+ [User]: اسمي {name} وأحب {hobby}.
37
+ اكتب لي قصة طويلة للأطفال (40 جملة على الأقل) مكتوبة بنفس الأسلوب السابق،
38
+ وتأكد أن القصة كلها تدور حول {hobby} فقط.
39
+ [Assistant]:"""
40
+
41
+ out = pipe(
42
+ prompt,
43
+ max_new_tokens=900,
44
+ temperature=0.9,
45
+ top_p=0.95,
46
+ do_sample=True
47
+ )
48
+
49
+ full_text = out[0]["generated_text"]
50
+ story = full_text.split("[Assistant]:")[-1].replace("</s>", "").strip()
51
+ return story
52
+
53
+ # واجهة Gradio
54
+ iface = gr.Interface(
55
+ fn=generate_story,
56
+ inputs=[
57
+ gr.Textbox(label="✍️ ما اسمك؟"),
58
+ gr.Textbox(label="🎨 ما هو اهتمامك أو الشيء الذي تحبه؟")
59
+ ],
60
+ outputs=gr.Textbox(label="📖 قصتك"),
61
+ title="📖 حكايتي - صانع القصص للأطفال",
62
+ description="أدخل اسمك واهتماماتك، ودعني أكتب لك قصة طويلة للأطفال بأسلوب ممتع ❤️"
63
+ )
64
+
65
+ iface.launch()