# رفع خطای 500 در AI Endpoint

## مشکل
```
Failed to load resource: the server responded with a status of 500
API Error: Error: Error 500
```

## علت احتمالی
1. ❌ پکیج `openai` در backend نصب نشده
2. ❌ خطا در ارتباط با Liara AI
3. ❌ خطا در parse کردن JSON response
4. ❌ ساختار پاسخ AI معتبر نیست
5. ❌ Model name اشتباه است

## راه حل

### 1. بهبود Error Handling ✅
- ✅ بررسی نصب بودن پکیج `openai`
- ✅ Catch کردن خطاهای OpenAI API
- ✅ بررسی و parse کردن JSON response
- ✅ Validate کردن ساختار پاسخ
- ✅ لاگ‌های دقیق‌تر

### 2. به‌روزرسانی Default Model ✅
- ✅ تغییر از `google/gemini-2.0-flash-001` به `openai/gpt-4o-mini`
- ✅ به‌روزرسانی در:
  - `backend/routes.js` (getDefaultSettings)
  - `backend/routes.js` (installer)
  - `services/dataService.ts` (initialSettings)

### 3. بهبود Logging ✅
- ✅ لاگ کردن خطاهای دقیق
- ✅ لاگ کردن model و baseURL
- ✅ لاگ کردن محتوای پاسخ در صورت خطا

## تغییرات انجام شده

### `backend/routes.js`

1. **بررسی نصب بودن پکیج:**
```javascript
let OpenAI;
try {
  OpenAI = require('openai');
} catch (requireError) {
  logger.error('OpenAI package not found', { error: requireError.message });
  return res.status(500).json({ 
    message: 'پکیج OpenAI نصب نشده است. لطفاً در backend اجرا کنید: npm install openai' 
  });
}
```

2. **بهبود Error Handling:**
```javascript
try {
  completion = await openai.chat.completions.create({...});
} catch (openaiError) {
  logger.error('OpenAI API call error', { 
    error: openaiError.message, 
    stack: openaiError.stack,
    model: modelName,
    baseURL: baseURL
  });
  return res.status(500).json({ 
    message: `خطا در ارتباط با Liara AI: ${openaiError.message || 'خطای نامشخص'}` 
  });
}
```

3. **Validate کردن JSON:**
```javascript
try {
  parsed = JSON.parse(content);
} catch (parseError) {
  logger.error('JSON parse error', { 
    error: parseError.message, 
    content: content.substring(0, 200) 
  });
  return res.status(500).json({ 
    message: 'خطا در پردازش پاسخ AI. پاسخ معتبر JSON نیست.' 
  });
}
```

4. **Validate کردن ساختار:**
```javascript
if (!parsed.techStack || !parsed.roadmap || !parsed.summary) {
  logger.warn('Invalid AI response structure', { parsed });
  return res.status(500).json({ 
    message: 'ساختار پاسخ AI معتبر نیست. لطفاً دوباره تلاش کنید.' 
  });
}
```

5. **به‌روزرسانی Default Model:**
```javascript
const modelName = settings?.aiConfig?.modelName || 'openai/gpt-4o-mini';
```

## اقدامات لازم

### 1. نصب پکیج OpenAI در Backend ⚠️
```bash
cd backend
npm install openai
```

### 2. بررسی تنظیمات
- ✅ API Key در پنل ادمین وارد شده باشد
- ✅ Model Name: `openai/gpt-4o-mini` (یا در پنل ادمین تنظیم شود)
- ✅ مشاوره هوشمند فعال باشد

### 3. بررسی لاگ‌ها
بعد از تست، لاگ‌های backend را بررسی کنید تا خطای دقیق مشخص شود.

## نتیجه

✅ Error handling بهبود یافت
✅ Default model به GPT-4o-mini تغییر کرد
✅ لاگ‌های دقیق‌تر اضافه شد
✅ Validate کردن پاسخ اضافه شد

## نکته مهم

**باید پکیج `openai` را در backend نصب کنید:**
```bash
cd backend
npm install openai
```

اگر هنوز خطا می‌دهد، لاگ‌های backend را بررسی کنید تا خطای دقیق مشخص شود.

