Update app.py
Browse files
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"
|
20 |
LOCAL_MODEL_PATH = f"/tmp/{FILENAME}"
|
21 |
-
HF_TOKEN = os.getenv("HF_TOKEN")
|
22 |
|
23 |
-
# === System prompt
|
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
|
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)
|
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 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
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()
|