90 lines
2.8 KiB
Twig
90 lines
2.8 KiB
Twig
{% extends 'admin/base.html.twig' %}
|
||
|
||
{% block title %}Ingest Profiles{% endblock %}
|
||
|
||
{% block body %}
|
||
<h1>Ingest Profiles</h1>
|
||
|
||
{% if structureMismatch %}
|
||
<div class="alert alert-danger">
|
||
⚠ Strukturabweichung festgestellt – Globale Neuindizierung erforderlich | <a href="{{ path('admin_jobs') }}">Global Reindex aufrufen</a>
|
||
</div>
|
||
{% else %}
|
||
<div class="alert alert-success">
|
||
✅ Die Indexstruktur entspricht dem aktiven Profil
|
||
</div>
|
||
{% endif %}
|
||
|
||
<p><a class="btn btn-outline-light" href="{{ path('admin_ingest_profile_create') }}">+ Neues Profil anlegen</a></p>
|
||
|
||
<h2>Profiles</h2>
|
||
|
||
<table border="1" cellpadding="6" class="table table-sm table-dark align-middle">
|
||
<tr>
|
||
<th>Version</th>
|
||
<th>Chunk Size</th>
|
||
<th>Overlap</th>
|
||
<th>Model</th>
|
||
<th>Dimension</th>
|
||
<th>Scoring</th>
|
||
<th>Active</th>
|
||
<th>Reindex Required</th>
|
||
<th>Actions</th>
|
||
</tr>
|
||
|
||
{% for p in profiles %}
|
||
<tr {% if p.active %}class="text-success"{% endif %}>
|
||
<td>{{ p.version }}</td>
|
||
<td>{{ p.chunkSize }}</td>
|
||
<td>{{ p.chunkOverlap }}</td>
|
||
<td>{{ p.embeddingModel }}</td>
|
||
<td>{{ p.embeddingDimension }}</td>
|
||
<td>{{ p.scoringVersion }}</td>
|
||
<td>{{ p.active ? 'Yes' : 'No' }}</td>
|
||
<td>{{ p.reindexRequired ? 'Yes' : 'No' }}</td>
|
||
<td>
|
||
{% if not p.active %}
|
||
<a class="btn btn-outline-info btn-sm" href="{{ path('admin_ingest_profile_activate', {id: p.id}) }}">
|
||
Aktivieren
|
||
</a>
|
||
{% endif %}
|
||
</td>
|
||
</tr>
|
||
{% endfor %}
|
||
</table>
|
||
|
||
<hr>
|
||
<h2>Index-Struktur-Profil Diff</h2>
|
||
|
||
{% if indexMeta %}
|
||
<p><strong>Index Version:</strong> {{ indexMeta.index_version }}</p>
|
||
{% else %}
|
||
<p>No index_meta.json found.</p>
|
||
{% endif %}
|
||
|
||
<table border="1" cellpadding="6" class="table table-sm table-dark align-middle">
|
||
<tr>
|
||
<th>Parameter</th>
|
||
<th>Index Meta</th>
|
||
<th>Active Profile</th>
|
||
<th>Status</th>
|
||
</tr>
|
||
|
||
{% for key, row in diff %}
|
||
<tr>
|
||
<td>{{ key }}</td>
|
||
<td>{{ row.meta }}</td>
|
||
<td>{{ row.profile }}</td>
|
||
<td>
|
||
{% if row.equal %}
|
||
<span style="color:green;">✓</span>
|
||
{% else %}
|
||
<span style="color:red;">✗</span>
|
||
{% endif %}
|
||
</td>
|
||
</tr>
|
||
{% endfor %}
|
||
</table>
|
||
|
||
{% endblock %}
|