{% extends "base.html" %} {% block title %}管理仪表盘 — HF Daily Papers{% endblock %} {% block content %}
{% set active = "dashboard" %}{% include "partials/admin_subnav.html" %}

📊 系统状态

{{ stats.total_papers }}
论文总数
{{ stats.today_papers }}
今日新增
{{ stats.pending_count + stats.none_count }}
待总结
{{ stats.failed_count }}
总结失败

🕐 调度器

状态 {% if stats.scheduler_enabled %} 运行中 {% else %} 未启用 {% endif %}
调度时间 {{ stats.schedule_time }}({{ stats.timezone }})
{% if stats.next_run %}
下次执行 {{ stats.next_run[:19] | replace('T', ' ') }}
{% endif %}
投票刷新 每日自动刷新最近 {{ stats.upvote_refresh_days | default(7) }} 天
{% if stats.active_locks %}
活跃任务 {% for lock in stats.active_locks %} {{ lock.task }} {% endfor %}
{% endif %}

执行历史

{% if scheduler_history %}
{% for log in scheduler_history %} {% endfor %}
时间状态发现新增错误
{{ log.started_at.strftime('%Y-%m-%d %H:%M') if log.started_at else '-' }} {% if log.status == 'success' %}✓{% elif log.status == 'running' %}⟳{% elif log.status == 'failed' %}✗{% else %}{{ log.status }}{% endif %} {{ log.papers_found or 0 }} {{ log.papers_new or 0 }} {{ (log.error[:50] + '...') if log.error and log.error|length > 50 else (log.error or '-') }}
{% else %}

暂无调度器执行记录。

{% endif %}

💾 存储概况

数据库{{ stats.db_size }}
论文文件{{ stats.papers_size }}
临时文件{{ stats.tmp_size }}
搜索索引 {% if stats.config_overview.chroma_enabled %} {% endif %}

总结状态分布

{% set total = stats.total_papers or 1 %} {% set labels = {"done": "已完成", "pending": "待总结", "running": "运行中", "processing": "处理中", "failed": "失败", "permanent_failure": "永久失败", "none": "未开始"} %} {% for st, cnt in stats.status_counts.items() %} {% if cnt > 0 %}
{{ labels.get(st, st) }}
{{ cnt }}
{% endif %} {% endfor %}

⚙️ 运行配置

总结后端{{ stats.config_overview.summary_backend }} · {{ stats.config_overview.summary_pdf_mode }} 模式
并发/超时{{ stats.config_overview.summary_concurrency }} 并发 · {{ stats.config_overview.summary_timeout_seconds }}s · 重试 {{ stats.config_overview.summary_max_retries }}
调度{{ '启用' if stats.config_overview.scheduler_enabled else '未启用' }} · {{ stats.config_overview.schedule_time }} · {{ stats.config_overview.app_workers }} worker
语义搜索{{ '启用' if stats.config_overview.chroma_enabled else '未启用' }} · {{ stats.config_overview.embed_model }}
抓取TOP {{ stats.config_overview.top_n }} · 投票刷新 {{ stats.config_overview.upvote_refresh_days }} 天
布局模型{{ stats.config_overview.layout_model }}
数据库{{ stats.config_overview.database_url }}
嵌入密钥{{ '已配置' if stats.config_overview.api_key_configured else '未配置' }}

📋 最近活动

{% if stats.recent_logs %}
{% for log in stats.recent_logs %} {% endfor %}
任务状态日期发现新增开始时间完成时间错误
{{ log.task }} {# djlint:off #} {% if log.status == 'success' %}✓ 成功{% elif log.status == 'running' %}⟳ 运行中{% elif log.status == 'failed' %}✗ 失败{% else %}{{ log.status }}{% endif %} {# djlint:on #} {{ log.date or '-' }} {{ log.papers_found or 0 }} {{ log.papers_new or 0 }} {{ log.started_at.strftime('%Y-%m-%d %H:%M') if log.started_at else '-' }} {{ log.completed_at.strftime('%Y-%m-%d %H:%M') if log.completed_at else '-' }} {{ (log.error[:60] + '...') if log.error and log.error|length > 60 else (log.error or '-') }}
{% else %}

暂无活动日志

通过快捷操作触发任务后,日志将出现在这里。

{% endif %}
{% endblock %} {% block scripts %} {% endblock %}