fetchAll( "SELECT * FROM available_models WHERE active = TRUE ORDER BY provider, recommended DESC, display_name" ); foreach ($all_models as $model) { $models_by_provider[$model['provider']][] = $model; } // Récupérer les statistiques d'utilisation $stats = $db->fetchOne( "SELECT COUNT(DISTINCT id) as total_conversations, SUM(total_messages) as total_messages, provider, model_used FROM v_chatbot_usage_stats WHERE id_enseignant = ? GROUP BY provider, model_used ORDER BY total_conversations DESC LIMIT 1", [$user['id_utilisateur']] ); $stats_detail = $db->fetchAll( "SELECT provider, model_used, SUM(total_conversations) as conversations, SUM(total_messages) as messages, month FROM v_chatbot_usage_stats WHERE id_enseignant = ? GROUP BY provider, model_used, month ORDER BY month DESC, conversations DESC", [$user['id_utilisateur']] ); ?> Configuration API Chatbot - WebVal
💬
Conversations
📨
Messages
🤖
Provider actuel

🔑 Mes clés API

'Gemini', 'mistral' => 'Mistral', 'openai' => 'OpenAI', 'ollama' => 'Ollama']; $provider_icons = [ 'gemini' => '✨', 'mistral' => '⚡', 'openai' => '🧠', 'ollama' => '🏠' ]; foreach ($providers as $provider_id => $provider_name): $key_info = null; foreach ($api_keys as $key) { if ($key['provider'] === $provider_id) { $key_info = $key; break; } } $is_configured = $key_info !== null; $is_active = $is_configured && $key_info['is_active']; ?>
🟢 Active 🟠 Désactivée ⚪ Aucune
Modèle par défaut :
Quota : /
Dernière utilisation :

Aucune clé configurée pour

📊 Historique d'utilisation

Mois Provider Modèle Conversations Messages