Fix: Chargement automatique des modèles OpenRouter dans le chatbox

Corrections pour permettre le chargement automatique des modèles IA:
- Retrait de la restriction admin sur la route GET /api/openrouter/models
- Retrait de la condition is_admin dans loadOpenRouterModels()
- Ajout d'un useEffect pour charger les modèles à l'ouverture du chatbox
- Ajout d'un indicateur "Chargement des modèles..." dans le sélecteur
- Désactivation du sélecteur pendant le chargement

Les modèles se chargent maintenant automatiquement quand l'utilisateur ouvre le chatbox, et tous les utilisateurs authentifiés peuvent y accéder (pas seulement les admins).
This commit is contained in:
Claude committed 2025-11-12 19:08:12 +00:00
1 parent 2ebef22dd8
commit 4864eae3ce
2 files changed
+13 -4

No files matched your search

+1 -1
View File
@@ -14,7 +14,7 @@ const CACHE_DURATION = 60 * 60 * 1000; // 1 heure
* GET /api/openrouter/models
* Récupérer la liste des modèles disponibles depuis OpenRouter
*/
router.get('/models', authenticateToken, requireAdmin, async (req, res) => {
router.get('/models', authenticateToken, async (req, res) => {
try {
// Vérifier le cache
const now = Date.now();
+12 -3
View File
@@ -223,7 +223,7 @@ const Index = () => {
};
const loadOpenRouterModels = async () => {
if (user?.is_admin && settings.openrouter_api_key) {
if (settings.openrouter_api_key) {
setLoadingModels(true);
try {
const models = await OpenRouterService.getModels();
@@ -528,6 +528,13 @@ const Index = () => {
chatEndRef.current?.scrollIntoView({ behavior: 'smooth' });
}, [chatMessages]);
// Load models when chatbox opens
useEffect(() => {
if (chatOpen && openRouterModels.length === 0) {
loadOpenRouterModels();
}
}, [chatOpen]);
// Set default model when models are loaded
useEffect(() => {
if (openRouterModels.length > 0 && !selectedModel) {
@@ -2329,9 +2336,11 @@ const Index = () => {
value={selectedModel}
onChange={(e) => setSelectedModel(e.target.value)}
className="w-full text-xs px-2 py-1.5 border border-input rounded-md bg-background"
disabled={chatLoading}
disabled={chatLoading || loadingModels}
>
{openRouterModels.length === 0 ? (
{loadingModels ? (
<option value="">Chargement des modèles...</option>
) : openRouterModels.length === 0 ? (
<option value="">Aucun modèle disponible</option>
) : (
openRouterModels.map(model => (