export default defineEventHandler(async (event) => { try { const body = await readBody(event); const { action, text, language = "fa" } = body; // بررسی پارامترهای ورودی if (!action || !text) { throw createError({ statusCode: 400, statusMessage: "پارامترهای action و text الزامی هستند", }); } // API keyها از .env const config = useRuntimeConfig(); const OPENAI_API_KEY = config.OPENAI_API_KEY; const GEMINI_API_KEY = config.GEMINI_API_KEY; // انتخاب سرویس AI const useOpenAI = !!OPENAI_API_KEY; const useGemini = !!GEMINI_API_KEY && !useOpenAI; let aiResult = ""; if (useOpenAI) { // OpenAI API const response = await fetch( "https://api.openai.com/v1/chat/completions", { method: "POST", headers: { Authorization: `Bearer ${OPENAI_API_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ model: "gpt-3.5-turbo", messages: [ { role: "system", content: "تو یک دستیار فارسی‌زبان هستی که به کاربران در نوشتن کمک می‌کنی.", }, { role: "user", content: getPrompt(action, text, language), }, ], temperature: 0.7, max_tokens: 500, }), } ); if (!response.ok) { throw new Error(`OpenAI API error: ${response.status}`); } const data = await response.json(); aiResult = data.choices[0]?.message?.content || "خطا در پردازش"; } else if (useGemini) { // Google Gemini API const response = await fetch( `https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=${GEMINI_API_KEY}`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ contents: [ { parts: [ { text: getPrompt(action, text, language), }, ], }, ], }), } ); if (!response.ok) { throw new Error(`Gemini API error: ${response.status}`); } const data = await response.json(); aiResult = data.candidates?.[0]?.content?.parts?.[0]?.text || "خطا در پردازش"; } else { // پاسخ تستی (اگر API key ندارید) aiResult = getMockResponse(action, text, language); } return { success: true, action, result: aiResult, timestamp: new Date().toISOString(), }; } catch (error) { console.error("AI API Error:", error); return { success: false, error: error.message, mockResponse: getMockResponse(action, text, language), }; } }); // تولید prompt بر اساس action function getPrompt(action, text, language) { const prompts = { summarize: `لطفاً این متن را به فارسی خلاصه کن و نکات اصلی آن را استخراج کن. متن:\n\n${text}\n\nخلاصه:`, improve: `این متن را از نظر دستوری، نگارشی و سبک نوشتار بهبود بده و آن را حرفه‌ای‌تر کن. متن:\n\n${text}\n\nمتن بهبود یافته:`, translate: `این متن فارسی را به انگلیسی ترجمه کن. متن:\n\n${text}\n\nترجمه:`, explain: `این متن را به زبان ساده توضیح بده و مفاهیم آن را شفاف سازی کن. متن:\n\n${text}\n\nتوضیح:`, continue: `بر اساس این متن، آن را ادامه بده و محتوای مرتبط اضافه کن. متن:\n\n${text}\n\nادامه متن:`, }; return prompts[action] || `در مورد این متن نظر بده:\n\n${text}\n\nنظر:`; } // پاسخ‌های تستی function getMockResponse(action, text, language) { const responses = { summarize: `📝 خلاصه متن: این یک خلاصه آزمایشی از متن شماست که نکات کلیدی را پوشش می‌دهد. متن اصلی حدود ${text.length} کاراکتر داشت و شامل موضوعاتی مانند نمونه‌گیری و تست است.`, improve: `✨ متن بهبود یافته: این نسخه اصلاح شده متن شماست با رعایت اصول نگارشی و ساختار بهتر. جملات روان‌تر شده و از واژگان مناسب‌تری استفاده شده است.`, translate: `🌍 Translation: This is a sample translation of your Persian text into English. The original text was about testing and demonstration purposes.`, explain: `💡 توضیح: این مفهوم به زبان ساده توضیح داده می‌شود تا درک آن آسان‌تر شود. منظور از این متن نمایش قابلیت‌های سیستم هوش مصنوعی است.`, continue: `↪️ ادامه متن: این بخش ادامه منطقی متن شماست که ایده‌های مطرح شده را توسعه می‌دهد. با توجه به محتوای قبلی، می‌توان به موضوعات مرتبط دیگری نیز پرداخت.`, }; return ( responses[action] || "پردازش AI انجام شد. برای استفاده از قابلیت‌های واقعی، لطفاً API key مناسب را تنظیم کنید." ); }