new ingest und profile settings
This commit is contained in:
@@ -28,22 +28,35 @@
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-light" href="{{ path('admin_dashboard') }}">Dashboard</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h3>Dokumente und Wissen</h3>
|
||||
<ul class="nav flex-column">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-light" href="{{ path('admin_documents') }}">Dokumente</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-light" href="{{ path('admin_jobs') }}">
|
||||
Indexierung Jobs (Ingest)
|
||||
Indexierung (Ingest Jobs)
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-light" href="{{ path('admin_system_agent') }}">
|
||||
Wissen (Chunk-Index)
|
||||
Wissensdaten (Chunk-Index)
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h3>System-Profile</h3>
|
||||
<ul class="nav flex-column">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-light" href="{{ path('admin_system_prompt') }}">
|
||||
System-Prompt-Profil
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link text-light" href="{{ path('admin_system_prompt') }}">
|
||||
System Prompt Settings
|
||||
<a class="nav-link text-light" href="{{ path('admin_ingest_profile_list') }}">
|
||||
Indexierungs-Profil (Ingest Profiles)
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
26
templates/admin/ingest_profile/create.html.twig
Normal file
26
templates/admin/ingest_profile/create.html.twig
Normal file
@@ -0,0 +1,26 @@
|
||||
{% extends 'admin/base.html.twig' %}
|
||||
|
||||
{% block title %}System Prompt{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<h1>Create Ingest Profile</h1>
|
||||
|
||||
<form method="post">
|
||||
<label>Chunk Size:</label>
|
||||
<input type="number" name="chunk_size" required><br>
|
||||
|
||||
<label>Chunk Overlap:</label>
|
||||
<input type="number" name="chunk_overlap" required><br>
|
||||
|
||||
<label>Embedding Model:</label>
|
||||
<input type="text" name="embedding_model" required><br>
|
||||
|
||||
<label>Embedding Dimension:</label>
|
||||
<input type="number" name="embedding_dimension" required><br>
|
||||
|
||||
<label>Scoring Version:</label>
|
||||
<input type="number" name="scoring_version" required><br>
|
||||
|
||||
<button type="submit">Create</button>
|
||||
</form>
|
||||
{% endblock %}
|
||||
89
templates/admin/ingest_profile/list.html.twig
Normal file
89
templates/admin/ingest_profile/list.html.twig
Normal file
@@ -0,0 +1,89 @@
|
||||
{% 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>
|
||||
<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 %}
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
{% block body %}
|
||||
|
||||
<h1 class="h4 mb-4">Ingest Jobs</h1>
|
||||
<h1 class="h4 mb-4">Indexierung (Ingest Jobs-Liste)</h1>
|
||||
|
||||
<form method="post"
|
||||
action="{{ path('admin_global_reindex') }}"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{% extends 'admin/base.html.twig' %}
|
||||
|
||||
{% block title %}Agent System Overview{% endblock %}
|
||||
{% block title %}Wissensdaten (Chunk-Index){% endblock %}
|
||||
|
||||
{% block body %}
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
← Zurück
|
||||
</a>
|
||||
|
||||
<h1 class="h4 mb-4">Agent System Overview</h1>
|
||||
<h1 class="h4 mb-4">Wissensdaten (Chunk-Index)</h1>
|
||||
|
||||
{# ============================= #}
|
||||
{# Index Meta Section #}
|
||||
|
||||
Reference in New Issue
Block a user