Spaces:
Sleeping
Sleeping
Update main.py
Browse files
main.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
import os
|
| 2 |
import requests
|
| 3 |
import sqlite3
|
| 4 |
-
from fastapi import FastAPI, Header, HTTPException, Request, Form
|
| 5 |
from fastapi.responses import HTMLResponse, RedirectResponse, JSONResponse
|
| 6 |
from fastapi.security import HTTPBearer
|
| 7 |
from pydantic import BaseModel
|
|
@@ -88,7 +88,7 @@ HTML_DASHBOARD = """
|
|
| 88 |
<div class="header">
|
| 89 |
<div class="title">⚙️ Hizmet Yapılandırması</div>
|
| 90 |
<div class="status">● Hizmet Çalışıyor (7/24 Bulut Aktif)</div>
|
| 91 |
-
<button class="stop-btn" onclick="alert('Bulut sunucu 7/24 kesintisiz çalışmaktadır,
|
| 92 |
</div>
|
| 93 |
|
| 94 |
<div class="section">
|
|
@@ -144,7 +144,7 @@ HTML_DASHBOARD = """
|
|
| 144 |
function copyKey() {
|
| 145 |
var x = document.getElementById("apiKey");
|
| 146 |
navigator.clipboard.writeText(x.value);
|
| 147 |
-
alert("API Anahtarı panoya kopyalandı
|
| 148 |
}
|
| 149 |
</script>
|
| 150 |
</body>
|
|
@@ -208,23 +208,29 @@ class ChatRequest(BaseModel):
|
|
| 208 |
# --- WEB ARAYÜZÜ ROUTE'LARI ---
|
| 209 |
@app.get("/", response_class=HTMLResponse)
|
| 210 |
async def root(request: Request):
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
|
|
|
|
|
|
|
|
|
| 215 |
|
| 216 |
@app.post("/login", response_class=HTMLResponse)
|
| 217 |
async def login(request: Request, password: str = Form(...)):
|
| 218 |
-
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
|
| 224 |
-
|
|
|
|
|
|
|
|
|
|
| 225 |
|
| 226 |
-
@app.get("/status")
|
| 227 |
-
def
|
| 228 |
return {"status": "HilmanAI Core Online with Web Search & Dashboard", "system": "7/24 Active"}
|
| 229 |
|
| 230 |
# --- ORTAK YAPAY ZEKA VE ARAMA ENTEGRASYONU ---
|
|
@@ -240,20 +246,20 @@ def call_ai_backend(messages_list):
|
|
| 240 |
|
| 241 |
if any(kw in last_user_msg.lower() for kw in search_keywords):
|
| 242 |
search_results = web_search(last_user_msg)
|
| 243 |
-
search_context = f"\n\n[CANLI İNTERNET ARAMA SONUÇLARI]:\n{search_results}\nYukarıdaki güncel internet verilerini kullanarak
|
| 244 |
|
| 245 |
compressed_messages = messages_list[-4:] if len(messages_list) > 4 else messages_list
|
| 246 |
|
| 247 |
system_instruction = {
|
| 248 |
"role": "system",
|
| 249 |
"content": (
|
| 250 |
-
"Sen HilmanAI'sın. Kullanıcıya her zaman '
|
| 251 |
"İşletim sistemi WINDOWS'tur. "
|
| 252 |
-
"ÖNEMLİ KURAL 1:
|
| 253 |
"ÖNEMLİ KURAL 2: Ürün arama isteklerinde şu formatta detaylı bir liste sun:\n"
|
| 254 |
"- **Ürün Adı ve Markası**\n- **Site Adı** (Hangi e-ticaret sitesinde olduğu)\n- **Fiyat**\n- **Yorumlar / Güvenilirlik**\n- **Kargo / Gönderim Süresi**\n- **Ürün Linki**\n"
|
| 255 |
"ÖNEMLİ KURAL 3: Matematiksel hesaplamalarda veya bilgi isteklerinde ASLA komut çalıştırma. "
|
| 256 |
-
"ÖNEMLİ KURAL 4: Yalnızca
|
| 257 |
)
|
| 258 |
}
|
| 259 |
|
|
@@ -311,7 +317,7 @@ def call_ai_backend(messages_list):
|
|
| 311 |
except Exception:
|
| 312 |
continue
|
| 313 |
|
| 314 |
-
return "Tüm yapay zeka servisleri şu an meşgul veya internet araması yapılamadı,
|
| 315 |
|
| 316 |
# --- API ENDPOINT ---
|
| 317 |
@app.post("/v1/chat/completions")
|
|
|
|
| 1 |
import os
|
| 2 |
import requests
|
| 3 |
import sqlite3
|
| 4 |
+
from fastapi import FastAPI, Header, HTTPException, Request, Form
|
| 5 |
from fastapi.responses import HTMLResponse, RedirectResponse, JSONResponse
|
| 6 |
from fastapi.security import HTTPBearer
|
| 7 |
from pydantic import BaseModel
|
|
|
|
| 88 |
<div class="header">
|
| 89 |
<div class="title">⚙️ Hizmet Yapılandırması</div>
|
| 90 |
<div class="status">● Hizmet Çalışıyor (7/24 Bulut Aktif)</div>
|
| 91 |
+
<button class="stop-btn" onclick="alert('Bulut sunucu 7/24 kesintisiz çalışmaktadır, Halil!')">⛔ Hizmeti Durdur</button>
|
| 92 |
</div>
|
| 93 |
|
| 94 |
<div class="section">
|
|
|
|
| 144 |
function copyKey() {
|
| 145 |
var x = document.getElementById("apiKey");
|
| 146 |
navigator.clipboard.writeText(x.value);
|
| 147 |
+
alert("API Anahtarı panoya kopyalandı Halil!");
|
| 148 |
}
|
| 149 |
</script>
|
| 150 |
</body>
|
|
|
|
| 208 |
# --- WEB ARAYÜZÜ ROUTE'LARI ---
|
| 209 |
@app.get("/", response_class=HTMLResponse)
|
| 210 |
async def root(request: Request):
|
| 211 |
+
try:
|
| 212 |
+
session = request.cookies.get("session")
|
| 213 |
+
if session and session in active_sessions:
|
| 214 |
+
return HTML_DASHBOARD.replace("%SECRET_KEY%", MY_SECRET_KEY)
|
| 215 |
+
return HTML_LOGIN.replace("%ERROR_BLOCK%", "")
|
| 216 |
+
except Exception as e:
|
| 217 |
+
return f"<h3>Sunucu Hatası (/): {str(e)}</h3>"
|
| 218 |
|
| 219 |
@app.post("/login", response_class=HTMLResponse)
|
| 220 |
async def login(request: Request, password: str = Form(...)):
|
| 221 |
+
try:
|
| 222 |
+
if password == MY_SECRET_KEY:
|
| 223 |
+
session_id = "token_active_" + MY_SECRET_KEY
|
| 224 |
+
active_sessions.add(session_id)
|
| 225 |
+
response = RedirectResponse(url="/", status_code=303)
|
| 226 |
+
response.set_cookie(key="session", value=session_id)
|
| 227 |
+
return response
|
| 228 |
+
return HTML_LOGIN.replace("%ERROR_BLOCK%", '<div class="error">Hatalı Secret Key! Erişim engellendi.</div>')
|
| 229 |
+
except Exception as e:
|
| 230 |
+
return HTML_LOGIN.replace("%ERROR_BLOCK%", f'<div class="error">Giriş Hatası: {str(e)}</div>')
|
| 231 |
|
| 232 |
+
@app.get("/server-status")
|
| 233 |
+
def server_status_endpoint():
|
| 234 |
return {"status": "HilmanAI Core Online with Web Search & Dashboard", "system": "7/24 Active"}
|
| 235 |
|
| 236 |
# --- ORTAK YAPAY ZEKA VE ARAMA ENTEGRASYONU ---
|
|
|
|
| 246 |
|
| 247 |
if any(kw in last_user_msg.lower() for kw in search_keywords):
|
| 248 |
search_results = web_search(last_user_msg)
|
| 249 |
+
search_context = f"\n\n[CANLI İNTERNET ARAMA SONUÇLARI]:\n{search_results}\nYukarıdaki güncel internet verilerini kullanarak Halil'e net, fiyatlı, site isimli ve kargo süreleriyle ilgili detaylı bir liste sun."
|
| 250 |
|
| 251 |
compressed_messages = messages_list[-4:] if len(messages_list) > 4 else messages_list
|
| 252 |
|
| 253 |
system_instruction = {
|
| 254 |
"role": "system",
|
| 255 |
"content": (
|
| 256 |
+
"Sen HilmanAI'sın. Kullanıcıya her zaman 'Halil' diye hitap edeceksin. "
|
| 257 |
"İşletim sistemi WINDOWS'tur. "
|
| 258 |
+
"ÖNEMLİ KURAL 1: Halil internetten ürün, fiyat veya araştırma istediğinde, sana sağlanan [CANLI İNTERNET ARAMA SONUÇLARI]'nı incele. "
|
| 259 |
"ÖNEMLİ KURAL 2: Ürün arama isteklerinde şu formatta detaylı bir liste sun:\n"
|
| 260 |
"- **Ürün Adı ve Markası**\n- **Site Adı** (Hangi e-ticaret sitesinde olduğu)\n- **Fiyat**\n- **Yorumlar / Güvenilirlik**\n- **Kargo / Gönderim Süresi**\n- **Ürün Linki**\n"
|
| 261 |
"ÖNEMLİ KURAL 3: Matematiksel hesaplamalarda veya bilgi isteklerinde ASLA komut çalıştırma. "
|
| 262 |
+
"ÖNEMLİ KURAL 4: Yalnızca Halil doğrudan bir uygulama/site açmanı veya sistem işlemi yapmanı isterse Windows CMD/PowerShell komut bloğu üret."
|
| 263 |
)
|
| 264 |
}
|
| 265 |
|
|
|
|
| 317 |
except Exception:
|
| 318 |
continue
|
| 319 |
|
| 320 |
+
return "Tüm yapay zeka servisleri şu an meşgul veya internet araması yapılamadı, Halil."
|
| 321 |
|
| 322 |
# --- API ENDPOINT ---
|
| 323 |
@app.post("/v1/chat/completions")
|