3.3 KiB
3.3 KiB
AI 評分結果上傳腳本說明
概述
這個腳本用於解析 AI 評分結果的 JSON 資料,並將結果上傳到資料庫的三個相關表中:
evaluations
- 評審記錄主表evaluation_scores
- 評分結果明細表evaluation_feedback
- AI 評語和建議表
資料庫表結構
1. evaluations 表
儲存評審的基本資訊:
id
- 主鍵project_id
- 專案 IDoverall_score
- 總分 (78.5)max_possible_score
- 滿分 (100)grade
- 等級 (A-)analysis_duration
- 分析耗時ai_model_version
- AI 模型版本status
- 狀態 (completed)error_message
- 錯誤訊息
2. evaluation_scores 表
儲存各項評分標準的詳細分數:
id
- 主鍵evaluation_id
- 關聯到 evaluations 表criteria_item_id
- 關聯到 criteria_items 表score
- 得分max_score
- 滿分weight
- 權重weighted_score
- 加權分數percentage
- 百分比
3. evaluation_feedback 表
儲存 AI 的評語和建議:
id
- 主鍵evaluation_id
- 關聯到 evaluations 表criteria_item_id
- 關聯到 criteria_items 表 (可為空)feedback_type
- 反饋類型 (overall/criteria/strength/improvement)content
- 反饋內容sort_order
- 排序
使用方式
1. 環境設定
確保已設定資料庫連線環境變數:
export DB_HOST=localhost
export DB_USER=root
export DB_PASSWORD=your_password
export DB_NAME=ai_scoring_app
2. 執行腳本
cd scripts
node parse-ai-evaluation.js
3. 檢查結果
腳本會輸出詳細的執行過程,包括:
- 資料庫連接狀態
- 各表的記錄創建數量
- 最終的評分結果摘要
重要注意事項
1. criteria_item_id 對應
腳本中的 criteriaNameToId
物件需要根據實際資料庫中的 criteria_items
表來調整:
const criteriaNameToId = {
"應用實務性": 52, // 需要確認實際 ID
"創新性": 53,
"成效與效益": 54,
"擴散與可複用性": 55,
"簡報與表達": 56
};
2. project_id 設定
腳本中假設專案 ID 為 1,實際使用時需要根據實際情況調整:
const projectId = 1; // 需要根據實際專案 ID 調整
3. 資料驗證
執行前請確認:
- 資料庫連線正常
criteria_items
表中有對應的評分項目projects
表中有對應的專案記錄
資料解析說明
AI JSON 結構
腳本解析的 AI JSON 包含以下主要部分:
- 基本資訊:專案標題、總分、等級等
- 評分標準:各項標準的得分和反饋
- 詳細分析:整體分析和關鍵發現
- 改進建議:保持優勢、關鍵改進、行動計劃
資料映射
- 每個評分標準會創建一條
evaluation_scores
記錄 - 每個評分標準的反饋會創建多條
evaluation_feedback
記錄 - 整體分析會創建
feedback_type
為 'overall' 的反饋記錄
錯誤處理
腳本包含完整的錯誤處理機制:
- 資料庫連線錯誤
- SQL 執行錯誤
- 資料驗證錯誤
所有錯誤都會在控制台輸出詳細資訊,並確保資料庫連線正確關閉。
擴展功能
如需處理其他 AI 評分結果,可以:
- 修改
aiEvaluationResult
物件 - 調整
criteriaNameToId
對應關係 - 更新
projectId
設定 - 重新執行腳本