Backup #1770

ID1770
Dateipfad/var/www/dev.campus.systemische-tools.de/src/View/chat/partials/message.php
Version1
Typ modified
Größe3.3 KB
Hashd9fa2090d529ebb8ac48fa9908eb02051657fff9051c19abc62270630c53bca2
Datum2025-12-27 13:55:42
Geändert vonclaude-code-hook
GrundClaude Code Pre-Hook Backup vor Edit-Operation
Datei existiert Ja

Dateiinhalt

<?php
/**
 * Chat Message Partial
 *
 * @var array $message Message data from database
 * @var bool $formatContent Whether to apply markdown formatting (default: true for assistant)
 */

$role = $message['role'] ?? 'user';
$content = $message['content'] ?? '';
$sources = [];
if (!empty($message['sources'])) {
    $decoded = json_decode($message['sources'], true);
    $sources = is_array($decoded) ? $decoded : [];
}

$inputTokens = (int) ($message['tokens_input'] ?? 0);
$outputTokens = (int) ($message['tokens_output'] ?? 0);
$model = $message['model'] ?? 'claude-opus-4-5-20251101';
$isOllama = str_starts_with($model, 'ollama:');
$modelLabel = $isOllama ? substr($model, 7) : $model;
$cost = ($inputTokens * 0.000015) + ($outputTokens * 0.000075);
?>
<div class="chat-message chat-message--<?= htmlspecialchars($role) ?>">
    <div class="message-content">
        <?php if ($role === 'user'): ?>
            <?= htmlspecialchars($content) ?>
        <?php else: ?>
            <?= nl2br(htmlspecialchars($content)) ?>
            <?php if (!empty($sources)): ?>
                <?php $uniqueId = 'sources-' . ($message['id'] ?? uniqid()); ?>
                <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">&#9660;</span>
                    </button>
                    <div class="chat-sources__list">
                    <?php foreach ($sources as $source): ?>
                        <div class="source-item">
                            <div class="source-item__header">
                                <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>
                </div>
            <?php endif; ?>
            <div class="message-meta">
                <span class="model-info">Modell: <?= htmlspecialchars($modelLabel) ?></span>
                <?php if (!$isOllama && ($inputTokens > 0 || $outputTokens > 0)): ?>
                <span class="tokens-info">
                    <span class="tokens-input" title="Input-Tokens">&darr;<?= number_format($inputTokens) ?></span>
                    <span class="tokens-output" title="Output-Tokens">&uarr;<?= number_format($outputTokens) ?></span>
                </span>
                <span class="cost-info" title="Geschätzte Kosten">~$<?= number_format($cost, 4) ?></span>
                <?php elseif ($isOllama): ?>
                <span class="tokens-info local">lokal</span>
                <?php endif; ?>
            </div>
        <?php endif; ?>
    </div>
</div>

Vollständig herunterladen

Aktionen

Herunterladen

Andere Versionen dieser Datei

ID Version Typ Größe Datum
1922 4 modified 3.8 KB 2025-12-28 01:20
1772 3 modified 4.0 KB 2025-12-27 13:56
1771 2 modified 4.0 KB 2025-12-27 13:55
1770 1 modified 3.3 KB 2025-12-27 13:55

← Zurück zur Übersicht