import os
import gradio as gr
from fastapi import FastAPI, Request, File, UploadFile
from fastapi.responses import StreamingResponse, HTMLResponse
from openai import OpenAI
app = FastAPI()
# واجهة المستخدم (HTML/React) - متجاوبة تماماً للهواتف
HTML_UI = """
Neural Vault
"""
@app.get("/")
async def ui():
return HTMLResponse(HTML_UI)
@app.post("/v1/chat/completions")
async def chat_api(request: Request):
body = await request.json()
# استخدام توكن النظام كاحتياطي أو توكن المستخدم إذا توفر
api_key = os.getenv("HF_TOKEN")
client = OpenAI(
base_url="https://router.huggingface.co/hf-inference/v1",
api_key=api_key
)
def stream_gen():
resp = client.chat.completions.create(
model="huihui-ai/Mistral-Small-24B-Instruct-2501-abliterated",
messages=body.get("messages", []),
stream=True
)
for chunk in resp:
if chunk.choices[0].delta.content:
yield f"data: {chunk.choices[0].delta.content}\n\n"
yield "data: [DONE]\n\n"
return StreamingResponse(stream_gen(), media_type="text/event-stream")
# إعداد واجهة Gradio كمدخل
with gr.Blocks() as auth_interface:
gr.Markdown("# مرحبا بك في الدهليز")
# زر الدخول المذكور في ملفك
gr.LoginButton("الدخول عبر Hugging Face")
app = gr.mount_gradio_app(app, auth_interface, path="/auth")
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=7860)