Files
MtoRagSystem/templates/admin/model_config/test_retrieval.html.twig
2026-03-02 07:20:48 +01:00

172 lines
6.2 KiB
Twig
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{% extends 'admin/base.html.twig' %}
{% block title %}Retrieval-Test{% endblock %}
{% block body %}
<div class="d-flex justify-content-between align-items-center mb-4">
<h1 class="h3">
Retrieval-Test {{ config.modelName }} (v{{ config.version }})
</h1>
<a href="{{ path('admin_model_config_list') }}"
class="btn btn-sm btn-outline-secondary">
Zurück
</a>
</div>
{# ====================================================== #}
{# Konfigurationsübersicht #}
{# ====================================================== #}
<div class="card bg-black border-secondary text-light mb-4">
<div class="card-body small">
<div class="row">
<div class="col-md-6">
<strong>Max Chunks:</strong>
{{ config.retrievalMaxChunks }}
</div>
<div class="col-md-6">
<strong>Vector Top K:</strong>
{{ config.retrievalVectorTopK }}
</div>
</div>
</div>
</div>
{# ====================================================== #}
{# Testformular #}
{# ====================================================== #}
<div class="card bg-black border-secondary text-light mb-4">
<div class="card-body">
<form method="post">
<div class="mb-3">
<label class="form-label">Test-Prompt</label>
<textarea name="prompt"
rows="3"
class="form-control bg-dark text-light border-secondary"
required>{{ prompt }}</textarea>
</div>
<button type="submit"
class="btn btn-outline-warning">
Retrieval testen
</button>
</form>
</div>
</div>
{# ====================================================== #}
{# Ergebnisse #}
{# ====================================================== #}
{% if results is not empty %}
<div class="card bg-black border-secondary text-light">
<div class="card-body">
<h5 class="text-warning mb-3">
Gefundene Chunks ({{ results|length }})
</h5>
<div style="max-height: 500px; overflow-y: auto;">
{% for chunk in results %}
<div class="border border-secondary p-3 mb-3 small">
{# ================= META-ZEILE ================= #}
<div class="mb-2 text-warning"
style="font-size: 11px; line-height: 1.5; word-break: break-all;">
<span class="text-info">
<strong>rank:</strong> {{ chunk.rank }}
</span> |
<span class="text-info">
<strong>chunk_id:</strong> {{ chunk.chunk_id }}
</span> |
<span class="text-info">
<strong>document_id:</strong>
{% if chunk.document_id %}
<a class="text-info"
href="{{ path('admin_document_show', { id: chunk.document_id }) }}">
{{ chunk.document_id }}
</a>
{% else %}
{% endif %}
</span> |
<span>
<strong>route:</strong>
<span class="
{% if chunk.route == 'catalog_list' %}
text-primary
{% elseif chunk.route starts with 'catalog' %}
text-info
{% elseif chunk.route starts with 'sales' %}
text-success
{% else %}
text-secondary
{% endif %}
">
{{ chunk.route ?? '—' }}
</span>
</span> |
<span>
<strong>entity:</strong>
{{ chunk.entity_label ?? '—' }}
</span> |
<span>
<strong>intent:</strong>
{{ chunk.intent ?? '—' }}
</span> |
<span>
<strong>rrf:</strong>
{{ chunk.rrf_score is not null
? chunk.rrf_score|number_format(6, '.', '')
: '—' }}
</span> |
<span>
<strong>raw:</strong>
{{ chunk.raw_score is not null
? chunk.raw_score|number_format(6, '.', '')
: '—' }}
</span> |
<span>
<strong>threshold:</strong>
{{ chunk.threshold ?? '—' }}
</span> |
<span>
<strong>list:</strong>
{{ chunk.is_list_query ? 'true' : 'false' }}
</span>
</div>
{# ================= CHUNK TEXT ================= #}
<div class="text-light">
{{ chunk.text }}
</div>
</div>
{% endfor %}
</div>
</div>
</div>
{% endif %}
{% endblock %}