ciyidogan commited on
Commit
25cd8e8
·
verified ·
1 Parent(s): 71b37a3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -8
app.py CHANGED
@@ -7,6 +7,7 @@ from datetime import datetime
7
  from fastapi import FastAPI, HTTPException
8
  from pydantic import BaseModel
9
  from transformers import AutoTokenizer, AutoModelForCausalLM
 
10
 
11
  # === Ortam değişkenleri
12
  os.environ.setdefault("HF_HOME", "/app/.cache")
@@ -17,35 +18,38 @@ def log(message):
17
  timestamp = datetime.now().strftime("%H:%M:%S")
18
  print(f"[{timestamp}] {message}", flush=True)
19
 
20
- # === FastAPI başlat
21
- app = FastAPI()
22
  tokenizer = None
23
  model = None
24
 
25
- @app.on_event("startup")
26
- def load_model():
 
27
  global tokenizer, model
28
  try:
29
  model_name = "ytu-ce-cosmos/Turkish-Llama-8b-DPO-v0.1"
30
  log(f"⬇️ Model yükleme başlatılıyor: {model_name}")
31
 
32
  tokenizer = AutoTokenizer.from_pretrained(model_name)
 
 
33
  model = AutoModelForCausalLM.from_pretrained(
34
  model_name,
35
- torch_dtype="auto", # A100 için bf16
36
  device_map="auto"
37
  )
38
 
39
- # Padding için pad_token ayarla (yoksa hata veriyor)
40
- tokenizer.pad_token = tokenizer.eos_token
41
-
42
  log("✅ Model ve tokenizer başarıyla hazır.")
 
43
 
44
  except Exception as e:
45
  log(f"❌ Model yükleme hatası: {e}")
46
  traceback.print_exc()
47
  raise
48
 
 
 
 
49
  class UserInputRequest(BaseModel):
50
  user_input: str
51
  system_prompt: str
 
7
  from fastapi import FastAPI, HTTPException
8
  from pydantic import BaseModel
9
  from transformers import AutoTokenizer, AutoModelForCausalLM
10
+ from contextlib import asynccontextmanager
11
 
12
  # === Ortam değişkenleri
13
  os.environ.setdefault("HF_HOME", "/app/.cache")
 
18
  timestamp = datetime.now().strftime("%H:%M:%S")
19
  print(f"[{timestamp}] {message}", flush=True)
20
 
21
+ # === Global model değişkenleri
 
22
  tokenizer = None
23
  model = None
24
 
25
+ # === Lifespan tanımı
26
+ @asynccontextmanager
27
+ async def lifespan(app: FastAPI):
28
  global tokenizer, model
29
  try:
30
  model_name = "ytu-ce-cosmos/Turkish-Llama-8b-DPO-v0.1"
31
  log(f"⬇️ Model yükleme başlatılıyor: {model_name}")
32
 
33
  tokenizer = AutoTokenizer.from_pretrained(model_name)
34
+ tokenizer.pad_token = tokenizer.eos_token
35
+
36
  model = AutoModelForCausalLM.from_pretrained(
37
  model_name,
38
+ torch_dtype="auto",
39
  device_map="auto"
40
  )
41
 
 
 
 
42
  log("✅ Model ve tokenizer başarıyla hazır.")
43
+ yield # Uygulama burada çalışır
44
 
45
  except Exception as e:
46
  log(f"❌ Model yükleme hatası: {e}")
47
  traceback.print_exc()
48
  raise
49
 
50
+ # === FastAPI başlat
51
+ app = FastAPI(lifespan=lifespan)
52
+
53
  class UserInputRequest(BaseModel):
54
  user_input: str
55
  system_prompt: str