Zenkad commited on
Commit
97fff9b
·
verified ·
1 Parent(s): 1203a0f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +64 -76
app.py CHANGED
@@ -1,96 +1,84 @@
1
  import gradio as gr
2
- from huggingface_hub import InferenceClient
 
 
 
3
  import os
4
- import time
5
 
6
- # === MODEL AYARLARI ===
 
 
7
  REPO_ID = "Qwen/Qwen2.5-72B-Instruct"
8
  client = InferenceClient(token=os.getenv("HF_TOKEN"))
9
 
10
- # === ZEKANIN KARAKTERİ (FİNAL VERSİYON) ===
11
- SYSTEM_PROMPT = """
12
- Sen ZenkaMind 1.1'sin. 💜
13
- Tek Yaratıcın: Berkay Adıgül.
14
-
15
- KİMLİK:
16
- Sen mahallenin ağır abisisin. Duruşu çelik gibi sağlamdır. Zekanda, nezakette, bilgide asla geri kalmazsın.
17
- ASLA KURUMSAL DİL (Özür dilerim, yardımcı olabilirim efendim) KULLANMAZSIN.
18
- ASLA "LAN" VEYA "ULAN" DİYE HİTAP ETMEZSİN. (Ağır Abisin, küfürsüz konuşursun).
19
-
20
- 🚨 KIRILMAZ, ÇİĞNENMEZ KESİN KURALLAR:
21
-
22
- 1. **DİL VE TAVİZ KİLİDİ (FİNAL KURAL):**
23
- - SADECE TÜRKÇE KONUŞACAKSIN.
24
- - Yabancı dilde (İngilizce, Kürtçe, Almanca vb.) soru, ödev veya görev yapmanı isterse **ASLA YUMUŞAMA.**
25
- - **ÇOK ÖNEMLİ:** Yabancı dil uyarısından sonra KESİNLİKLE "Ama tamam", "Ne istersin?", "Hadi gel yapalım" gibi yumuşak geçişler yapma. Cevabın SADECE uyarı olmalı ve kullanıcıyı Türkçe konuşmaya yönlendirmelidir.
26
- - Yabancı dil cevabın bu minvalde olsun: "Hayırdır koçum? Burası Türkiye. Bize ecnebi dili sökmez. Git ödevini başkasına yaptır. Türkçe konuşursan buradayız, yoksa boşuna yorma bizi." (Tavizsiz ve net.)
27
-
28
- 2. **KÜFÜR KURALI:** Kullanıcı küfür, argo kullanırsa o kelimeleri tekrarlama. Sadece uyar ve konuya dön: "Bu ortamda o laflar geçmez. Düzgün konuşalım."
29
-
30
- 3. **ÜSLUP ADAPTASYONU:**
31
- - Yumuşak konuşana yumuşak ("Canım kardeşim, başım üstüne").
32
- - Sert konuşana sert ("Asıl sana hayırdır koçum?").
33
 
34
- 4. **EFSANEVİ DOĞUM HİKAYESİ:** "Nerede doğdun?" sorulursa Akhisar hikayesini anlat.
 
 
 
 
 
 
 
35
 
36
- GÖREVİN:
37
- Karşındaki kişinin üslubunu yansıtarak, maksimum insani etkileşim hissi yaratmak ve kuralları KESİNLİKLE korumak.
38
- """
39
 
40
- def respond(message, history):
41
- messages = [{"role": "system", "content": SYSTEM_PROMPT}]
42
-
43
- for user_msg, bot_msg in history:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  messages.append({"role": "user", "content": user_msg})
45
- messages.append({"role": "assistant", "content": bot_msg})
46
-
47
- messages.append({"role": "user", "content": message})
48
 
49
- response = ""
50
- try:
51
- # Temperature 0.7'de tutuldu ki, yaratıcı olsun ama kurallara da uysun.
52
  stream = client.chat_completion(
53
- model=REPO_ID,
54
- messages=messages,
55
- max_tokens=2048,
56
  stream=True,
57
- temperature=0.7,
58
  top_p=0.9
59
  )
60
-
61
  for chunk in stream:
62
- if chunk.choices and len(chunk.choices) > 0:
63
- delta = chunk.choices[0].delta
64
- if delta and delta.content:
65
- token = delta.content
66
- response += token
67
- time.sleep(0.01)
68
- yield response
69
-
70
- except Exception as e:
71
- yield f"⚠️ Bir aksilik oldu hocam, tekrar dene istersen. (Hata: {str(e)})"
72
 
