UNPKG

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
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 };