64 lines
3.9 KiB
HTML
64 lines
3.9 KiB
HTML
{% extends "base.html" %}
|
||
{% block title %}数据管理{% endblock %}
|
||
{% block page_title %}数据管理{% endblock %}
|
||
{% block content %}
|
||
<div class="grid grid-2">
|
||
<div class="card">
|
||
<div class="card-title"><span class="bar"></span>数据库统计(SQLite)</div>
|
||
<div id="dbBox"><div class="loading">加载中…</div></div>
|
||
</div>
|
||
<div class="card">
|
||
<div class="card-title"><span class="bar"></span>向量库状态(Chroma + bge 1024维)</div>
|
||
<div id="vecBox"><div class="loading">加载中…</div></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card mt16">
|
||
<div class="card-title"><span class="bar" style="background:#8b5cf6"></span>📧 定时报告(工作日 9:00 盘前 / 交易日 15:30 盘后)</div>
|
||
<div class="flex wrap">
|
||
<button class="btn btn-primary" onclick="sendReport('premarket')">🌅 手动发送盘前分析</button>
|
||
<button class="btn btn-primary" onclick="sendReport('postmarket')">🌇 手动发送盘后总结</button>
|
||
</div>
|
||
<div class="mt16" style="color:var(--muted);font-size:12px;line-height:1.8">
|
||
自动触发已配置系统 cron:<code>0 9 * * 1-5</code> 盘前 · <code>30 15 * * 1-5</code> 盘后。<br>
|
||
每期发送两封形态:<b>简单版</b>(邮件正文速览)+ <b>详细版</b>(HTML 附件)。发送记录见下方表格。
|
||
</div>
|
||
<div class="mt16" style="border-top:1px solid var(--border);padding-top:10px">
|
||
<div class="between mt16">
|
||
<div class="card-title" style="font-size:14px;margin-bottom:0"><span class="bar" style="background:#f472b6"></span>🌙 静默期 —— 某些时段不发送报告邮件</div>
|
||
<label class="switch"><input type="checkbox" id="reportQuietEnabled"><span></span></label>
|
||
</div>
|
||
<div class="mt8 settings-form">
|
||
<div class="sf-row" style="align-items:flex-start"><label>静默时段</label><input class="input" id="reportQuietRanges" placeholder="如 09:30-10:00,11:30-13:00(多段逗号分隔,支持跨午夜)" style="width:100%"></div>
|
||
</div>
|
||
<div class="mt8"><button class="btn btn-primary" onclick="saveReportQuiet()">💾 保存报告静默期</button></div>
|
||
<div style="color:var(--muted);font-size:12px;line-height:1.8">开启后,落在静默时段内的定时/手动报告将<span style="color:var(--gold)">不生成、不发送</span>(发送记录标记为“静默”)。</div>
|
||
</div>
|
||
<div class="card-title mt16" style="font-size:14px"><span class="bar" style="background:#8b5cf6"></span>发送记录</div>
|
||
<div style="overflow:auto;max-height:300px">
|
||
<table>
|
||
<thead><tr><th>时间</th><th>类型</th><th>主题</th><th>状态</th><th>说明</th></tr></thead>
|
||
<tbody id="reportLogTb"><tr><td colspan="5" class="empty">暂无记录</td></tr></tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="card mt16">
|
||
<div class="card-title"><span class="bar" style="background:var(--gold)"></span>系统维护</div>
|
||
<div class="flex wrap">
|
||
<button class="btn btn-primary" onclick="reseed()">♻️ 一键重灌数据(含向量重建)</button>
|
||
<button class="btn" onclick="rebuildBt()">📈 重建量化回测</button>
|
||
<button class="btn" onclick="health()">🔌 依赖连通性检查</button>
|
||
<button class="btn" onclick="refreshStats()">🔄 刷新统计</button>
|
||
</div>
|
||
<div id="healthBox" class="mt16"></div>
|
||
<div class="mt16" style="border-top:1px solid var(--border);padding-top:14px;color:var(--muted);font-size:13px;line-height:2">
|
||
<b>当前为模拟数据</b>,用于功能演示与系统验证。接入真实数据后(行情/新闻/机构),修改 <code>config.py</code> 中的 <code>IS_MOCK=False</code>,并替换 <code>seed_data.py</code> 为真实数据源即可,其余分析/检索逻辑无需改动。<br>
|
||
技术栈:Python Flask + SQLite + Chroma 向量库 + bge-large-zh 语义检索 + DeepSeek 大模型(RAG 增强研报)。
|
||
</div>
|
||
</div>
|
||
{% endblock %}
|
||
{% block scripts %}
|
||
<script src="{{ url_for('static', filename='js/admin.js') }}"></script>
|
||
{% endblock %}
|