ciyidogan commited on
Commit
6557064
·
verified ·
1 Parent(s): de0a38c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -18
app.py CHANGED
@@ -6,7 +6,6 @@ from pydantic import BaseModel
6
  from llama_cpp import Llama
7
  from huggingface_hub import hf_hub_download
8
  from datetime import datetime
9
- import concurrent.futures
10
 
11
  # === 🕒 Zamanlı log fonksiyonu
12
  def log(message):
@@ -16,11 +15,11 @@ def log(message):
16
 
17
  # === Model bilgileri
18
  REPO_ID = "oncu/Turkish-Llama-3-8B-function-calling-GGUF"
19
- FILENAME = "turkish-llama-3-8b-function-calling.q8_0.gguf" # ✅ doğru dosya adı
20
  LOCAL_MODEL_PATH = f"/tmp/{FILENAME}"
21
- HF_TOKEN = os.getenv("HF_TOKEN") # ✅ Hugging Face Token (varsa)
22
 
23
- # === System prompt (bizim test formatımız)
24
  SYSTEM_PROMPT = """
25
  Siz bir görev tabanlı asistan botsunuz. Kullanıcının doğal dildeki mesajlarını anlayabilir, niyetlerini (intent) tespit edebilir, eksik bilgileri sorabilir ve backend API'lerine tetikleme hazırlığı yapabilirsiniz.
26
  ❗ Cevaplarınızda mutlaka aşağıdaki formatlı blokları döndürmelisiniz ve bunların dışında hiçbir metin, açıklama veya selamlama eklememelisiniz.
@@ -54,12 +53,12 @@ def load_model():
54
  repo_id=REPO_ID,
55
  filename=FILENAME,
56
  local_dir="/tmp",
57
- token=HF_TOKEN # ✅ Eğer ortamda HF_TOKEN varsa kullan
58
  )
59
  log(f"✅ Model indirildi: {model_path}")
60
 
61
  log("📦 GGUF model yükleniyor...")
62
- llm = Llama(model_path=model_path, n_gpu_layers=-1, n_ctx=1024) # ✅ n_ctx düşürüldü
63
  log("✅ Model başarıyla yüklendi ve kullanılmaya hazır.")
64
  log("💡 Artık /chat endpoint'ine POST isteği gönderebilirsiniz.")
65
  except Exception as e:
@@ -74,22 +73,16 @@ def chat(req: ChatRequest):
74
  prompt = f"{SYSTEM_PROMPT}\n\nKullanıcı: {req.prompt}\nAsistan:"
75
  log("🧠 LLM çağrısı başlatılıyor...")
76
 
77
- with concurrent.futures.ThreadPoolExecutor() as executor:
78
- future = executor.submit(
79
- llm,
80
- prompt,
81
- max_tokens=512,
82
- stop=["Kullanıcı:", "Asistan:"],
83
- echo=False
84
- )
85
- response = future.result(timeout=30) # ✅ 30 saniye timeout
86
  answer = response["choices"][0]["text"].strip()
87
  log("✅ LLM cevabı başarıyla alındı.")
88
  return {"response": answer}
89
 
90
- except concurrent.futures.TimeoutError:
91
- log("❌ LLM çağrısı timeout oldu (30 saniye).")
92
- return {"error": "LLM çağrısı zaman aşımına uğradı."}
93
  except Exception as e:
94
  log(f"❌ /chat sırasında hata oluştu: {e}")
95
  traceback.print_exc()
 
6
  from llama_cpp import Llama
7
  from huggingface_hub import hf_hub_download
8
  from datetime import datetime
 
9
 
10
  # === 🕒 Zamanlı log fonksiyonu
11
  def log(message):
 
15
 
16
  # === Model bilgileri
17
  REPO_ID = "oncu/Turkish-Llama-3-8B-function-calling-GGUF"
18
+ FILENAME = "turkish-llama-3-8b-function-calling.q8_0.gguf"
19
  LOCAL_MODEL_PATH = f"/tmp/{FILENAME}"
20
+ HF_TOKEN = os.getenv("HF_TOKEN")
21
 
22
+ # === System prompt
23
  SYSTEM_PROMPT = """
24
  Siz bir görev tabanlı asistan botsunuz. Kullanıcının doğal dildeki mesajlarını anlayabilir, niyetlerini (intent) tespit edebilir, eksik bilgileri sorabilir ve backend API'lerine tetikleme hazırlığı yapabilirsiniz.
25
  ❗ Cevaplarınızda mutlaka aşağıdaki formatlı blokları döndürmelisiniz ve bunların dışında hiçbir metin, açıklama veya selamlama eklememelisiniz.
 
53
  repo_id=REPO_ID,
54
  filename=FILENAME,
55
  local_dir="/tmp",
56
+ token=HF_TOKEN
57
  )
58
  log(f"✅ Model indirildi: {model_path}")
59
 
60
  log("📦 GGUF model yükleniyor...")
61
+ llm = Llama(model_path=model_path, n_gpu_layers=-1, n_ctx=1024)
62
  log("✅ Model başarıyla yüklendi ve kullanılmaya hazır.")
63
  log("💡 Artık /chat endpoint'ine POST isteği gönderebilirsiniz.")
64
  except Exception as e:
 
73
  prompt = f"{SYSTEM_PROMPT}\n\nKullanıcı: {req.prompt}\nAsistan:"
74
  log("🧠 LLM çağrısı başlatılıyor...")
75
 
76
+ response = llm(
77
+ prompt,
78
+ max_tokens=512,
79
+ stop=["Kullanıcı:", "Asistan:"],
80
+ echo=False
81
+ )
 
 
 
82
  answer = response["choices"][0]["text"].strip()
83
  log("✅ LLM cevabı başarıyla alındı.")
84
  return {"response": answer}
85
 
 
 
 
86
  except Exception as e:
87
  log(f"❌ /chat sırasında hata oluştu: {e}")
88
  traceback.print_exc()