{% extends "base.html" %} {% set active = 'figures' %} {% block title %}插图 · DocGraph{% endblock %} {% block content %}

插图 ({{ nodes|length }})

{% set enriched = nodes | selectattr("attrs.semantic_summary") | list %}

已做 VLM 语义抽取 {{ enriched|length }} / {{ nodes|length }} 张。 未抽取的图仍保留 L0 图片路径和页码,可以提高 DOCGRAPH_VLM_FIGURE_LIMIT 后继续补跑。

{% if not nodes %}

没有 figure 节点。需要 parser 支持图抽取(marker / mineru)+ VLM 描述。

{% else %} {% set groups = nodes | groupby('doc_id') %} {% for doc_id, figs in groups %}

{{ doc_id | doc_name }} ({{ figs|length }} 张)

{% for n in figs %}
{{ n.attrs.get('figure_type','other') }} p.{{ n.location.page }} {% if n.attrs.get('semantic_node_ids') %} structured {{ n.attrs.get('semantic_node_ids')|length }} {% elif n.attrs.get('semantic_summary') %} summary {% else %} L0 only {% endif %}

{{ n.name | short(60) }}

{% if n.attrs.get('semantic_summary') %}

{{ n.attrs.semantic_summary | short(220) }}

{% elif n.attrs.get('caption') %}

{{ n.attrs.caption | short(160) }}

{% else %}

尚未运行 VLM 语义抽取。

{% endif %} {% if n.attrs.get('semantic_entities') %}
结构化 JSON
{{ n.attrs.semantic_entities }}
{% endif %} {% if n.attrs.get('mermaid') %}
Mermaid
{{ n.attrs.mermaid }}
{% endif %} {% if n.attrs.get('wavejson') %}
WaveJSON
{{ n.attrs.wavejson }}
{% endif %}
{% endfor %}
{% endfor %} {% endif %} {% endblock %}