MCPcopy Create free account
hub / github.com/Icecubesaad/OpenLLM-Studio / useHfModelFiles

Function useHfModelFiles

src/hooks/useHfModelFiles.ts:6–56  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

4import type { HfModelDetails, HfModelFile } from '../lib/types';
5
6export function useHfModelFiles() {
7 const { hfToken } = useAppStore();
8 const [modelFiles, setModelFiles] = useState<HfModelFile[]>([]);
9 const [modelDetails, setModelDetails] = useState<HfModelDetails | null>(null);
10 const [isLoading, setIsLoading] = useState(false);
11 const [error, setError] = useState<string | null>(null);
12
13 const loadFiles = async (repoId: string) => {
14 setIsLoading(true);
15 setError(null);
16
17 try {
18 const [files, details] = await Promise.all([
19 getHfModelFiles(repoId, hfToken || undefined),
20 getHfModelDetails(repoId, hfToken || undefined),
21 ]);
22 setModelFiles(files);
23 setModelDetails(details);
24 } catch (err) {
25 let errorMessage = 'Failed to load model files';
26
27 if (err instanceof Error) {
28 errorMessage = err.message;
29
30 // Check if it's a rate limit error
31 if (errorMessage.includes('Rate limit exceeded')) {
32 const match = errorMessage.match(/retry after (\d+) seconds/);
33 if (match) {
34 const seconds = parseInt(match[1]);
35 errorMessage = `Rate limit exceeded. Please wait ${seconds} seconds before trying again.`;
36 }
37 }
38 }
39
40 setError(errorMessage);
41 console.error('Load files error:', err);
42 setModelFiles([]);
43 setModelDetails(null);
44 } finally {
45 setIsLoading(false);
46 }
47 };
48
49 return {
50 modelFiles,
51 modelDetails,
52 isLoading,
53 error,
54 loadFiles,
55 };
56}

Callers 1

HuggingFaceTabFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected