新增 AI 結果與資料庫整合

This commit is contained in:
2025-09-23 20:36:53 +08:00
parent ec7d101e96
commit 46db696122
30 changed files with 2352 additions and 54 deletions

118
scripts/test-integration.js Normal file
View File

@@ -0,0 +1,118 @@
/**
* 測試 AI 評分整合功能
* 這個腳本會測試從上傳文件到資料庫存儲的完整流程
*/
const fs = require('fs');
const path = require('path');
// 模擬測試資料
const testData = {
projectTitle: "測試專案 - AI 評分整合",
projectDescription: "這是一個測試專案,用於驗證 AI 評分結果是否能正確上傳到資料庫",
file: {
name: "test-presentation.pptx",
size: 1024000, // 1MB
type: "application/vnd.openxmlformats-officedocument.presentationml.presentation"
}
};
console.log('🧪 開始測試 AI 評分整合功能...\n');
console.log('📋 測試資料:');
console.log(` 專案標題: ${testData.projectTitle}`);
console.log(` 專案描述: ${testData.projectDescription}`);
console.log(` 文件名稱: ${testData.file.name}`);
console.log(` 文件大小: ${testData.file.size} bytes`);
console.log(` 文件類型: ${testData.file.type}\n`);
console.log('🔄 預期的處理流程:');
console.log('1. 用戶上傳 PPT 文件');
console.log('2. 填寫專案標題和描述');
console.log('3. 點擊「開始 AI 評審」按鈕');
console.log('4. 系統創建專案記錄 (projects 表)');
console.log('5. 系統創建文件記錄 (project_files 表)');
console.log('6. AI 分析 PPT 內容並產生評分結果');
console.log('7. 系統創建評審記錄 (evaluations 表)');
console.log('8. 系統創建評分明細 (evaluation_scores 表)');
console.log('9. 系統創建評語記錄 (evaluation_feedback 表)');
console.log('10. 更新專案狀態為完成');
console.log('11. 返回評分結果到前端顯示\n');
console.log('📊 預期的資料庫記錄:');
console.log(' projects 表:');
console.log(' - id: [自動生成]');
console.log(' - user_id: 1');
console.log(' - template_id: [評分標準模板 ID]');
console.log(' - title: "測試專案 - AI 評分整合"');
console.log(' - description: "這是一個測試專案..."');
console.log(' - status: "completed"');
console.log(' - analysis_started_at: [當前時間]');
console.log(' - analysis_completed_at: [分析完成時間]\n');
console.log(' project_files 表:');
console.log(' - id: [自動生成]');
console.log(' - project_id: [專案 ID]');
console.log(' - original_name: "test-presentation.pptx"');
console.log(' - file_name: "test-presentation.pptx"');
console.log(' - file_path: "/uploads/[project_id]/test-presentation.pptx"');
console.log(' - file_size: 1024000');
console.log(' - file_type: "pptx"');
console.log(' - mime_type: "application/vnd.openxmlformats-officedocument.presentationml.presentation"');
console.log(' - upload_status: "completed"');
console.log(' - upload_progress: 100\n');
console.log(' evaluations 表:');
console.log(' - id: [自動生成]');
console.log(' - project_id: [專案 ID]');
console.log(' - overall_score: [AI 評分總分]');
console.log(' - max_possible_score: 100');
console.log(' - grade: [AI 評定等級]');
console.log(' - analysis_duration: [分析耗時秒數]');
console.log(' - ai_model_version: "gemini-1.5-flash"');
console.log(' - status: "completed"');
console.log(' - error_message: null\n');
console.log(' evaluation_scores 表:');
console.log(' - id: [自動生成]');
console.log(' - evaluation_id: [評審記錄 ID]');
console.log(' - criteria_item_id: [評分標準項目 ID]');
console.log(' - score: [該項得分]');
console.log(' - max_score: [該項滿分]');
console.log(' - weight: [該項權重]');
console.log(' - weighted_score: [加權分數]');
console.log(' - percentage: [得分百分比]\n');
console.log(' evaluation_feedback 表:');
console.log(' - id: [自動生成]');
console.log(' - evaluation_id: [評審記錄 ID]');
console.log(' - criteria_item_id: [評分標準項目 ID 或 null]');
console.log(' - feedback_type: "overall" | "criteria" | "strength" | "improvement"');
console.log(' - content: [反饋內容]');
console.log(' - sort_order: [排序順序]\n');
console.log('✅ 測試準備完成!');
console.log('\n📝 如何執行測試:');
console.log('1. 確保資料庫連線正常');
console.log('2. 確保有評分標準模板');
console.log('3. 啟動應用程式: npm run dev');
console.log('4. 訪問上傳頁面: http://localhost:3000/upload');
console.log('5. 上傳一個 PPT 文件');
console.log('6. 填寫專案資訊');
console.log('7. 點擊「開始 AI 評審」按鈕');
console.log('8. 檢查控制台日誌和資料庫記錄');
console.log('9. 查看結果頁面顯示\n');
console.log('🔍 檢查要點:');
console.log('- 控制台是否顯示完整的處理流程日誌');
console.log('- 資料庫是否正確創建所有相關記錄');
console.log('- 前端是否正確顯示評分結果');
console.log('- 是否有任何錯誤訊息\n');
console.log('🎯 成功標準:');
console.log('- 所有資料庫表都有對應的記錄');
console.log('- 評分結果正確顯示在前端');
console.log('- 沒有錯誤或異常');
console.log('- 處理時間在合理範圍內\n');
console.log('🚀 開始測試吧!');