huggingface-transformers-react
Version:
A React provider and hooks for using Hugging Face Transformers.js in React applications with built-in loading states, error handling, and Suspense support
38 lines (35 loc) • 1.64 kB
TypeScript
import * as react_jsx_runtime from 'react/jsx-runtime';
import { ReactNode } from 'react';
type ModelStatus = "idle" | "loading" | "ready" | "error";
interface SentimentResult {
label: string;
score: number;
}
interface TransformersProviderProps {
children: ReactNode;
moduleUrl?: string;
loadTimeout?: number;
maxRetries?: number;
nonce?: string;
onLibraryError?: (err: Error) => void;
onModelError?: (modelId: string, err: Error) => void;
}
interface TransformersContextValue {
isLibraryLoaded: boolean;
libraryStatus: ModelStatus;
libraryError: Error | null;
models: Record<string, any>;
modelStatus: Record<string, ModelStatus>;
modelErrors: Record<string, Error | null>;
loadModel: <T = unknown>(modelId: string, task?: string, retry?: number) => Promise<T>;
unloadModel: (modelId: string) => void;
analyzeSentiment: (text: string, customModel?: string, options?: Record<string, any>) => Promise<SentimentResult[]>;
transcribeAudio: (audio: Blob | File, options?: Record<string, any>) => Promise<any>;
/** Suspense-ready promise that resolves when transformers.js is ready */
readyPromise: Promise<void>;
}
declare function TransformersProvider({ children, moduleUrl, loadTimeout, maxRetries, nonce, onLibraryError, onModelError, }: TransformersProviderProps): react_jsx_runtime.JSX.Element;
declare function useTransformers(): TransformersContextValue;
declare function useTransformersReady(): void;
export { TransformersProvider, useTransformers, useTransformersReady };
export type { ModelStatus, SentimentResult, TransformersProviderProps };