modif selection chatbot

This commit is contained in:
nicoboy
2026-01-05 09:25:37 +01:00
parent e3d392bf08
commit f199ce0653
4 changed files with 212 additions and 20 deletions

View File

@ -21,19 +21,23 @@ $db = Database::getInstance();
// Récupérer les clés API de l'enseignant
$api_keys = APIKeyManager::listKeys($user['id_utilisateur']);
// Déterminer le provider par défaut (premier actif ou ollama)
$default_provider = null;
foreach ($api_keys as $key) {
if ($key['is_active']) {
$default_provider = $key['provider'];
break; // Premier actif trouvé
}
}
// Si aucune clé active, Ollama par défaut
if (!$default_provider) {
$default_provider = 'ollama';
// Récupérer le provider par défaut configuré
$default_config = $db->fetchOne(
"SELECT provider, model_default FROM chatbot_default_provider WHERE id_enseignant = ?",
[$user['id_utilisateur']]
);
// Si pas de config, initialiser avec Ollama
if (!$default_config) {
$db->query(
"INSERT INTO chatbot_default_provider (id_enseignant, provider, model_default) VALUES (?, 'ollama', 'ministral-3:3b')",
[$user['id_utilisateur']]
);
$default_config = ['provider' => 'ollama', 'model_default' => 'ministral-3:3b'];
}
$default_provider = $default_config['provider'];
$default_model = $default_config['model_default'];
// Récupérer les modèles disponibles groupés par provider
$models_by_provider = [];
@ -165,10 +169,7 @@ $stats_detail = $db->fetchAll(
</div>
<div class="key-status">
<?php if ($is_active): ?>
<span class="status-badge active">🟢 Active</span>
<?php if ($default_provider === $provider_id): ?>
<span class="status-badge default">✨ Par défaut</span>
<?php endif; ?>
<span class="status-badge active">🟢 Active</span>
<?php elseif ($is_configured): ?>
<span class="status-badge inactive">🟠 Désactivée</span>
<?php else: ?>
@ -178,7 +179,36 @@ $stats_detail = $db->fetchAll(
</div>
<div class="key-body">
<?php if ($is_configured): ?>
<?php if ($provider_id === 'ollama'): ?>
<!-- Card spéciale Ollama (pas de clé API nécessaire) -->
<div class="key-info">
<div class="info-row">
<span class="label">Type :</span>
<span class="value">🏠 Local (Jetson)</span>
</div>
<div class="info-row">
<span class="label">Modèle actuel :</span>
<span class="value"><?= $default_provider === 'ollama' ? htmlspecialchars($default_model) : 'ministral-3:3b' ?></span>
</div>
<div class="info-row">
<span class="label">Coût :</span>
<span class="value">Gratuit ✅</span>
</div>
</div>
<div class="key-actions">
<button class="btn-secondary btn-sm" onclick="testConnection('ollama')">
🔍 Tester
</button>
<button class="btn-secondary btn-sm" onclick="configureOllama()">
⚙️ Changer le modèle
</button>
<?php if ($default_provider !== 'ollama'): ?>
<button class="btn-primary btn-sm" onclick="setAsDefault('ollama', 'ministral-3:3b')">
⭐ Définir par défaut
</button>
<?php endif; ?>
</div>
<?php elseif ($is_configured): ?>
<div class="key-info">
<div class="info-row">
<span class="label">Modèle par défaut :</span>
@ -209,6 +239,11 @@ $stats_detail = $db->fetchAll(
<button class="btn-secondary btn-sm" onclick="editKey('<?= $provider_id ?>')">
✏️ Modifier
</button>
<?php if ($default_provider !== $provider_id): ?>
<button class="btn-primary btn-sm" onclick="setAsDefault('<?= $provider_id ?>', '<?= htmlspecialchars($key_info['model_default']) ?>')">
⭐ Définir par défaut
</button>
<?php endif; ?>
<button class="btn-danger btn-sm" onclick="deleteKey('<?= $provider_id ?>')">
🗑️ Supprimer
</button>