距离2027河南高考还有
---
:
--
:
--
:
--
每一秒都在离梦想更近一步 💪

🎯 六科全覆盖 · 高效备考

河南省2026/2027届 · 新高考"3+1+2"模式 · 物理+化学+地理组合

🦴

骨架层

知识体系搭建,建立学科全景图

💪

肌肉层

核心考点强化,公式模板速记

🧠

神经层

刷题实战训练,错题深度榨干

👕

皮肤层

答题规范包装,考试策略优化

🎯 榨干学堂 · 不请家教 · 不买学习机 · 学会高效自学

周末2天,掌握自主学习力——比刷题更重要的底层能力

🔬
四层榨干学习法
骨架→肉质→精华→残渣
每个知识点拆到不能再拆
🗺️
教材AI深度渗透
574个知识点×AI五层拆解
精确定位每一章每一节
🧠
记忆进化引擎
遗忘曲线智能追踪
自动提醒复习永不遗忘
🎓
紧扣河南高考
新高考3+1+2专属定制
真题频次·考点热力图
📱 手机打开就能用 💰 性价比极高 🚫 不卷辅导班不卷硬件

五大功能

一套方法论,学什么都够用

🔬
拆 · 知识点
四层榨干
拆到不能再拆
📷
拍 · 错题诊断
不只给答案
告诉你为什么错
🧠
记 · 进化引擎
遗忘曲线追踪
学过的永远不忘
🎯
练 · 自学计划
周末2天
学会高效自学
📊
考 · 实战地图
紧扣中高考
真题热力图

选择你的战场

同一套方法论,不同的内容库

🎓
中考冲刺
河南中考 · 考纲匹配
🔜 即将开放
📚
同步学堂
高一高二 · 跟教材进度
🔜 即将开放
🔥
高考作战
河南高考 · 3+1+2定制
✅ 已开放

🔥 高考作战 · 六科作战室

总分750分 = 语数外各150分 + 物理100分 + 化学100分 + 地理100分

📖
语文
新高考I卷 · 150分原始分
进入作战室 →
📐
数学
新高考I卷 · 150分原始分
进入作战室 →
🌍
英语
新高考I卷 · 150分原始分
进入作战室 →
⚛️
物理
河南自命题 · 100分原始分
进入作战室 →
🧪
化学
河南自命题 · 100分等级赋分
进入作战室 →
🌏
地理
河南自命题 · 100分等级赋分
进入作战室 →

🤖 科大讯飞AI学习机 · 作战地图结合方案

AI精准学 × 五层榨干法 = AI增强型作战地图

📊 AI精准学诊断

5-10题定位全部薄弱点

🎯 四方阵适配

从基础薄弱到冲刺顶尖

📅 每日节奏规划

AI与人工完美分工

📘

自主学习能力培养

掌握学习方法,提升自主学习能力——比刷题更重要的底层能力

进入学习中心 →

⚔️ 刷题总纲:从"做对"到"秒杀"

科学分级 × 三轮节奏 × 错题榨干 = 最高效提分路径

S级·真题(20%)

近5年高考真题,精做细研,掌握命题规律

A级·名校模拟(30%)

衡水/雅礼/长郡等名校卷,高质量限时训练

B级·省市模拟(30%)

河南八市联考/天一联考,贴合本地命题风格

C级·教辅题(20%)

五三/必刷题等经典教辅,查漏补缺用

🤖 语文AI助教

