// src/ModelOverview.jsx import React, { useEffect, useState } from "react"; import LmStats from "./LmStats"; export default function ModelOverview({ onBackToChat }) { const [defaultModel, setDefaultModel] = useState(""); const [modelInfo, setModelInfo] = useState([]); const [searchTerm, setSearchTerm] = useState(""); const [loading, setLoading] = useState(false); const [showStats, setShowStats] = useState(false); // π nuovo stato toggle const fetchModelData = async () => { setLoading(true); try { const [defaultRes, infoRes] = await Promise.all([ fetch("/v1/default-model"), fetch("/v1/models-info") ]); const defaultText = await defaultRes.text(); const infoJson = await infoRes.json(); setDefaultModel(defaultText); setModelInfo(Array.isArray(infoJson) ? infoJson : []); } catch (err) { console.error("Errore nel caricamento modelli", err); } finally { setLoading(false); } }; const updateModelData = async () => { setLoading(true); try { const res = await fetch("/v1/models-info/update", { method: "POST" }); if (res.ok) { const updated = await res.json(); setModelInfo(Array.isArray(updated) ? updated : []); } } catch (err) { console.error("Errore nell'aggiornamento modelli", err); } finally { setLoading(false); } }; useEffect(() => { fetchModelData(); }, []); const filteredModels = modelInfo.filter((model) => model.name.toLowerCase().includes(searchTerm.toLowerCase()) ); return (
{defaultModel || "Non disponibile"}
| Nome | Descrizione | Caratteristiche |
|---|---|---|
| Caricamento⦠| ||
| Nessun modello trovato | ||
| {model.name} | {model.description || "β"} |
|