import { useState, useEffect, useCallback, useMemo } from "react"; import { useAPI } from "../contexts/APIProvider"; import { LogPanel } from "./LogViewer"; import { processEvalTimes } from "../lib/Utils"; export default function ModelsPage() { const { models, unloadAllModels, loadModel, upstreamLogs, enableAPIEvents } = useAPI(); const [isUnloading, setIsUnloading] = useState(false); useEffect(() => { enableAPIEvents(true); return () => { enableAPIEvents(false); }; }, []); const handleUnloadAllModels = useCallback(async () => { setIsUnloading(true); try { await unloadAllModels(); } catch (e) { console.error(e); } finally { // at least give it a second to show the unloading message setTimeout(() => { setIsUnloading(false); }, 1000); } }, []); const [totalLines, totalTokens, avgTokensPerSecond] = useMemo(() => { return processEvalTimes(upstreamLogs); }, [upstreamLogs]); return (
| Name | State | |
|---|---|---|
|
{model.name !== "" ? model.name : model.id}
{model.description != "" && (
{model.description} )} |
{model.state} |
note: eval logs from llama-server
| Requests | {totalLines} |
| Total Tokens Generated | {totalTokens} |
| Average Tokens/Second | {avgTokensPerSecond} |