Zenkad commited on
Commit
775dd9d
·
verified ·
1 Parent(s): 92bb2fe

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +62 -33
app.py CHANGED
@@ -7,10 +7,9 @@ import requests
7
  # =========================
8
  # CONFIG
9
  # =========================
10
- HF_TOKEN = os.getenv("HF_TOKEN")
11
-
12
- HF_ROUTER_URL = "https://router.huggingface.co/v1/chat/completions"
13
- MODEL = "Qwen/Qwen2.5-3B-Instruct" # hafif, hızlı, stabil
14
 
15
  # =========================
16
  # FASTAPI
@@ -34,10 +33,22 @@ async def chat(req: Request):
34
  message = data.get("message", "").strip()
35
 
36
  if not message:
37
- return JSONResponse(status_code=400, content={"response": "Mesaj boş olamaz."})
 
 
 
38
 
39
  if not HF_TOKEN:
40
- return {"response": "⚠️ HF_TOKEN tanımlı değil."}
 
 
 
 
 
 
 
 
 
41
 
42
  headers = {
43
  "Authorization": f"Bearer {HF_TOKEN}",
@@ -45,49 +56,67 @@ async def chat(req: Request):
45
  }
46
 
47
  payload = {
48
- "model": MODEL,
49
- "messages": [
50
- {
51
- "role": "system",
52
- "content": (
53
- "Sen ZenkaMind adlı, Türkiye merkezli bir yapay zekasın. "
54
- "Sadece Türkçe konuş. Net, kısa, gerçekçi cevaplar ver."
55
- )
56
- },
57
- {
58
- "role": "user",
59
- "content": message
60
- }
61
- ],
62
- "temperature": 0.7,
63
- "max_tokens": 256
64
  }
65
 
66
  try:
67
  response = requests.post(
68
- HF_ROUTER_URL,
69
  headers=headers,
70
  json=payload,
71
- timeout=60
72
  )
73
 
74
- if response.status_code != 200:
 
 
75
  return {
76
- "response": f" HF Router Hatası ({response.status_code})"
77
  }
78
 
79
- result = response.json()
 
 
 
 
 
 
 
 
 
 
 
 
 
80
 
81
- if "choices" in result and len(result["choices"]) > 0:
82
  return {
83
- "response": result["choices"][0]["message"]["content"].strip()
84
  }
85
 
86
- return {"response": "⚠️ Model cevap üretmedi."}
 
 
 
 
 
 
 
 
87
 
88
  except requests.exceptions.Timeout:
89
- return {"response": "⏱️ Zaman aşımı. Tekrar dene."}
 
 
90
 
91
  except Exception as e:
92
- print("HATA:", str(e))
93
- return {"response": "❌ Sunucu hatası oluştu."}
 
 
 
7
  # =========================
8
  # CONFIG
9
  # =========================
10
+ HF_MODEL = "tiiuae/falcon-1b-instruct"
11
+ HF_API_URL = "https://router.huggingface.co/hf-inference/models/" + HF_MODEL
12
+ HF_TOKEN = os.getenv("HF_TOKEN") # Space > Settings > Variables
 
13
 
14
  # =========================
15
  # FASTAPI
 
33
  message = data.get("message", "").strip()
34
 
35
  if not message:
36
+ return JSONResponse(
37
+ status_code=400,
38
+ content={"response": "Mesaj boş olamaz."}
39
+ )
40
 
41
  if not HF_TOKEN:
42
+ return {
43
+ "response": "⚠️ HF_TOKEN tanımlı değil. Space Settings → Variables ekle."
44
+ }
45
+
46
+ prompt = f"""Sen ZenkaMind'sin.
47
+ Sadece Türkçe konuş.
48
+ Net, kısa ve yol gösterici cevaplar ver.
49
+
50
+ Kullanıcı: {message}
51
+ ZenkaMind:"""
52
 
53
  headers = {
54
  "Authorization": f"Bearer {HF_TOKEN}",
 
56
  }
57
 
58
  payload = {
59
+ "inputs": prompt,
60
+ "parameters": {
61
+ "max_new_tokens": 200,
62
+ "temperature": 0.7,
63
+ "top_p": 0.9,
64
+ "do_sample": True,
65
+ "return_full_text": False
66
+ }
 
 
 
 
 
 
 
 
67
  }
68
 
69
  try:
70
  response = requests.post(
71
+ HF_API_URL,
72
  headers=headers,
73
  json=payload,
74
+ timeout=45
75
  )
76
 
77
+ # Model yükleniyor / yoğun
78
+ if response.status_code == 503:
79
+ est = response.json().get("estimated_time", 20)
80
  return {
81
+ "response": f" Model yükleniyor. {int(est)} saniye sonra tekrar dene."
82
  }
83
 
84
+ # Başarılı
85
+ if response.status_code == 200:
86
+ result = response.json()
87
+
88
+ generated_text = ""
89
+ if isinstance(result, list) and len(result) > 0:
90
+ generated_text = result[0].get("generated_text", "")
91
+ elif isinstance(result, dict):
92
+ generated_text = result.get("generated_text", "")
93
+
94
+ generated_text = generated_text.replace(prompt, "").strip()
95
+
96
+ if generated_text:
97
+ return {"response": generated_text}
98
 
 
99
  return {
100
+ "response": "⚠️ Model cevap üretemedi. Tekrar dene."
101
  }
102
 
103
+ # Diğer hatalar
104
+ try:
105
+ err = response.json().get("error", response.text)
106
+ except:
107
+ err = response.text
108
+
109
+ return {
110
+ "response": f"❌ HF Router Hatası ({response.status_code}): {err}"
111
+ }
112
 
113
  except requests.exceptions.Timeout:
114
+ return {
115
+ "response": "⏱️ Zaman aşımı. Tekrar dene."
116
+ }
117
 
118
  except Exception as e:
119
+ print("SUNUCU HATASI:", e)
120
+ return {
121
+ "response": "❌ Sunucu hatası oluştu."
122
+ }