智教助手平台:完整初始化

- 前端:Vue3 + TS + Element Plus,24 个页面路由(课件/组题/教案/动画/思维导图/作文批改/命题/课堂/资源/社区等)
- 后端:FastAPI + SQLAlchemy + SQLite,17 个路由模块,AI 服务层含降级模板
- AI:glm-5.x 推理模型已禁用思维链,确保输出真实内容
- 修复:ai_service 两处请求体注入 enable_thinking/thinking disabled
- 测试账号:13900999999 / test1234
This commit is contained in:
Zhang Jing Xuan
2026-07-29 16:29:10 +08:00
commit 0841b1a103
193 changed files with 44995 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
const { chromium } = require('playwright-core');
const fs = require('fs');
(async () => {
const CHROME = String.raw`C:\Program Files\Google\Chrome\Application\chrome.exe`;
const src = fs.readFileSync('src/utils/animationTemplates.ts','utf8');
const start = src.indexOf('const probability');
const end = src.indexOf('// ===== 21', start);
const block = src.slice(start, end);
const m = block.match(/return SHELL\('概率模拟',\s*'',\s*`([\s\S]*?)`\s*\);\s*\}/);
if (!m) { console.log('no match'); process.exit(1); }
let script = m[1];
script = script.split('${typ}').join('coin');
script = script.split('${per}').join('20');
const html = '<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><style>'+
'*{box-sizing:border-box;margin:0;padding:0;}'+
'body{font-family:sans-serif;padding:24px;}'+
'.tpl-stage{background:#fff;border-radius:16px;padding:20px;max-width:880px;margin:0 auto;}'+
'.tpl-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:16px;padding:14px;background:#f8faff;border-radius:12px;}'+
'.ctrl{display:flex;flex-direction:column;gap:6px;}'+
'.tpl-actions{display:flex;gap:10px;justify-content:center;margin-top:14px;}'+
'.tpl-btn{padding:8px 18px;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;}'+
'.tpl-btn.primary{background:#4f46e5;color:#fff;}'+
'.tpl-btn.ghost{background:#fff;color:#4b5563;border:1px solid #e5e7eb;}'+
'canvas{display:block;width:100%;}'+
'</style></head><body><div class="tpl-stage" id="stage"></div><script>'+script+'</script></body></html>';
fs.writeFileSync('../audit_shots/_prob_isolated.html', html);
const browser = await chromium.launch({ executablePath: CHROME, headless: true });
const page = await browser.newPage();
page.on('pageerror', e => console.log('PAGEERROR:', e.message));
page.on('console', msg => { if(msg.type()==='error') console.log('CONSOLE:', msg.text()); });
await page.goto('file:///D:/AI/jiaoyu/audit_shots/_prob_isolated.html');
await page.waitForTimeout(1500);
await page.screenshot({ path: '../audit_shots/_prob_isolated.png' });
console.log('isolated test done');
await browser.close();
})();