react-native-executorch
Version:
An easy way to run AI models in React Native with ExecuTorch
31 lines (27 loc) • 1.09 kB
text/typescript
import { TextEmbeddingsModule } from '../../modules/natural_language_processing/TextEmbeddingsModule';
import { useModuleFactory } from '../useModuleFactory';
import {
TextEmbeddingsType,
TextEmbeddingsProps,
} from '../../types/textEmbeddings';
/**
* React hook for managing a Text Embeddings model instance.
* @category Hooks
* @param TextEmbeddingsProps - Configuration object containing `model` source and optional `preventLoad` flag.
* @returns Ready to use Text Embeddings model.
*/
export const useTextEmbeddings = ({
model,
preventLoad = false,
}: TextEmbeddingsProps): TextEmbeddingsType => {
const { error, isReady, isGenerating, downloadProgress, runForward } =
useModuleFactory({
factory: (config, onProgress) =>
TextEmbeddingsModule.fromModelName(config, onProgress),
config: model,
deps: [model.modelName, model.modelSource, model.tokenizerSource],
preventLoad,
});
const forward = (input: string) => runForward((inst) => inst.forward(input));
return { error, isReady, isGenerating, downloadProgress, forward };
};