You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
2.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/**
* 生成 lab-eval-prompt.txt便于在 Cursor 聊天中 @student-lab-ai-evaluation 后整段粘贴,
* 将助手返回的纯 JSON 手动保存为 lab-eval-ai.json无需 CURSOR_API_KEY
*/
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
import { createRequire } from 'module';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
const ROOT = path.join(__dirname, '..');
const require = createRequire(import.meta.url);
const { analyzeChatLogsFile } = require(path.join(ROOT, 'lib/analyzeChatLogs.js'));
const { resolveChatLogPath } = require(path.join(ROOT, 'lib/resolveChatLogPath.cjs'));
function readText(p) {
return fs.readFileSync(p, 'utf8');
}
function main() {
const chatPath = resolveChatLogPath(ROOT);
if (!fs.existsSync(chatPath)) {
console.error(`缺少聊天日志文件: ${chatPath}(可设置环境变量 CHAT_LOG_PATH`);
process.exit(1);
}
const taskMd = readText(path.join(ROOT, 'config/lab-task-description.md'));
const dims = readText(path.join(ROOT, 'config/evaluation-dimensions.yaml'));
const skillPath = path.join(ROOT, '.cursor/skills/student-lab-ai-evaluation/SKILL.md');
const skill = fs.existsSync(skillPath) ? readText(skillPath) : '';
const heuristic = analyzeChatLogsFile(chatPath);
const heuristicStr = JSON.stringify(heuristic, null, 2);
const body = `【说明】在 Cursor 中引用技能 @student-lab-ai-evaluation将下文从「--- 开始」到结尾整段复制给助手;要求助手只输出一个 JSON 对象(无 Markdown 围栏),保存为项目根目录 lab-eval-ai.json。
--- 开始 ---
你是课程助教。请严格遵守下列 SKILL 中的输出约束。
--- SKILL 开始 ---
${skill}
--- SKILL 结束 ---
--- 实训任务描述 ---
${taskMd}
--- 评价维度配置YAML---
${dims}
--- 启发式解析 JSON来自 chat_logs---
${heuristicStr}
--- 结束 ---
`;
const outPath = path.join(ROOT, 'lab-eval-prompt.txt');
fs.writeFileSync(outPath, body, 'utf8');
console.log('已生成', outPath);
console.log('下一步:在 Cursor 中 @student-lab-ai-evaluation粘贴该文件全文将模型返回的 JSON 存为 lab-eval-ai.json 后执行 npm start 刷新报告。');
}
main();