AWorld.Ling-1T / main.py
FECUOY's picture
Update main.py
8dd2e8d verified
import os
import asyncio
from fastapi import FastAPI, Request
from fastapi.middleware.cors import CORSMiddleware
import gradio as gr
from openai import OpenAI
# 1. إعداد الخادم والربط مع الواجهة الخارجية (Lovable)
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # يسمح لـ Lovable بالوصول للـ API
allow_methods=["*"],
allow_headers=["*"],
)
# 2. إعداد محرك Ling-1T
# تأكد من إضافة SILICONFLOW_API_KEY في Settings -> Secrets في Hugging Face
client = OpenAI(
api_key=os.environ.get("SILICONFLOW_API_KEY"),
base_url="https://api.siliconflow.cn/v1"
)
@app.post("/chat")
async def chat(request: Request):
try:
data = await request.json()
user_message = data.get("message", "")
# محاكاة لعملية التفكير والخطوات (يمكن تطويرها لربطها بـ AWorld حقيقياً)
# هذا الهيكل هو ما سيحرك مكونات Lovable
# طلب الرد من Ling-1T
completion = client.chat.completions.create(
model="inclusionAI/Ling-1T",
messages=[
{"role": "system", "content": "أنت وكيل ذكاء اصطناعي متطور (Manus Clone). ردودك يجب أن تكون منظمة وتساعد في بناء التطبيقات."},
{"role": "user", "content": user_message}
]
)
ai_response = completion.choices[0].message.content
# بناء الرد المتعدد المكونات
# ملاحظة: Lovable سيبحث عن هذه الحقول لتحديث الواجهة
full_payload = {
"reply": ai_response,
"agent_status": "completed",
"steps": [
{"id": 1, "text": "تحليل الطلب في دهليز يوسف", "status": "success"},
{"id": 2, "text": "استدعاء عقل Ling-1T", "status": "success"},
{"id": 3, "text": "توليد الاستجابة النهائية", "status": "success"}
],
"code": "/* الكود المولد يظهر هنا إذا وجد */",
"terminal_output": "Process finished with exit code 0"
}
return full_payload
except Exception as e:
return {"reply": f"حدث جليتش في النظام: {str(e)}", "agent_status": "error"}
# 3. واجهة Gradio (تستخدم هنا كغطاء للمنفذ وللإدارة البسيطة)
def admin_panel(text):
return f"الخادم يعمل... آخر رسالة استقبلها: {text}"
demo = gr.Interface(
fn=admin_panel,
inputs="text",
outputs="text",
title="AWorld Backend (Ling-1T)",
description="هذه المساحة تعمل الآن كـ API لواجهة Lovable"
)
# ربط FastAPI مع Gradio ليعملا على نفس المنفذ 7860
app = gr.mount_gradio_app(app, demo, path="/")
if __name__ == "__main__":
import uvicorn
# التزام بالمنفذ 7860 لبيئة Hugging Face
uvicorn.run(app, host="0.0.0.0", port=7860)