Reem1 commited on
Commit
7327eb7
·
verified ·
1 Parent(s): 26c3693

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -2
app.py CHANGED
@@ -3,7 +3,9 @@ from fastapi import FastAPI
3
  from pydantic import BaseModel
4
  from transformers import pipeline
5
 
6
-
 
 
7
 
8
  app = FastAPI(
9
  title="📖 حكايتي - API",
@@ -12,6 +14,7 @@ app = FastAPI(
12
 
13
  MODEL_REPO = "Reem1/hakayti-merged"
14
 
 
15
  few_shot_example = """<s>[User]: اسمي كريم وأحب الفضاء.
16
  اكتب لي قصة طويلة للأطفال (40 جملة على الأقل) مكتوبة بأسلوب قصصي ممتع.
17
  [Assistant]:
@@ -23,6 +26,7 @@ few_shot_example = """<s>[User]: اسمي كريم وأحب الفضاء.
23
  وهكذا تعلم كريم أن الحلم يبدأ بخطوة صغيرة، وأن حب المعرفة يمكن أن يفتح له أبوابًا واسعة نحو المستقبل.
24
  </s>"""
25
 
 
26
  pipe = pipeline(
27
  "text-generation",
28
  model=MODEL_REPO,
@@ -32,10 +36,12 @@ pipe = pipeline(
32
  top_p=0.95
33
  )
34
 
 
35
  class StoryRequest(BaseModel):
36
  name: str
37
  hobby: str
38
 
 
39
  def generate_story(name, hobby):
40
  prompt = f"""{few_shot_example}
41
  [User]: اسمي {name} وأحب {hobby}.
@@ -43,11 +49,18 @@ def generate_story(name, hobby):
43
  وتأكد أن القصة كلها تدور حول {hobby} فقط.
44
  [Assistant]:"""
45
 
46
- out = pipe(prompt, max_new_tokens=900, temperature=0.9, top_p=0.95, do_sample=True)
 
 
 
 
 
 
47
  full_text = out[0]["generated_text"]
48
  story = full_text.split("[Assistant]:")[-1].replace("</s>", "").strip()
49
  return story
50
 
 
51
  @app.post("/generate")
52
  def generate_story_api(req: StoryRequest):
53
  story = generate_story(req.name, req.hobby)
 
3
  from pydantic import BaseModel
4
  from transformers import pipeline
5
 
6
+ # 🔧 نخلي الكاش في فولدر قابل للكتابة
7
+ os.environ["HF_HOME"] = "/data"
8
+ os.environ["TRANSFORMERS_CACHE"] = "/data/cache"
9
 
10
  app = FastAPI(
11
  title="📖 حكايتي - API",
 
14
 
15
  MODEL_REPO = "Reem1/hakayti-merged"
16
 
17
+ # مثال توضيحي few-shot
18
  few_shot_example = """<s>[User]: اسمي كريم وأحب الفضاء.
19
  اكتب لي قصة طويلة للأطفال (40 جملة على الأقل) مكتوبة بأسلوب قصصي ممتع.
20
  [Assistant]:
 
26
  وهكذا تعلم كريم أن الحلم يبدأ بخطوة صغيرة، وأن حب المعرفة يمكن أن يفتح له أبوابًا واسعة نحو المستقبل.
27
  </s>"""
28
 
29
+ # تحميل الموديل مرة واحدة
30
  pipe = pipeline(
31
  "text-generation",
32
  model=MODEL_REPO,
 
36
  top_p=0.95
37
  )
38
 
39
+ # body request
40
  class StoryRequest(BaseModel):
41
  name: str
42
  hobby: str
43
 
44
+ # مولد القصة
45
  def generate_story(name, hobby):
46
  prompt = f"""{few_shot_example}
47
  [User]: اسمي {name} وأحب {hobby}.
 
49
  وتأكد أن القصة كلها تدور حول {hobby} فقط.
50
  [Assistant]:"""
51
 
52
+ out = pipe(
53
+ prompt,
54
+ max_new_tokens=900,
55
+ temperature=0.9,
56
+ top_p=0.95,
57
+ do_sample=True
58
+ )
59
  full_text = out[0]["generated_text"]
60
  story = full_text.split("[Assistant]:")[-1].replace("</s>", "").strip()
61
  return story
62
 
63
+ # API endpoint
64
  @app.post("/generate")
65
  def generate_story_api(req: StoryRequest):
66
  story = generate_story(req.name, req.hobby)