你好安泽人!👋 我是你的AI助教,可以随时问我任何高考相关的问题。点下面的快捷按钮或者直接输入问题吧!
预览
已选择图片,点击📤发送到AI识别
'; var blob=new Blob(['\ufeff'+html],{type:'application/msword'}); var url=URL.createObjectURL(blob); var a=document.createElement('a'); a.href=url; a.download=subjName+'_知识点目录_'+dateStr+'.doc'; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(url); } /* ===== AI聊天窗口工具栏功能 ===== */ function toggleAiFullscreen(){ var panel=document.getElementById('ai-panel'); if(!panel) return; panel.classList.toggle('ai-fullscreen'); var btn=document.getElementById('ai-fs-btn'); if(panel.classList.contains('ai-fullscreen')){ btn.innerHTML='✖ 退出全屏'; btn.classList.add('active'); }else{ btn.innerHTML='⛶ 全屏'; btn.classList.remove('active'); } var msgs=document.getElementById('ai-messages'); if(msgs) msgs.scrollTop=msgs.scrollHeight; } function toggleAiCompact(){ var panel=document.getElementById('ai-panel'); if(!panel) return; panel.classList.toggle('ai-compact'); var btn=document.getElementById('ai-cmp-btn'); if(panel.classList.contains('ai-compact')){ btn.innerHTML='⊞ 宽松'; btn.classList.add('active'); }else{ btn.innerHTML='⊞ 紧凑'; btn.classList.remove('active'); } } function downloadAiChat(){ var msgs=document.getElementById('ai-messages'); if(!msgs){alert('没有聊天内容');return;} var msgEls=msgs.querySelectorAll('.ai-msg'); if(!msgEls.length){alert('没有聊天内容');return;} var subj=document.getElementById('ai-subject-select'); var subjName=subj?subj.options[subj.selectedIndex].text.replace(/[^\u4e00-\u9fa5]/g,''):'AI助教'; var now=new Date(); var ds=now.getFullYear()+'-'+(now.getMonth()+1)+'-'+now.getDate(); var ts=now.getHours()+':'+String(now.getMinutes()).padStart(2,'0'); var lines=[]; lines.push(subjName+' AI助教对话记录'); lines.push('下载时间:'+ds+' '+ts); lines.push('来源:anzeren.aimobai.cn'); lines.push(''); for(var i=0;i 10 * 1024 * 1024) { alert('图片不能超过10MB'); input.value = ''; return; } var reader = new FileReader(); reader.onload = function(e) { _aiPendingImage = e.target.result; document.getElementById('ai-preview-img').src = e.target.result; document.getElementById('ai-img-preview').style.display = 'block'; document.getElementById('ai-img-status').textContent = '已选择: ' + file.name + ' (' + (file.size/1024).toFixed(0) + 'KB)'; }; reader.readAsDataURL(file); input.value = ''; } function removeAiPreview() { _aiPendingImage = null; document.getElementById('ai-img-preview').style.display = 'none'; document.getElementById('ai-preview-img').src = ''; } async function sendAiImageForOcr() { if (!_aiPendingImage) return; var subj = (typeof getCurrentAiSubject === "function" ? getCurrentAiSubject() : (currentAiSubject || "general")); var msgArea = document.getElementById('ai-messages'); // 显示用户图片 var userDiv = document.createElement('div'); userDiv.className = 'ai-msg user'; userDiv.innerHTML = '📷 正在识别题目...'; msgArea.appendChild(userDiv); msgArea.scrollTop = msgArea.scrollHeight; // 显示loading var loadingDiv = document.createElement('div'); loadingDiv.className = 'ai-msg assistant'; loadingDiv.innerHTML = '🔍 AI正在识别题目内容...'; msgArea.appendChild(loadingDiv); msgArea.scrollTop = msgArea.scrollHeight; var imageData = _aiPendingImage; removeAiPreview(); try { // 1. 上传图片 var formData = new FormData(); var blob = dataURLtoBlob(imageData); formData.append('file', blob, 'question.jpg'); var uploadResp = await fetch('/api/upload', {method: 'POST', body: formData}); var uploadData = await uploadResp.json(); if (!uploadData.ok) throw new Error('上传失败: ' + uploadData.error); // 2. OCR识别 loadingDiv.innerHTML = '📝 正在分析题目结构...'; var ocrResp = await fetch('/api/ocr', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({image_url: uploadData.url, subject: subj}) }); var ocrData = await ocrResp.json(); if (!ocrData.ok) throw new Error('识别失败: ' + ocrData.error); // 3. 渲染识别结果 var result = ocrData.data; var html = '
✅ 识别完成
'; if (result.paper_info && result.paper_info.title) { html += '
📋 ' + result.paper_info.title + '
'; } var questions = result.questions || []; html += '
共识别 ' + questions.length + ' 道题目
'; for (var i = 0; i < questions.length; i++) { var q = questions[i]; html += '
'; html += '
第' + (i+1) + '题 · ' + (q.type||'未知') + ' · ' + (q.difficulty||'') + '
'; html += '
' + escapeHtml(q.raw_text || '无法识别') + '
'; if (q.knowledge_points && q.knowledge_points.length > 0) { html += '
📌 ' + q.knowledge_points.join('、') + '
'; } if (q.options && q.options.length > 0) { html += '
' + q.options.join('  ') + '
'; } if (q.handwritten_answer) { html += '
✏️ 手写答案: ' + escapeHtml(q.handwritten_answer) + '
'; } html += '
'; html += ''; html += ''; html += '
'; } loadingDiv.innerHTML = html; msgArea.scrollTop = msgArea.scrollHeight; } catch(e) { loadingDiv.innerHTML = '❌ ' + e.message + ''; } } // ===== V12: 文件上传解析功能 ===== var _aiPendingDoc = null; var _aiPendingDocName = ''; window._lastDocText = ''; function handleAiDocUpload(input) { var file = input.files[0]; if (!file) return; var ext = file.name.split('.').pop().toLowerCase(); if (['pdf','docx','doc','txt'].indexOf(ext) === -1) { alert('不支持的格式: ' + ext + ',仅支持PDF/Word/TXT'); input.value = ''; return; } if (file.size > 20 * 1024 * 1024) { alert('文件过大,最大支持20MB'); input.value = ''; return; } _aiPendingDoc = file; _aiPendingDocName = file.name; var preview = document.getElementById('ai-doc-preview'); var icon = ext === 'pdf' ? '📕' : (ext === 'txt' ? '📝' : '📘'); var sizeStr = (file.size/1024).toFixed(1) + ' KB'; var h = '
'; h += '' + icon + ''; h += '
' + file.name + '
'; h += '
' + sizeStr + ' · ' + ext.toUpperCase() + '
'; h += '
'; h += '
'; h += ''; h += ''; h += ''; h += '
'; preview.innerHTML = h; preview.style.display = 'block'; input.value = ''; } function removeDocPreview() { _aiPendingDoc = null; _aiPendingDocName = ''; var preview = document.getElementById('ai-doc-preview'); if (preview) { preview.innerHTML = ''; preview.style.display = 'none'; } } async function sendDocToAi() { if (!_aiPendingDoc) { alert('请先选择文件'); return; } var fileName = _aiPendingDocName; var file = _aiPendingDoc; removeDocPreview(); var msgArea = document.getElementById('ai-messages'); var userDiv = document.createElement('div'); userDiv.className = 'ai-msg user'; userDiv.innerHTML = '📄 ' + fileName + ''; msgArea.appendChild(userDiv); msgArea.scrollTop = msgArea.scrollHeight; var loadingDiv = document.createElement('div'); loadingDiv.className = 'ai-msg assistant'; loadingDiv.innerHTML = '📖 正在解析文档...'; msgArea.appendChild(loadingDiv); msgArea.scrollTop = msgArea.scrollHeight; try { var formData = new FormData(); formData.append('file', file); var resp = await fetch('/api/parse_doc', { method: 'POST', body: formData }); var data = await resp.json(); if (!data.ok) throw new Error(data.error || '解析失败'); var text = data.text; window._lastDocText = text; var preview = text.length > 500 ? text.substring(0, 500) + '...' : text; var h = '
✅ 文档解析完成
'; h += '
📄 ' + fileName + ' · ' + data.format.toUpperCase() + ' · ' + data.char_count + '字
'; h += '
' + escapeHtml(preview) + '
'; h += '
'; h += ''; h += ''; h += ''; h += '
'; loadingDiv.innerHTML = h; msgArea.scrollTop = msgArea.scrollHeight; } catch(e) { loadingDiv.innerHTML = '❌ ' + e.message + ''; } } function docAction(action) { if (!_aiPendingDoc) { alert('请先选择文件'); return; } var fileName = _aiPendingDocName; var file = _aiPendingDoc; removeDocPreview(); var msgArea = document.getElementById('ai-messages'); var actionNames = {summarize:'总结摘要',extract:'提取重点',quiz:'生成测试题',analyze:'深度分析'}; var userDiv = document.createElement('div'); userDiv.className = 'ai-msg user'; userDiv.innerHTML = '📄 ' + fileName + ' · ' + (actionNames[action]||'分析') + ''; msgArea.appendChild(userDiv); msgArea.scrollTop = msgArea.scrollHeight; var loadingDiv = document.createElement('div'); loadingDiv.className = 'ai-msg assistant'; loadingDiv.innerHTML = '📖 正在解析文档...'; msgArea.appendChild(loadingDiv); msgArea.scrollTop = msgArea.scrollHeight; var formData = new FormData(); formData.append('file', file); fetch('/api/parse_doc', { method: 'POST', body: formData }) .then(function(r){ return r.json(); }) .then(function(data){ if (!data.ok) throw new Error(data.error || '解析失败'); window._lastDocText = data.text; var prompts = { summarize: '请对以下文档内容进行结构化总结,提取核心观点和关键信息:\n\n' + data.text.substring(0, 8000), extract: '请从以下文档中提取重点内容、关键概念和重要数据,以列表形式呈现:\n\n' + data.text.substring(0, 8000), quiz: '请根据以下文档内容,生成10道测试题(含选择题和简答题),帮助检验理解程度:\n\n' + data.text.substring(0, 8000), analyze: '请对以下文档进行深度分析,梳理逻辑结构、核心论点和可能的知识盲点:\n\n' + data.text.substring(0, 8000) }; var input = document.getElementById('ai-input'); input.value = prompts[action] || '请分析以下文档内容:\n\n' + data.text.substring(0, 8000); sendAiMsg(); }) .catch(function(e){ loadingDiv.innerHTML = '❌ ' + e.message + ''; }); } function docFollowUp(action) { var text = window._lastDocText || ''; if (!text) { alert('文档内容已丢失,请重新上传'); return; } var prompts = { summarize: '请对刚才上传的文档进行结构化总结,提取核心观点和关键信息', extract: '请从刚才上传的文档中提取重点内容、关键概念和重要数据', quiz: '请根据刚才上传的文档内容,生成10道测试题', analyze: '请对刚才上传的文档进行深度分析,梳理逻辑结构和核心论点' }; var input = document.getElementById('ai-input'); input.value = prompts[action] || '请继续分析刚才的文档内容'; sendAiMsg(); } function dataURLtoBlob(dataurl) { var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1]; var bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while(n--) u8arr[n] = bstr.charCodeAt(n); return new Blob([u8arr], {type: mime}); } function escapeHtml(t) { var d = document.createElement('div'); d.textContent = t; return d.innerHTML; } function analyzeQuestion(idx, qid) { var input = document.getElementById('ai-input'); input.value = '请深度解析第' + (idx+1) + '道题(题目ID: ' + qid + '):分析考点、解题思路、易错点,并给出举一反三的变式题'; sendAiMsg(); } function similarQuestion(idx) { var input = document.getElementById('ai-input'); input.value = '针对第' + (idx+1) + '道题的知识点,给出3道类似的练习题,难度递进'; sendAiMsg(); }