// Worker رئيسي لاستقبال POST requests من Thunkable addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)) }) async function handleRequest(request) { try { if (request.method === "POST") { const { prompt } = await request.json() // استقبال النص من Thunkable // ===== الاتصال بالذكاء الاصطناعي (OpenAI) ===== // ❗ سيتم أخذ المفتاح من Secrets وليس وضعه مباشرة في الكود const OPENAI_API_KEY = OPENAI_API_KEY // Cloudflare Worker سيملأ هذا تلقائيًا const aiResponse = await fetch('https://api.openai.com/v1/chat/completions', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${OPENAI_API_KEY}` }, body: JSON.stringify({ model: "gpt-3.5-turbo", messages: [{ role: "user", content: prompt }] }) }) const data = await aiResponse.json() const reply = data.choices[0].message.content // الرد الذكي // إرسال الرد لتطبيق Thunkable return new Response(JSON.stringify({ reply }), { headers: { 'Content-Type': 'application/json' } }) } // إذا لم يكن POST return new Response("أرسل POST request مع {prompt}", { status: 400 }) } catch (err) { // معالجة الأخطاء return new Response(JSON.stringify({ error: err.message }), { headers: { 'Content-Type': 'application/json' }, status: 500 }) } }