Backup #1550
| ID | 1550 |
| Dateipfad | /var/www/dev.campus.systemische-tools.de/src/View/chat/partials/response.php |
| Version | 3 |
| Typ |
modified |
| Größe | 3.5 KB |
| Hash | ca884c54ac05dab9e9b739cfb0403f8c5fbc073b86749511f8f5e11194f2d217 |
| Datum | 2025-12-26 20:07:17 |
| Geändert von | claude-code-hook |
| Grund | Claude Code Pre-Hook Backup vor Write-Operation |
| Datei existiert |
Ja
|
Dateiinhalt
<?php
/**
* HTMX Response Partial - Renders both user question and assistant response
*
* @var string $question The user's question
* @var array $result AI response with 'answer', 'sources', 'usage'
* @var string $model The model used
* @var string $formattedAnswer Pre-formatted answer HTML
*/
$answer = $formattedAnswer ?? htmlspecialchars($result['answer'] ?? '');
$sources = $result['sources'] ?? [];
$usage = $result['usage'] ?? null;
$isOllama = str_starts_with($model, 'ollama:');
$modelLabel = $isOllama ? substr($model, 7) : $model;
$inputTokens = $usage['input_tokens'] ?? 0;
$outputTokens = $usage['output_tokens'] ?? 0;
$cost = ($inputTokens * 0.000015) + ($outputTokens * 0.000075);
$qualityValidation = $result['quality_validation'] ?? null;
?>
<div class="chat-message chat-message--user">
<div class="message-content"><?= htmlspecialchars($question) ?></div>
</div>
<div class="chat-message chat-message--assistant">
<div class="message-content"><?= $answer ?></div>
<?php if ($qualityValidation !== null): ?>
<div class="quality-badge quality-badge--<?= $qualityValidation['passed'] ? 'passed' : 'failed' ?>"
title="<?= htmlspecialchars($qualityValidation['details'] ?? '') ?>">
<span class="quality-badge__icon"><?= $qualityValidation['passed'] ? '✓' : '⚠' ?></span>
<span class="quality-badge__score"><?= round($qualityValidation['score'] ?? 0) ?>%</span>
<?php if (!empty($qualityValidation['issues'])): ?>
<div class="quality-badge__issues">
<strong>Hinweise:</strong>
<ul>
<?php foreach ($qualityValidation['issues'] as $issue): ?>
<li><?= htmlspecialchars($issue) ?></li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
</div>
<?php endif; ?>
<?php if (!empty($sources)): ?>
<?php $uniqueId = uniqid('sources-'); ?>
<div class="chat-sources chat-sources--collapsed" id="<?= $uniqueId ?>">
<button type="button" class="chat-sources__toggle" onclick="toggleSources('<?= $uniqueId ?>')">
<span class="chat-sources__count"><?= count($sources) ?> Quelle<?= count($sources) > 1 ? 'n' : '' ?></span>
<span class="chat-sources__arrow">▼</span>
</button>
<div class="chat-sources__list">
<?php foreach ($sources as $source): ?>
<div class="source-item">
<div class="source-item__header">
<?php if (!empty($source['collection'])): ?>
<span class="source-item__collection">[<?= htmlspecialchars($source['collection']) ?>]</span>
<?php endif; ?>
<span class="source-item__title"><?= htmlspecialchars($source['title'] ?? 'Unbekannt') ?></span>
<span class="source-item__score"><?= round(($source['score'] ?? 0) * 100) ?>%</span>
</div>
<?php if (!empty($source['content'])): ?>
<div class="source-item__content">"<?= htmlspecialchars(mb_substr($source['content'], 0, 200)) ?><?= mb_strlen($source['content']) > 200 ? '...' : '' ?>"</div>
<?php endif; ?>
</div>
<?php endforeach; ?>
</div>
<?php include __DIR__ . '/message-meta.php'; ?>
</div>
<?php else: ?>
<?php include __DIR__ . '/message-meta.php'; ?>
<?php endif; ?>
</div>
Vollständig herunterladen
Aktionen
Andere Versionen dieser Datei
| ID |
Version |
Typ |
Größe |
Datum |
| 2123 |
5 |
modified |
4.0 KB |
2025-12-29 14:57 |
| 1921 |
4 |
modified |
3.9 KB |
2025-12-28 01:20 |
| 1550 |
3 |
modified |
3.5 KB |
2025-12-26 20:07 |
| 566 |
2 |
modified |
2.6 KB |
2025-12-23 03:36 |
| 536 |
1 |
modified |
2.4 KB |
2025-12-22 22:27 |
← Zurück zur Übersicht