mirror of
https://github.com/R0m1k3/noteflow.git
synced 2026-10-18 20:59:35 +02:00
Feature: Flux RSS avec 14 articles et pagination
Corrections et améliorations du système RSS et de l'assistant IA: RSS: - Correction de la route backend /api/rss/articles pour respecter le paramètre limit - Changement de LIMIT 5 fixe à LIMIT ? avec paramètre dynamique - Support de 14 articles avec pagination de 7 par page - Amélioration du cache pour supporter différentes limites Assistant IA: - Suppression de la vérification settings.openrouter_api_key côté frontend - Les modèles se chargent maintenant automatiquement via le backend - Retrait de la section "Modèle IA" dans l'administration OpenRouter - Amélioration de la gestion des erreurs lors du chargement des modèles Les utilisateurs peuvent maintenant voir tous les modèles OpenRouter disponibles dans le sélecteur du chatbox, sans configuration manuelle dans l'admin.
This commit is contained in:
2 files changed
+15
-78
No files matched your search
+9
-74
@@ -223,16 +223,15 @@ const Index = () => {
|
||||
};
|
||||
|
||||
const loadOpenRouterModels = async () => {
|
||||
if (settings.openrouter_api_key) {
|
||||
setLoadingModels(true);
|
||||
try {
|
||||
const models = await OpenRouterService.getModels();
|
||||
setOpenRouterModels(models);
|
||||
} catch (error) {
|
||||
console.error("Erreur lors du chargement des modèles:", error);
|
||||
} finally {
|
||||
setLoadingModels(false);
|
||||
}
|
||||
setLoadingModels(true);
|
||||
try {
|
||||
const models = await OpenRouterService.getModels();
|
||||
setOpenRouterModels(models);
|
||||
} catch (error) {
|
||||
console.error("Erreur lors du chargement des modèles:", error);
|
||||
setOpenRouterModels([]); // Vider en cas d'erreur
|
||||
} finally {
|
||||
setLoadingModels(false);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1934,70 +1933,6 @@ const Index = () => {
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
<div className="flex items-center justify-between">
|
||||
<Label htmlFor="ai-model">Modèle IA</Label>
|
||||
{settings.openrouter_api_key && (
|
||||
<Button
|
||||
variant="outline"
|
||||
size="sm"
|
||||
onClick={async () => {
|
||||
try {
|
||||
setLoadingModels(true);
|
||||
const models = await OpenRouterService.refreshModels();
|
||||
setOpenRouterModels(models);
|
||||
showSuccess(`${models.length} modèles chargés`);
|
||||
} catch (error) {
|
||||
showError("Erreur lors du chargement des modèles");
|
||||
} finally {
|
||||
setLoadingModels(false);
|
||||
}
|
||||
}}
|
||||
disabled={loadingModels}
|
||||
>
|
||||
<RefreshCw className={`h-4 w-4 mr-2 ${loadingModels ? 'animate-spin' : ''}`} />
|
||||
Actualiser les modèles
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
{settings.openrouter_api_key && openRouterModels.length > 0 ? (
|
||||
<Select
|
||||
value={settings.ai_model || ''}
|
||||
onValueChange={(value) => setSettings({ ...settings, ai_model: value })}
|
||||
>
|
||||
<SelectTrigger id="ai-model">
|
||||
<SelectValue placeholder="Sélectionnez un modèle" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{openRouterModels.map((model) => (
|
||||
<SelectItem key={model.id} value={model.id}>
|
||||
<div className="flex flex-col">
|
||||
<span className="font-medium">{model.name}</span>
|
||||
{model.description && (
|
||||
<span className="text-xs text-muted-foreground line-clamp-1">
|
||||
{model.description}
|
||||
</span>
|
||||
)}
|
||||
</div>
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
) : (
|
||||
<Input
|
||||
id="ai-model"
|
||||
placeholder="anthropic/claude-3-sonnet"
|
||||
value={settings.ai_model || ''}
|
||||
onChange={(e) => setSettings({ ...settings, ai_model: e.target.value })}
|
||||
/>
|
||||
)}
|
||||
<p className="text-sm text-muted-foreground">
|
||||
{settings.openrouter_api_key
|
||||
? `${openRouterModels.length} modèles disponibles. Cliquez sur "Actualiser" pour charger la liste.`
|
||||
: "Ajoutez d'abord une clé API pour voir les modèles disponibles."}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="flex gap-2">
|
||||
<Button onClick={handleSaveSettings} className="flex items-center gap-2">
|
||||
<Zap className="h-4 w-4" />
|
||||
|
||||
Reference in new issue
Block a user