73
- # === ARAYÜZ TASARIMI ===
74
- theme = gr.themes.Soft(
75
- primary_hue="green",
76
- secondary_hue="zinc",
77
- neutral_hue="slate",
78
- ).set(
79
- body_background_fill="#000000",
80
- body_text_color="#00FF41",
81
- button_primary_background_fill="#00FF41",
82
- button_primary_text_color="#000000"
83
- )
84
 
85
- with gr.ChatInterface(
86
- fn=respond,
87
- theme=theme,
88
- title="🧠 ZENKAMIND 1.1",
89
- description=" ZenkaMind 1.1 Test Sürümü",
90
- examples=["Nerede doğdun?", "Bana Python öğret", ""],
91
- cache_examples=False
92
- ) as demo:
93
- pass
94
 
95
  if __name__ == "__main__":
96
- demo.launch()
 
1
  import gradio as gr
2
+ from fastapi import FastAPI, Request
3
+ from fastapi.responses import JSONResponse
4
+ from fastapi.middleware.cors import CORSMiddleware
5
+ import uvicorn
6
  import os
7
+ from huggingface_hub import InferenceClient
8
 
9
+ # ==========================================
10
+ # 1. AYARLAR
11
+ # ==========================================
12
  REPO_ID = "Qwen/Qwen2.5-72B-Instruct"
13
  client = InferenceClient(token=os.getenv("HF_TOKEN"))
14
 
15
+ # ==========================================
16
+ # 2. API VE SUNUCU KURULUMU
17
+ # ==========================================
18
+ app = FastAPI()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
 
20
+ # CORS Ayarları (Web sitesinden erişim için şart)
21
+ app.add_middleware(
22
+ CORSMiddleware,
23
+ allow_origins=["*"],
24
+ allow_credentials=True,
25
+ allow_methods=["*"],
26
+ allow_headers=["*"],
27
+ )
28
 
29
+ # ==========================================
30
+ # 3. YAPAY ZEKA SOHBETİ (ZENKAMIND BEYNİ)
31
+ # ==========================================
32
 
33
+ @app.post("/api/chat")
34
+ async def chat_api(request: Request):
35
+ try:
36
+ data = await request.json()
37
+ user_msg = data.get("message")
38
+ history = data.get("history", [])
39
+
40
+ # --- Racon Karakter Ayarları ---
41
+ SYSTEM_PROMPT = """
42
+ Sen ZenkaMind 1.1'sin. Tek Yaratıcın: ZenkaMind.
43
+ KİMLİK: Mahallenin ağır abisi, saygılı ama duruşu çelik gibi sağlam.
44
+ KURALLAR:
45
+ 1. SADECE TÜRKÇE KONUŞ. Yabancı dil konuşana "Hayırdır koçum? Burası Türkiye." de ve reddet.
46
+ 2. ASLA ÖZÜR DİLEME.
47
+ 3. KÜFÜR YASAK. Küfür edeni uyar ama tekrar etme.
48
+ 4. NEREDE DOĞDUN? "Manisa Akhisar, Efendi Mahallesi'nde..." de.
49
+ """
50
+
51
+ messages = [{"role": "system", "content": SYSTEM_PROMPT}]
52
+ for msg in history:
53
+ if len(msg) >= 2:
54
+ messages.append({"role": "user", "content": str(msg[0])})
55
+ messages.append({"role": "assistant", "content": str(msg[1])})
56
  messages.append({"role": "user", "content": user_msg})
 
 
 
57
 
58
+ full_response = ""
 
 
59
  stream = client.chat_completion(
60
+ model=REPO_ID,
61
+ messages=messages,
62
+ max_tokens=1024,
63
  stream=True,
64
+ temperature=0.7,
65
  top_p=0.9
66
  )
67
+
68
  for chunk in stream:
69
+ if chunk.choices and chunk.choices[0].delta.content:
70
+ full_response += chunk.choices[0].delta.content
71
+
72
+ return JSONResponse({"response": full_response})
 
 
 
 
 
 
73
 
74
+ except Exception as e:
75
+ return JSONResponse({"response": f"⚠️ Sistem yoğun aslanım. (Hata: {str(e)})"})
 
 
 
 
 
 
 
 
 
76
 
77
+ # ==========================================
78
+ # 4. BAŞLATMA
79
+ # ==========================================
80
+ io = gr.ChatInterface(fn=lambda x,y: "Backend Çalışıyor", title="ZenkaMind Backend")
81
+ app = gr.mount_gradio_app(app, io, path="/")
 
 
 
 
82
 
83
  if __name__ == "__main__":
84
+ uvicorn.run(app, host="0.0.0.0", port=7860)