react-native-executorch 0.5.1 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/CMakeLists.txt +24 -0
- package/android/build.gradle +1 -0
- package/android/src/main/cpp/CMakeLists.txt +25 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/RnExecutorchPackage.kt +1 -13
- package/common/rnexecutorch/RnExecutorchInstaller.cpp +52 -18
- package/common/rnexecutorch/RnExecutorchInstaller.h +0 -25
- package/common/rnexecutorch/TokenizerModule.cpp +1 -1
- package/common/rnexecutorch/TokenizerModule.h +4 -1
- package/common/rnexecutorch/data_processing/FileUtils.h +2 -2
- package/common/rnexecutorch/data_processing/ImageProcessing.cpp +5 -5
- package/common/rnexecutorch/data_processing/ImageProcessing.h +2 -2
- package/common/rnexecutorch/data_processing/Numerical.cpp +13 -0
- package/common/rnexecutorch/host_objects/JsiConversions.h +43 -62
- package/common/rnexecutorch/host_objects/ModelHostObject.h +43 -24
- package/common/rnexecutorch/metaprogramming/ConstructorHelpers.h +8 -6
- package/common/rnexecutorch/metaprogramming/FunctionHelpers.h +1 -1
- package/common/rnexecutorch/models/BaseModel.cpp +2 -2
- package/common/rnexecutorch/models/BaseModel.h +5 -0
- package/common/rnexecutorch/models/EncoderDecoderBase.cpp +2 -2
- package/common/rnexecutorch/models/EncoderDecoderBase.h +2 -2
- package/common/rnexecutorch/models/classification/Classification.cpp +6 -6
- package/common/rnexecutorch/models/classification/Classification.h +5 -0
- package/common/rnexecutorch/models/classification/Constants.h +3 -3
- package/common/rnexecutorch/models/embeddings/BaseEmbeddings.cpp +2 -2
- package/common/rnexecutorch/models/embeddings/BaseEmbeddings.h +2 -2
- package/common/rnexecutorch/models/embeddings/image/ImageEmbeddings.cpp +3 -3
- package/common/rnexecutorch/models/embeddings/image/ImageEmbeddings.h +5 -0
- package/common/rnexecutorch/models/embeddings/text/TextEmbeddings.cpp +2 -2
- package/common/rnexecutorch/models/embeddings/text/TextEmbeddings.h +6 -1
- package/common/rnexecutorch/models/image_segmentation/Constants.h +3 -3
- package/common/rnexecutorch/models/image_segmentation/ImageSegmentation.cpp +6 -5
- package/common/rnexecutorch/models/image_segmentation/ImageSegmentation.h +8 -1
- package/common/rnexecutorch/models/llm/LLM.cpp +58 -0
- package/common/rnexecutorch/models/llm/LLM.h +35 -0
- package/common/rnexecutorch/models/object_detection/Constants.h +3 -3
- package/common/rnexecutorch/models/object_detection/ObjectDetection.cpp +8 -8
- package/common/rnexecutorch/models/object_detection/ObjectDetection.h +11 -5
- package/common/rnexecutorch/models/object_detection/Types.h +13 -0
- package/common/rnexecutorch/models/object_detection/Utils.cpp +13 -11
- package/common/rnexecutorch/models/object_detection/Utils.h +7 -13
- package/common/rnexecutorch/models/ocr/CTCLabelConverter.cpp +2 -2
- package/common/rnexecutorch/models/ocr/CTCLabelConverter.h +2 -2
- package/common/rnexecutorch/models/ocr/Constants.h +33 -26
- package/common/rnexecutorch/models/ocr/Detector.cpp +20 -22
- package/common/rnexecutorch/models/ocr/Detector.h +4 -4
- package/common/rnexecutorch/models/ocr/OCR.cpp +9 -8
- package/common/rnexecutorch/models/ocr/OCR.h +11 -3
- package/common/rnexecutorch/models/ocr/RecognitionHandler.cpp +20 -19
- package/common/rnexecutorch/models/ocr/RecognitionHandler.h +9 -7
- package/common/rnexecutorch/models/ocr/Recognizer.cpp +7 -7
- package/common/rnexecutorch/models/ocr/Recognizer.h +2 -2
- package/common/rnexecutorch/models/ocr/Types.h +4 -6
- package/common/rnexecutorch/models/ocr/{DetectorUtils.cpp → utils/DetectorUtils.cpp} +70 -63
- package/common/rnexecutorch/models/ocr/{DetectorUtils.h → utils/DetectorUtils.h} +12 -11
- package/common/rnexecutorch/models/ocr/{RecognitionHandlerUtils.cpp → utils/RecognitionHandlerUtils.cpp} +14 -11
- package/common/rnexecutorch/models/ocr/{RecognitionHandlerUtils.h → utils/RecognitionHandlerUtils.h} +5 -5
- package/common/rnexecutorch/models/ocr/{RecognizerUtils.cpp → utils/RecognizerUtils.cpp} +28 -26
- package/common/rnexecutorch/models/ocr/{RecognizerUtils.h → utils/RecognizerUtils.h} +15 -14
- package/common/rnexecutorch/models/speech_to_text/SpeechToText.cpp +2 -2
- package/common/rnexecutorch/models/speech_to_text/SpeechToText.h +9 -2
- package/common/rnexecutorch/models/speech_to_text/SpeechToTextStrategy.h +2 -2
- package/common/rnexecutorch/models/speech_to_text/WhisperStrategy.cpp +2 -2
- package/common/rnexecutorch/models/speech_to_text/WhisperStrategy.h +2 -2
- package/common/rnexecutorch/models/style_transfer/StyleTransfer.cpp +5 -5
- package/common/rnexecutorch/models/style_transfer/StyleTransfer.h +6 -0
- package/common/rnexecutorch/models/vertical_ocr/VerticalDetector.cpp +23 -22
- package/common/rnexecutorch/models/vertical_ocr/VerticalDetector.h +4 -4
- package/common/rnexecutorch/models/vertical_ocr/VerticalOCR.cpp +34 -34
- package/common/rnexecutorch/models/vertical_ocr/VerticalOCR.h +27 -20
- package/{third-party/ios/ExecutorchLib/ExecutorchLib/sampler → common/runner}/sampler.cpp +3 -2
- package/{third-party/ios/ExecutorchLib/ExecutorchLib/sampler → common/runner}/sampler.h +3 -2
- package/ios/libs/executorch/libbackend_coreml_ios.a +0 -0
- package/ios/libs/executorch/libbackend_coreml_simulator.a +0 -0
- package/{third-party/ios/ExecutorchLib/frameworks/backend_mps.xcframework/ios-arm64 → ios/libs/executorch}/libbackend_mps_ios.a +0 -0
- package/{third-party/ios/ExecutorchLib/frameworks/backend_mps.xcframework/ios-arm64-simulator → ios/libs/executorch}/libbackend_mps_simulator.a +0 -0
- package/ios/libs/executorch/libbackend_xnnpack_ios.a +0 -0
- package/ios/libs/executorch/libbackend_xnnpack_simulator.a +0 -0
- package/ios/libs/executorch/libexecutorch_ios.a +0 -0
- package/ios/libs/executorch/libexecutorch_simulator.a +0 -0
- package/ios/libs/executorch/libkernels_custom_ios.a +0 -0
- package/ios/libs/executorch/libkernels_custom_simulator.a +0 -0
- package/ios/libs/executorch/libkernels_optimized_ios.a +0 -0
- package/ios/libs/executorch/libkernels_optimized_simulator.a +0 -0
- package/ios/libs/executorch/libkernels_portable_ios.a +0 -0
- package/ios/libs/executorch/libkernels_portable_simulator.a +0 -0
- package/ios/libs/executorch/libkernels_quantized_ios.a +0 -0
- package/ios/libs/executorch/libkernels_quantized_simulator.a +0 -0
- package/ios/libs/tokenizers-cpp/physical-arm64-release/libsentencepiece.a +0 -0
- package/ios/{ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/ExecutorchLib → libs/tokenizers-cpp/physical-arm64-release/libtokenizers_c.a} +0 -0
- package/ios/libs/tokenizers-cpp/physical-arm64-release/libtokenizers_cpp.a +0 -0
- package/ios/libs/tokenizers-cpp/simulator-arm64-debug/libsentencepiece.a +0 -0
- package/ios/{ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/ExecutorchLib → libs/tokenizers-cpp/simulator-arm64-debug/libtokenizers_c.a} +0 -0
- package/ios/libs/tokenizers-cpp/simulator-arm64-debug/libtokenizers_cpp.a +0 -0
- package/lib/Error.js +53 -0
- package/lib/ThreadPool.d.ts +10 -0
- package/lib/ThreadPool.js +28 -0
- package/lib/common/Logger.d.ts +8 -0
- package/lib/common/Logger.js +19 -0
- package/lib/constants/directories.js +2 -0
- package/lib/constants/llmDefaults.d.ts +6 -0
- package/lib/constants/llmDefaults.js +16 -0
- package/lib/constants/modelUrls.d.ts +223 -0
- package/lib/constants/modelUrls.js +322 -0
- package/lib/constants/ocr/models.d.ts +882 -0
- package/lib/constants/ocr/models.js +182 -0
- package/lib/constants/ocr/symbols.js +139 -0
- package/lib/constants/sttDefaults.d.ts +28 -0
- package/lib/constants/sttDefaults.js +68 -0
- package/lib/controllers/LLMController.d.ts +47 -0
- package/lib/controllers/LLMController.js +213 -0
- package/lib/controllers/OCRController.js +67 -0
- package/lib/controllers/SpeechToTextController.d.ts +56 -0
- package/lib/controllers/SpeechToTextController.js +349 -0
- package/lib/controllers/VerticalOCRController.js +70 -0
- package/lib/hooks/computer_vision/useClassification.d.ts +15 -0
- package/lib/hooks/computer_vision/useClassification.js +7 -0
- package/lib/hooks/computer_vision/useImageEmbeddings.d.ts +15 -0
- package/lib/hooks/computer_vision/useImageEmbeddings.js +7 -0
- package/lib/hooks/computer_vision/useImageSegmentation.d.ts +38 -0
- package/lib/hooks/computer_vision/useImageSegmentation.js +7 -0
- package/lib/hooks/computer_vision/useOCR.d.ts +20 -0
- package/lib/hooks/computer_vision/useOCR.js +41 -0
- package/lib/hooks/computer_vision/useObjectDetection.d.ts +15 -0
- package/lib/hooks/computer_vision/useObjectDetection.js +7 -0
- package/lib/hooks/computer_vision/useStyleTransfer.d.ts +15 -0
- package/lib/hooks/computer_vision/useStyleTransfer.js +7 -0
- package/lib/hooks/computer_vision/useVerticalOCR.d.ts +21 -0
- package/lib/hooks/computer_vision/useVerticalOCR.js +43 -0
- package/lib/hooks/general/useExecutorchModule.d.ts +13 -0
- package/lib/hooks/general/useExecutorchModule.js +7 -0
- package/lib/hooks/natural_language_processing/useLLM.d.ts +10 -0
- package/lib/hooks/natural_language_processing/useLLM.js +78 -0
- package/lib/hooks/natural_language_processing/useSpeechToText.d.ts +27 -0
- package/lib/hooks/natural_language_processing/useSpeechToText.js +49 -0
- package/lib/hooks/natural_language_processing/useTextEmbeddings.d.ts +16 -0
- package/lib/hooks/natural_language_processing/useTextEmbeddings.js +7 -0
- package/lib/hooks/natural_language_processing/useTokenizer.d.ts +17 -0
- package/lib/hooks/natural_language_processing/useTokenizer.js +52 -0
- package/lib/hooks/useModule.js +45 -0
- package/lib/hooks/useNonStaticModule.d.ts +20 -0
- package/lib/hooks/useNonStaticModule.js +49 -0
- package/lib/index.d.ts +48 -0
- package/lib/index.js +58 -0
- package/lib/module/controllers/LLMController.js +6 -10
- package/lib/module/controllers/LLMController.js.map +1 -1
- package/lib/module/hooks/computer_vision/useClassification.js +2 -2
- package/lib/module/hooks/computer_vision/useClassification.js.map +1 -1
- package/lib/module/hooks/computer_vision/useImageEmbeddings.js +2 -2
- package/lib/module/hooks/computer_vision/useImageEmbeddings.js.map +1 -1
- package/lib/module/hooks/computer_vision/useImageSegmentation.js +2 -2
- package/lib/module/hooks/computer_vision/useImageSegmentation.js.map +1 -1
- package/lib/module/hooks/computer_vision/useObjectDetection.js +2 -2
- package/lib/module/hooks/computer_vision/useObjectDetection.js.map +1 -1
- package/lib/module/hooks/computer_vision/useStyleTransfer.js +2 -2
- package/lib/module/hooks/computer_vision/useStyleTransfer.js.map +1 -1
- package/lib/module/hooks/general/useExecutorchModule.js +2 -2
- package/lib/module/hooks/general/useExecutorchModule.js.map +1 -1
- package/lib/module/hooks/natural_language_processing/useTextEmbeddings.js +2 -2
- package/lib/module/hooks/natural_language_processing/useTextEmbeddings.js.map +1 -1
- package/lib/module/hooks/useModule.js +13 -9
- package/lib/module/hooks/useModule.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/modules/BaseModule.js +9 -17
- package/lib/module/modules/BaseModule.js.map +1 -1
- package/lib/module/modules/computer_vision/ClassificationModule.js +2 -2
- package/lib/module/modules/computer_vision/ClassificationModule.js.map +1 -1
- package/lib/module/modules/computer_vision/ImageEmbeddingsModule.js +2 -2
- package/lib/module/modules/computer_vision/ImageEmbeddingsModule.js.map +1 -1
- package/lib/module/modules/computer_vision/ImageSegmentationModule.js +2 -2
- package/lib/module/modules/computer_vision/ImageSegmentationModule.js.map +1 -1
- package/lib/module/modules/computer_vision/ObjectDetectionModule.js +2 -2
- package/lib/module/modules/computer_vision/ObjectDetectionModule.js.map +1 -1
- package/lib/module/modules/computer_vision/StyleTransferModule.js +2 -2
- package/lib/module/modules/computer_vision/StyleTransferModule.js.map +1 -1
- package/lib/module/modules/general/ExecutorchModule.js +2 -2
- package/lib/module/modules/general/ExecutorchModule.js.map +1 -1
- package/lib/module/modules/natural_language_processing/TextEmbeddingsModule.js +2 -2
- package/lib/module/modules/natural_language_processing/TextEmbeddingsModule.js.map +1 -1
- package/lib/module/native/RnExecutorchModules.js +1 -2
- package/lib/module/native/RnExecutorchModules.js.map +1 -1
- package/lib/module/utils/ResourceFetcher.js +6 -8
- package/lib/module/utils/ResourceFetcher.js.map +1 -1
- package/lib/module/utils/ResourceFetcherUtils.js +20 -20
- package/lib/module/utils/ResourceFetcherUtils.js.map +1 -1
- package/lib/module/utils/SpeechToTextModule/ASR.js +3 -3
- package/lib/module/utils/SpeechToTextModule/ASR.js.map +1 -1
- package/lib/modules/BaseModule.js +25 -0
- package/lib/modules/BaseNonStaticModule.js +14 -0
- package/lib/modules/computer_vision/ClassificationModule.d.ts +8 -0
- package/lib/modules/computer_vision/ClassificationModule.js +17 -0
- package/lib/modules/computer_vision/ImageEmbeddingsModule.d.ts +8 -0
- package/lib/modules/computer_vision/ImageEmbeddingsModule.js +17 -0
- package/lib/modules/computer_vision/ImageSegmentationModule.d.ts +11 -0
- package/lib/modules/computer_vision/ImageSegmentationModule.js +27 -0
- package/lib/modules/computer_vision/OCRModule.d.ts +14 -0
- package/lib/modules/computer_vision/OCRModule.js +17 -0
- package/lib/modules/computer_vision/ObjectDetectionModule.d.ts +9 -0
- package/lib/modules/computer_vision/ObjectDetectionModule.js +17 -0
- package/lib/modules/computer_vision/StyleTransferModule.d.ts +8 -0
- package/lib/modules/computer_vision/StyleTransferModule.js +17 -0
- package/lib/modules/computer_vision/VerticalOCRModule.d.ts +14 -0
- package/lib/modules/computer_vision/VerticalOCRModule.js +19 -0
- package/lib/modules/general/ExecutorchModule.d.ts +7 -0
- package/lib/modules/general/ExecutorchModule.js +14 -0
- package/lib/modules/natural_language_processing/LLMModule.d.ts +28 -0
- package/lib/modules/natural_language_processing/LLMModule.js +45 -0
- package/lib/modules/natural_language_processing/SpeechToTextModule.d.ts +24 -0
- package/lib/modules/natural_language_processing/SpeechToTextModule.js +36 -0
- package/lib/modules/natural_language_processing/TextEmbeddingsModule.d.ts +9 -0
- package/lib/modules/natural_language_processing/TextEmbeddingsModule.js +21 -0
- package/lib/modules/natural_language_processing/TokenizerModule.d.ts +12 -0
- package/lib/modules/natural_language_processing/TokenizerModule.js +30 -0
- package/lib/native/NativeETInstaller.js +2 -0
- package/lib/native/NativeOCR.js +2 -0
- package/lib/native/NativeVerticalOCR.js +2 -0
- package/lib/native/RnExecutorchModules.d.ts +7 -0
- package/lib/native/RnExecutorchModules.js +18 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/common.d.ts +32 -0
- package/lib/types/common.js +25 -0
- package/lib/types/imageSegmentation.js +26 -0
- package/lib/types/llm.d.ts +46 -0
- package/lib/types/llm.js +9 -0
- package/lib/types/objectDetection.js +94 -0
- package/lib/types/ocr.js +1 -0
- package/lib/types/stt.d.ts +94 -0
- package/lib/types/stt.js +85 -0
- package/lib/typescript/controllers/LLMController.d.ts +1 -1
- package/lib/typescript/controllers/LLMController.d.ts.map +1 -1
- package/lib/typescript/hooks/useModule.d.ts +8 -5
- package/lib/typescript/hooks/useModule.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/modules/BaseModule.d.ts +7 -6
- package/lib/typescript/modules/BaseModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/ClassificationModule.d.ts +2 -2
- package/lib/typescript/modules/computer_vision/ClassificationModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/ImageEmbeddingsModule.d.ts +2 -2
- package/lib/typescript/modules/computer_vision/ImageEmbeddingsModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/ImageSegmentationModule.d.ts +2 -2
- package/lib/typescript/modules/computer_vision/ImageSegmentationModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/ObjectDetectionModule.d.ts +2 -2
- package/lib/typescript/modules/computer_vision/ObjectDetectionModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/StyleTransferModule.d.ts +2 -2
- package/lib/typescript/modules/computer_vision/StyleTransferModule.d.ts.map +1 -1
- package/lib/typescript/modules/general/ExecutorchModule.d.ts +2 -2
- package/lib/typescript/modules/general/ExecutorchModule.d.ts.map +1 -1
- package/lib/typescript/modules/natural_language_processing/TextEmbeddingsModule.d.ts +2 -2
- package/lib/typescript/modules/natural_language_processing/TextEmbeddingsModule.d.ts.map +1 -1
- package/lib/typescript/native/RnExecutorchModules.d.ts +1 -3
- package/lib/typescript/native/RnExecutorchModules.d.ts.map +1 -1
- package/lib/typescript/utils/ResourceFetcher.d.ts.map +1 -1
- package/lib/typescript/utils/ResourceFetcherUtils.d.ts.map +1 -1
- package/lib/utils/ResourceFetcher.d.ts +24 -0
- package/lib/utils/ResourceFetcher.js +305 -0
- package/lib/utils/ResourceFetcherUtils.d.ts +54 -0
- package/lib/utils/ResourceFetcherUtils.js +127 -0
- package/lib/utils/llm.d.ts +6 -0
- package/lib/utils/llm.js +72 -0
- package/lib/utils/stt.js +21 -0
- package/package.json +1 -2
- package/react-native-executorch.podspec +47 -44
- package/src/controllers/LLMController.ts +8 -13
- package/src/hooks/computer_vision/useClassification.ts +2 -2
- package/src/hooks/computer_vision/useImageEmbeddings.ts +2 -2
- package/src/hooks/computer_vision/useImageSegmentation.ts +2 -2
- package/src/hooks/computer_vision/useObjectDetection.ts +2 -2
- package/src/hooks/computer_vision/useStyleTransfer.ts +2 -2
- package/src/hooks/general/useExecutorchModule.ts +2 -2
- package/src/hooks/natural_language_processing/useTextEmbeddings.ts +2 -2
- package/src/hooks/useModule.ts +23 -13
- package/src/index.ts +3 -2
- package/src/modules/BaseModule.ts +17 -28
- package/src/modules/computer_vision/ClassificationModule.ts +2 -2
- package/src/modules/computer_vision/ImageEmbeddingsModule.ts +2 -2
- package/src/modules/computer_vision/ImageSegmentationModule.ts +2 -2
- package/src/modules/computer_vision/ObjectDetectionModule.ts +2 -2
- package/src/modules/computer_vision/StyleTransferModule.ts +2 -2
- package/src/modules/general/ExecutorchModule.ts +2 -2
- package/src/modules/natural_language_processing/TextEmbeddingsModule.ts +2 -2
- package/src/native/RnExecutorchModules.ts +1 -5
- package/src/utils/ResourceFetcher.ts +9 -7
- package/src/utils/ResourceFetcherUtils.ts +15 -17
- package/src/utils/SpeechToTextModule/ASR.ts +4 -4
- package/third-party/android/libs/cpuinfo/arm64-v8a/libcpuinfo.so +0 -0
- package/third-party/android/libs/pthreadpool/arm64-v8a/libpthreadpool.so +0 -0
- package/third-party/include/cpuinfo/cpuinfo.h +2305 -0
- package/third-party/include/executorch/extension/threadpool/cpuinfo_utils.h +26 -0
- package/third-party/include/executorch/extension/threadpool/threadpool.h +94 -0
- package/third-party/include/pthreadpool/pthreadpool.h +2236 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/LLM.kt +0 -63
- package/ios/ExecutorchLib.xcframework/Info.plist +0 -43
- package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/ETModel.h +0 -27
- package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/HuggingFaceTokenizer.h +0 -14
- package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/LLaMARunner.h +0 -32
- package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Info.plist +0 -0
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/ETModel.h +0 -27
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/HuggingFaceTokenizer.h +0 -14
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/LLaMARunner.h +0 -32
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Info.plist +0 -0
- package/ios/RnExecutorch/LLM.h +0 -5
- package/ios/RnExecutorch/LLM.mm +0 -78
- package/ios/RnExecutorch.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/ios/RnExecutorch.xcodeproj/project.xcworkspace/xcuserdata/jakubchmura.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/ios/RnExecutorch.xcodeproj/xcuserdata/jakubchmura.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
- package/lib/module/modules/BaseNonStaticModule.js +0 -17
- package/lib/module/modules/BaseNonStaticModule.js.map +0 -1
- package/lib/module/native/NativeLLM.js +0 -5
- package/lib/module/native/NativeLLM.js.map +0 -1
- package/lib/typescript/modules/BaseNonStaticModule.d.ts +0 -10
- package/lib/typescript/modules/BaseNonStaticModule.d.ts.map +0 -1
- package/lib/typescript/native/NativeLLM.d.ts +0 -12
- package/lib/typescript/native/NativeLLM.d.ts.map +0 -1
- package/src/modules/BaseNonStaticModule.ts +0 -26
- package/src/native/NativeLLM.ts +0 -14
- package/third-party/include/tokenizers-cpp/tokenizers_c.h +0 -61
- package/third-party/ios/ExecutorchLib/ExecutorchLib/Exported/ETModel.h +0 -27
- package/third-party/ios/ExecutorchLib/ExecutorchLib/Exported/ETModel.mm +0 -249
- package/third-party/ios/ExecutorchLib/ExecutorchLib/Exported/HuggingFaceTokenizer.h +0 -14
- package/third-party/ios/ExecutorchLib/ExecutorchLib/Exported/HuggingFaceTokenizer.mm +0 -80
- package/third-party/ios/ExecutorchLib/ExecutorchLib/Exported/LLaMARunner.h +0 -32
- package/third-party/ios/ExecutorchLib/ExecutorchLib/Exported/LLaMARunner.mm +0 -95
- package/third-party/ios/ExecutorchLib/ExecutorchLib/InputType.h +0 -12
- package/third-party/ios/ExecutorchLib/ExecutorchLib/Utils.hpp +0 -217
- package/third-party/ios/ExecutorchLib/ExecutorchLib/model/Model.cpp +0 -11
- package/third-party/ios/ExecutorchLib/ExecutorchLib/model/Model.h +0 -11
- package/third-party/ios/ExecutorchLib/ExecutorchLib/tokenizer/base64.h +0 -202
- package/third-party/ios/ExecutorchLib/ExecutorchLib/tokenizer/bpe_tokenizer.cpp +0 -313
- package/third-party/ios/ExecutorchLib/ExecutorchLib/tokenizer/bpe_tokenizer.h +0 -57
- package/third-party/ios/ExecutorchLib/ExecutorchLib/tokenizer/llama_tiktoken.cpp +0 -78
- package/third-party/ios/ExecutorchLib/ExecutorchLib/tokenizer/llama_tiktoken.h +0 -23
- package/third-party/ios/ExecutorchLib/ExecutorchLib/tokenizer/tiktoken.cpp +0 -427
- package/third-party/ios/ExecutorchLib/ExecutorchLib/tokenizer/tiktoken.h +0 -87
- package/third-party/ios/ExecutorchLib/ExecutorchLib/tokenizer/tokenizer.h +0 -76
- package/third-party/ios/ExecutorchLib/ExecutorchLib.xcodeproj/project.pbxproj +0 -683
- package/third-party/ios/ExecutorchLib/ExecutorchLib.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/third-party/ios/ExecutorchLib/ExecutorchLib.xcodeproj/project.xcworkspace/xcuserdata/jakubchmura.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- package/third-party/ios/ExecutorchLib/ExecutorchLib.xcodeproj/xcuserdata/jakubchmura.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
- package/third-party/ios/ExecutorchLib/build.sh +0 -44
- package/third-party/ios/ExecutorchLib/frameworks/backend_coreml.xcframework/Info.plist +0 -43
- package/third-party/ios/ExecutorchLib/frameworks/backend_coreml.xcframework/ios-arm64/libbackend_coreml_ios.a +0 -0
- package/third-party/ios/ExecutorchLib/frameworks/backend_coreml.xcframework/ios-arm64-simulator/libbackend_coreml_simulator.a +0 -0
- package/third-party/ios/ExecutorchLib/frameworks/backend_mps.xcframework/Info.plist +0 -43
- package/third-party/ios/ExecutorchLib/frameworks/backend_xnnpack.xcframework/Info.plist +0 -43
- package/third-party/ios/ExecutorchLib/frameworks/backend_xnnpack.xcframework/ios-arm64/libbackend_xnnpack_ios.a +0 -0
- package/third-party/ios/ExecutorchLib/frameworks/backend_xnnpack.xcframework/ios-arm64-simulator/libbackend_xnnpack_simulator.a +0 -0
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/Info.plist +0 -47
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/macros/Export.h +0 -163
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/macros/Macros.h +0 -497
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/BFloat16-inl.h +0 -342
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/BFloat16-math.h +0 -266
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/BFloat16.h +0 -125
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/Half-inl.h +0 -347
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/Half.h +0 -416
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/TypeSafeSignMath.h +0 -133
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/bit_cast.h +0 -43
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/floating_point_utils.h +0 -33
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/c10/util/irange.h +0 -107
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/ExecuTorch.h +0 -13
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/ExecuTorchError.h +0 -16
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/ExecuTorchLog.h +0 -76
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/ExecuTorchModule.h +0 -286
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/ExecuTorchTensor.h +0 -742
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/ExecuTorchValue.h +0 -219
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/extension/module/module.h +0 -492
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/extension/tensor/tensor.h +0 -13
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/extension/tensor/tensor_accessor.h +0 -190
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/extension/tensor/tensor_ptr.h +0 -347
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/extension/tensor/tensor_ptr_maker.h +0 -653
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/backend/backend_execution_context.h +0 -71
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/backend/backend_init_context.h +0 -72
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/backend/interface.h +0 -166
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/array_ref.h +0 -235
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/data_loader.h +0 -136
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/defines.h +0 -20
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/error.h +0 -229
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/evalue.h +0 -521
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/event_tracer.h +0 -565
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/event_tracer_hooks.h +0 -323
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/event_tracer_hooks_delegate.h +0 -197
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/exec_aten/exec_aten.h +0 -147
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/exec_aten/util/dim_order_util.h +0 -263
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/exec_aten/util/scalar_type_util.h +0 -1331
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/exec_aten/util/tensor_dimension_limit.h +0 -21
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/exec_aten/util/tensor_shape_to_c_string.h +0 -69
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/exec_aten/util/tensor_util.h +0 -1250
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/freeable_buffer.h +0 -107
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/hierarchical_allocator.h +0 -107
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/memory_allocator.h +0 -198
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/named_data_map.h +0 -86
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/bfloat16.h +0 -27
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/bfloat16_math.h +0 -14
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/bits_types.h +0 -83
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/macros/Export.h +0 -163
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/macros/Macros.h +0 -497
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/BFloat16-inl.h +0 -342
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/BFloat16-math.h +0 -266
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/BFloat16.h +0 -125
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/Half-inl.h +0 -347
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/Half.h +0 -416
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/TypeSafeSignMath.h +0 -133
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/bit_cast.h +0 -43
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/floating_point_utils.h +0 -33
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/c10/c10/util/irange.h +0 -107
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/complex.h +0 -44
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/device.h +0 -70
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/half.h +0 -27
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/optional.h +0 -36
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/qint_types.h +0 -83
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/scalar.h +0 -110
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/scalar_type.h +0 -154
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/string_view.h +0 -29
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/tensor.h +0 -142
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/tensor_impl.h +0 -261
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/portable_type/tensor_options.h +0 -60
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/result.h +0 -258
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/span.h +0 -93
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/tag.h +0 -71
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/tensor_layout.h +0 -79
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/core/tensor_shape_dynamism.h +0 -39
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/executor/memory_manager.h +0 -113
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/executor/method.h +0 -387
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/executor/method_meta.h +0 -251
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/executor/program.h +0 -320
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/executor/pte_data_map.h +0 -144
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/executor/tensor_parser.h +0 -156
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/kernel/kernel_runtime_context.h +0 -122
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/kernel/operator_registry.h +0 -278
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/abort.h +0 -36
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/assert.h +0 -119
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/clock.h +0 -43
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/compat_unistd.h +0 -75
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/compiler.h +0 -191
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/log.h +0 -177
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/platform.h +0 -133
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/profiler.h +0 -292
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/runtime.h +0 -35
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/system.h +0 -49
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/runtime/platform/types.h +0 -24
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/executorch/schema/extended_header.h +0 -76
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/Headers/module.modulemap +0 -5
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64/libexecutorch_ios.a +0 -0
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/macros/Export.h +0 -163
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/macros/Macros.h +0 -497
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/BFloat16-inl.h +0 -342
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/BFloat16-math.h +0 -266
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/BFloat16.h +0 -125
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/Half-inl.h +0 -347
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/Half.h +0 -416
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/TypeSafeSignMath.h +0 -133
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/bit_cast.h +0 -43
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/floating_point_utils.h +0 -33
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/c10/util/irange.h +0 -107
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/ExecuTorch.h +0 -13
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/ExecuTorchError.h +0 -16
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/ExecuTorchLog.h +0 -76
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/ExecuTorchModule.h +0 -286
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/ExecuTorchTensor.h +0 -742
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/ExecuTorchValue.h +0 -219
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/extension/module/module.h +0 -492
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/extension/tensor/tensor.h +0 -13
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/extension/tensor/tensor_accessor.h +0 -190
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/extension/tensor/tensor_ptr.h +0 -347
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/extension/tensor/tensor_ptr_maker.h +0 -653
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/backend/backend_execution_context.h +0 -71
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/backend/backend_init_context.h +0 -72
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/backend/interface.h +0 -166
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/array_ref.h +0 -235
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/data_loader.h +0 -136
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/defines.h +0 -20
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/error.h +0 -229
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/evalue.h +0 -521
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/event_tracer.h +0 -565
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/event_tracer_hooks.h +0 -323
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/event_tracer_hooks_delegate.h +0 -197
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/exec_aten/exec_aten.h +0 -147
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/exec_aten/util/dim_order_util.h +0 -263
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/exec_aten/util/scalar_type_util.h +0 -1331
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/exec_aten/util/tensor_dimension_limit.h +0 -21
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/exec_aten/util/tensor_shape_to_c_string.h +0 -69
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/exec_aten/util/tensor_util.h +0 -1250
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/freeable_buffer.h +0 -107
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/hierarchical_allocator.h +0 -107
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/memory_allocator.h +0 -198
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/named_data_map.h +0 -86
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/bfloat16.h +0 -27
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/bfloat16_math.h +0 -14
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/bits_types.h +0 -83
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/macros/Export.h +0 -163
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/macros/Macros.h +0 -497
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/BFloat16-inl.h +0 -342
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/BFloat16-math.h +0 -266
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/BFloat16.h +0 -125
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/Half-inl.h +0 -347
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/Half.h +0 -416
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/TypeSafeSignMath.h +0 -133
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/bit_cast.h +0 -43
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/floating_point_utils.h +0 -33
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/c10/c10/util/irange.h +0 -107
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/complex.h +0 -44
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/device.h +0 -70
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/half.h +0 -27
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/optional.h +0 -36
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/qint_types.h +0 -83
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/scalar.h +0 -110
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/scalar_type.h +0 -154
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/string_view.h +0 -29
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/tensor.h +0 -142
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/tensor_impl.h +0 -261
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/portable_type/tensor_options.h +0 -60
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/result.h +0 -258
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/span.h +0 -93
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/tag.h +0 -71
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/tensor_layout.h +0 -79
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/core/tensor_shape_dynamism.h +0 -39
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/executor/memory_manager.h +0 -113
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/executor/method.h +0 -387
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/executor/method_meta.h +0 -251
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/executor/program.h +0 -320
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/executor/pte_data_map.h +0 -144
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/executor/tensor_parser.h +0 -156
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/kernel/kernel_runtime_context.h +0 -122
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/kernel/operator_registry.h +0 -278
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/abort.h +0 -36
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/assert.h +0 -119
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/clock.h +0 -43
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/compat_unistd.h +0 -75
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/compiler.h +0 -191
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/log.h +0 -177
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/platform.h +0 -133
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/profiler.h +0 -292
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/runtime.h +0 -35
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/system.h +0 -49
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/runtime/platform/types.h +0 -24
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/executorch/schema/extended_header.h +0 -76
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/Headers/module.modulemap +0 -5
- package/third-party/ios/ExecutorchLib/frameworks/executorch.xcframework/ios-arm64-simulator/libexecutorch_simulator.a +0 -0
- package/third-party/ios/ExecutorchLib/frameworks/kernels_custom.xcframework/Info.plist +0 -43
- package/third-party/ios/ExecutorchLib/frameworks/kernels_custom.xcframework/ios-arm64/libkernels_custom_ios.a +0 -0
- package/third-party/ios/ExecutorchLib/frameworks/kernels_custom.xcframework/ios-arm64-simulator/libkernels_custom_simulator.a +0 -0
- package/third-party/ios/ExecutorchLib/frameworks/kernels_optimized.xcframework/Info.plist +0 -43
- package/third-party/ios/ExecutorchLib/frameworks/kernels_optimized.xcframework/ios-arm64/libkernels_optimized_ios.a +0 -0
- package/third-party/ios/ExecutorchLib/frameworks/kernels_optimized.xcframework/ios-arm64-simulator/libkernels_optimized_simulator.a +0 -0
- package/third-party/ios/ExecutorchLib/frameworks/kernels_portable.xcframework/Info.plist +0 -43
- package/third-party/ios/ExecutorchLib/frameworks/kernels_portable.xcframework/ios-arm64/libkernels_portable_ios.a +0 -0
- package/third-party/ios/ExecutorchLib/frameworks/kernels_portable.xcframework/ios-arm64-simulator/libkernels_portable_simulator.a +0 -0
- package/third-party/ios/ExecutorchLib/frameworks/kernels_quantized.xcframework/Info.plist +0 -43
- package/third-party/ios/ExecutorchLib/frameworks/kernels_quantized.xcframework/ios-arm64/libkernels_quantized_ios.a +0 -0
- package/third-party/ios/ExecutorchLib/frameworks/kernels_quantized.xcframework/ios-arm64-simulator/libkernels_quantized_simulator.a +0 -0
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/Info.plist +0 -43
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/bitmap256.h +0 -82
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/filtered_re2.h +0 -111
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/pod_array.h +0 -43
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/prefilter.h +0 -130
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/prefilter_tree.h +0 -139
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/prog.h +0 -483
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/re2.h +0 -994
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/regexp.h +0 -692
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/set.h +0 -85
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/sparse_array.h +0 -367
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/sparse_set.h +0 -241
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/stringpiece.h +0 -205
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/unicode_casefold.h +0 -78
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/unicode_groups.h +0 -64
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Headers/walker-inl.h +0 -235
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/Info.plist +0 -26
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64/re2.framework/re2 +0 -0
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/bitmap256.h +0 -82
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/filtered_re2.h +0 -111
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/pod_array.h +0 -43
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/prefilter.h +0 -130
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/prefilter_tree.h +0 -139
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/prog.h +0 -483
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/re2.h +0 -994
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/regexp.h +0 -692
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/set.h +0 -85
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/sparse_array.h +0 -367
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/sparse_set.h +0 -241
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/stringpiece.h +0 -205
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/unicode_casefold.h +0 -78
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/unicode_groups.h +0 -64
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Headers/walker-inl.h +0 -235
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/Info.plist +0 -26
- package/third-party/ios/ExecutorchLib/frameworks/re2.xcframework/ios-arm64-simulator/re2.framework/re2 +0 -0
- /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/irunner.h +0 -0
- /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/runner.cpp +0 -0
- /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/runner.h +0 -0
- /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/stats.h +0 -0
- /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/text_decoder_runner.cpp +0 -0
- /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/text_decoder_runner.h +0 -0
- /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/text_prefiller.cpp +0 -0
- /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/text_prefiller.h +0 -0
- /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/text_token_generator.h +0 -0
- /package/{third-party/ios/ExecutorchLib/ExecutorchLib → common}/runner/util.h +0 -0
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { ResourceFetcher } from '../utils/ResourceFetcher';
|
|
2
|
+
import { ETError, getError } from '../Error';
|
|
3
|
+
import { Template } from '@huggingface/jinja';
|
|
4
|
+
import { DEFAULT_CHAT_CONFIG } from '../constants/llmDefaults';
|
|
5
|
+
import { readAsStringAsync } from 'expo-file-system';
|
|
6
|
+
import { SPECIAL_TOKENS, } from '../types/llm';
|
|
7
|
+
import { parseToolCall } from '../utils/llm';
|
|
8
|
+
import { Logger } from '../common/Logger';
|
|
9
|
+
export class LLMController {
|
|
10
|
+
nativeModule;
|
|
11
|
+
chatConfig = DEFAULT_CHAT_CONFIG;
|
|
12
|
+
toolsConfig;
|
|
13
|
+
tokenizerConfig;
|
|
14
|
+
onToken;
|
|
15
|
+
_response = '';
|
|
16
|
+
_isReady = false;
|
|
17
|
+
_isGenerating = false;
|
|
18
|
+
_messageHistory = [];
|
|
19
|
+
// User callbacks
|
|
20
|
+
tokenCallback;
|
|
21
|
+
responseCallback;
|
|
22
|
+
messageHistoryCallback;
|
|
23
|
+
isReadyCallback;
|
|
24
|
+
isGeneratingCallback;
|
|
25
|
+
constructor({ tokenCallback, responseCallback, messageHistoryCallback, isReadyCallback, isGeneratingCallback, }) {
|
|
26
|
+
if (responseCallback !== undefined) {
|
|
27
|
+
Logger.warn('Passing response callback is deprecated and will be removed in 0.6.0');
|
|
28
|
+
}
|
|
29
|
+
this.tokenCallback = (token) => {
|
|
30
|
+
tokenCallback?.(token);
|
|
31
|
+
};
|
|
32
|
+
this.responseCallback = (response) => {
|
|
33
|
+
this._response = response;
|
|
34
|
+
responseCallback?.(response);
|
|
35
|
+
};
|
|
36
|
+
this.messageHistoryCallback = (messageHistory) => {
|
|
37
|
+
this._messageHistory = messageHistory;
|
|
38
|
+
messageHistoryCallback?.(messageHistory);
|
|
39
|
+
};
|
|
40
|
+
this.isReadyCallback = (isReady) => {
|
|
41
|
+
this._isReady = isReady;
|
|
42
|
+
isReadyCallback?.(isReady);
|
|
43
|
+
};
|
|
44
|
+
this.isGeneratingCallback = (isGenerating) => {
|
|
45
|
+
this._isGenerating = isGenerating;
|
|
46
|
+
isGeneratingCallback?.(isGenerating);
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
get response() {
|
|
50
|
+
return this._response;
|
|
51
|
+
}
|
|
52
|
+
get isReady() {
|
|
53
|
+
return this._isReady;
|
|
54
|
+
}
|
|
55
|
+
get isGenerating() {
|
|
56
|
+
return this._isGenerating;
|
|
57
|
+
}
|
|
58
|
+
get messageHistory() {
|
|
59
|
+
return this._messageHistory;
|
|
60
|
+
}
|
|
61
|
+
async load({ modelSource, tokenizerSource, tokenizerConfigSource, onDownloadProgressCallback, }) {
|
|
62
|
+
// reset inner state when loading new model
|
|
63
|
+
this.responseCallback('');
|
|
64
|
+
this.messageHistoryCallback(this.chatConfig.initialMessageHistory);
|
|
65
|
+
this.isGeneratingCallback(false);
|
|
66
|
+
this.isReadyCallback(false);
|
|
67
|
+
try {
|
|
68
|
+
const tokenizersPromise = ResourceFetcher.fetch(undefined, tokenizerSource, tokenizerConfigSource);
|
|
69
|
+
const modelPromise = ResourceFetcher.fetch(onDownloadProgressCallback, modelSource);
|
|
70
|
+
const [tokenizersResults, modelResult] = await Promise.all([
|
|
71
|
+
tokenizersPromise,
|
|
72
|
+
modelPromise,
|
|
73
|
+
]);
|
|
74
|
+
const tokenizerPath = tokenizersResults?.[0];
|
|
75
|
+
const tokenizerConfigPath = tokenizersResults?.[1];
|
|
76
|
+
const modelPath = modelResult?.[0];
|
|
77
|
+
if (!tokenizerPath || !tokenizerConfigPath || !modelPath) {
|
|
78
|
+
throw new Error('Download interrupted!');
|
|
79
|
+
}
|
|
80
|
+
this.tokenizerConfig = JSON.parse(await readAsStringAsync('file://' + tokenizerConfigPath));
|
|
81
|
+
this.nativeModule = global.loadLLM(modelPath, tokenizerPath);
|
|
82
|
+
this.isReadyCallback(true);
|
|
83
|
+
this.onToken = (data) => {
|
|
84
|
+
if (!data ||
|
|
85
|
+
(SPECIAL_TOKENS.EOS_TOKEN in this.tokenizerConfig &&
|
|
86
|
+
data === this.tokenizerConfig.eos_token) ||
|
|
87
|
+
(SPECIAL_TOKENS.PAD_TOKEN in this.tokenizerConfig &&
|
|
88
|
+
data === this.tokenizerConfig.pad_token)) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
this.tokenCallback(data);
|
|
92
|
+
this.responseCallback(this._response + data);
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
catch (e) {
|
|
96
|
+
this.isReadyCallback(false);
|
|
97
|
+
throw new Error(getError(e));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
setTokenCallback(tokenCallback) {
|
|
101
|
+
this.tokenCallback = tokenCallback;
|
|
102
|
+
}
|
|
103
|
+
configure({ chatConfig, toolsConfig, }) {
|
|
104
|
+
this.chatConfig = { ...DEFAULT_CHAT_CONFIG, ...chatConfig };
|
|
105
|
+
this.toolsConfig = toolsConfig;
|
|
106
|
+
// reset inner state when loading new configuration
|
|
107
|
+
this.responseCallback('');
|
|
108
|
+
this.messageHistoryCallback(this.chatConfig.initialMessageHistory);
|
|
109
|
+
this.isGeneratingCallback(false);
|
|
110
|
+
}
|
|
111
|
+
delete() {
|
|
112
|
+
if (this._isGenerating) {
|
|
113
|
+
throw new Error(getError(ETError.ModelGenerating) +
|
|
114
|
+
'You cannot delete the model now. You need to interrupt first.');
|
|
115
|
+
}
|
|
116
|
+
this.onToken = () => { };
|
|
117
|
+
this.nativeModule.unload();
|
|
118
|
+
this.isReadyCallback(false);
|
|
119
|
+
this.isGeneratingCallback(false);
|
|
120
|
+
}
|
|
121
|
+
async forward(input) {
|
|
122
|
+
if (!this._isReady) {
|
|
123
|
+
throw new Error(getError(ETError.ModuleNotLoaded));
|
|
124
|
+
}
|
|
125
|
+
if (this._isGenerating) {
|
|
126
|
+
throw new Error(getError(ETError.ModelGenerating));
|
|
127
|
+
}
|
|
128
|
+
try {
|
|
129
|
+
this.responseCallback('');
|
|
130
|
+
this.isGeneratingCallback(true);
|
|
131
|
+
await this.nativeModule.generate(input, this.onToken);
|
|
132
|
+
}
|
|
133
|
+
catch (e) {
|
|
134
|
+
throw new Error(getError(e));
|
|
135
|
+
}
|
|
136
|
+
finally {
|
|
137
|
+
this.isGeneratingCallback(false);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
interrupt() {
|
|
141
|
+
this.nativeModule.interrupt();
|
|
142
|
+
}
|
|
143
|
+
async generate(messages, tools) {
|
|
144
|
+
if (!this._isReady) {
|
|
145
|
+
throw new Error(getError(ETError.ModuleNotLoaded));
|
|
146
|
+
}
|
|
147
|
+
if (messages.length === 0) {
|
|
148
|
+
throw new Error(`Empty 'messages' array!`);
|
|
149
|
+
}
|
|
150
|
+
if (messages[0] && messages[0].role !== 'system') {
|
|
151
|
+
Logger.warn(`You are not providing system prompt. You can pass it in the first message using { role: 'system', content: YOUR_PROMPT }. Otherwise prompt from your model's chat template will be used.`);
|
|
152
|
+
}
|
|
153
|
+
const renderedChat = this.applyChatTemplate(messages, this.tokenizerConfig, tools,
|
|
154
|
+
// eslint-disable-next-line camelcase
|
|
155
|
+
{ tools_in_user_message: false, add_generation_prompt: true });
|
|
156
|
+
await this.forward(renderedChat);
|
|
157
|
+
}
|
|
158
|
+
async sendMessage(message) {
|
|
159
|
+
this.messageHistoryCallback([
|
|
160
|
+
...this._messageHistory,
|
|
161
|
+
{ content: message, role: 'user' },
|
|
162
|
+
]);
|
|
163
|
+
const messageHistoryWithPrompt = [
|
|
164
|
+
{ content: this.chatConfig.systemPrompt, role: 'system' },
|
|
165
|
+
...this._messageHistory.slice(-this.chatConfig.contextWindowLength),
|
|
166
|
+
];
|
|
167
|
+
await this.generate(messageHistoryWithPrompt, this.toolsConfig?.tools);
|
|
168
|
+
if (!this.toolsConfig || this.toolsConfig.displayToolCalls) {
|
|
169
|
+
this.messageHistoryCallback([
|
|
170
|
+
...this._messageHistory,
|
|
171
|
+
{ content: this._response, role: 'assistant' },
|
|
172
|
+
]);
|
|
173
|
+
}
|
|
174
|
+
if (!this.toolsConfig) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const toolCalls = parseToolCall(this._response);
|
|
178
|
+
for (const toolCall of toolCalls) {
|
|
179
|
+
this.toolsConfig
|
|
180
|
+
.executeToolCallback(toolCall)
|
|
181
|
+
.then((toolResponse) => {
|
|
182
|
+
if (toolResponse) {
|
|
183
|
+
this.messageHistoryCallback([
|
|
184
|
+
...this._messageHistory,
|
|
185
|
+
{ content: toolResponse, role: 'assistant' },
|
|
186
|
+
]);
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
deleteMessage(index) {
|
|
192
|
+
// we delete referenced message and all messages after it
|
|
193
|
+
// so the model responses that used them are deleted as well
|
|
194
|
+
const newMessageHistory = this._messageHistory.slice(0, index);
|
|
195
|
+
this.messageHistoryCallback(newMessageHistory);
|
|
196
|
+
}
|
|
197
|
+
applyChatTemplate(messages, tokenizerConfig, tools, templateFlags) {
|
|
198
|
+
if (!tokenizerConfig.chat_template) {
|
|
199
|
+
throw Error("Tokenizer config doesn't include chat_template");
|
|
200
|
+
}
|
|
201
|
+
const template = new Template(tokenizerConfig.chat_template);
|
|
202
|
+
const specialTokens = Object.fromEntries(Object.keys(SPECIAL_TOKENS)
|
|
203
|
+
.filter((key) => key in tokenizerConfig)
|
|
204
|
+
.map((key) => [key, tokenizerConfig[key]]));
|
|
205
|
+
const result = template.render({
|
|
206
|
+
messages,
|
|
207
|
+
tools,
|
|
208
|
+
...templateFlags,
|
|
209
|
+
...specialTokens,
|
|
210
|
+
});
|
|
211
|
+
return result;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { symbols } from '../constants/ocr/symbols';
|
|
2
|
+
import { ETError, getError } from '../Error';
|
|
3
|
+
import { OCRNativeModule } from '../native/RnExecutorchModules';
|
|
4
|
+
import { ResourceFetcher } from '../utils/ResourceFetcher';
|
|
5
|
+
export class OCRController {
|
|
6
|
+
nativeModule;
|
|
7
|
+
isReady = false;
|
|
8
|
+
isGenerating = false;
|
|
9
|
+
error = null;
|
|
10
|
+
modelDownloadProgressCallback;
|
|
11
|
+
isReadyCallback;
|
|
12
|
+
isGeneratingCallback;
|
|
13
|
+
errorCallback;
|
|
14
|
+
constructor({ modelDownloadProgressCallback = (_downloadProgress) => { }, isReadyCallback = (_isReady) => { }, isGeneratingCallback = (_isGenerating) => { }, errorCallback = (_error) => { }, }) {
|
|
15
|
+
this.nativeModule = OCRNativeModule;
|
|
16
|
+
this.modelDownloadProgressCallback = modelDownloadProgressCallback;
|
|
17
|
+
this.isReadyCallback = isReadyCallback;
|
|
18
|
+
this.isGeneratingCallback = isGeneratingCallback;
|
|
19
|
+
this.errorCallback = errorCallback;
|
|
20
|
+
}
|
|
21
|
+
loadModel = async (detectorSource, recognizerSources, language) => {
|
|
22
|
+
try {
|
|
23
|
+
if (!detectorSource || Object.keys(recognizerSources).length !== 3)
|
|
24
|
+
return;
|
|
25
|
+
if (!symbols[language]) {
|
|
26
|
+
throw new Error(getError(ETError.LanguageNotSupported));
|
|
27
|
+
}
|
|
28
|
+
this.isReady = false;
|
|
29
|
+
this.isReadyCallback(false);
|
|
30
|
+
const paths = await ResourceFetcher.fetch(this.modelDownloadProgressCallback, detectorSource, recognizerSources.recognizerLarge, recognizerSources.recognizerMedium, recognizerSources.recognizerSmall);
|
|
31
|
+
if (paths === null || paths?.length < 4) {
|
|
32
|
+
throw new Error('Download interrupted!');
|
|
33
|
+
}
|
|
34
|
+
await this.nativeModule.loadModule(paths[0], paths[1], paths[2], paths[3], symbols[language]);
|
|
35
|
+
this.isReady = true;
|
|
36
|
+
this.isReadyCallback(this.isReady);
|
|
37
|
+
}
|
|
38
|
+
catch (e) {
|
|
39
|
+
if (this.errorCallback) {
|
|
40
|
+
this.errorCallback(getError(e));
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
throw new Error(getError(e));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
forward = async (input) => {
|
|
48
|
+
if (!this.isReady) {
|
|
49
|
+
throw new Error(getError(ETError.ModuleNotLoaded));
|
|
50
|
+
}
|
|
51
|
+
if (this.isGenerating) {
|
|
52
|
+
throw new Error(getError(ETError.ModelGenerating));
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
this.isGenerating = true;
|
|
56
|
+
this.isGeneratingCallback(this.isGenerating);
|
|
57
|
+
return await this.nativeModule.forward(input);
|
|
58
|
+
}
|
|
59
|
+
catch (e) {
|
|
60
|
+
throw new Error(getError(e));
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
this.isGenerating = false;
|
|
64
|
+
this.isGeneratingCallback(this.isGenerating);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { MODES, STREAMING_ACTION } from '../constants/sttDefaults';
|
|
2
|
+
import { AvailableModels } from '../types/stt';
|
|
3
|
+
import { ResourceSource } from '../types/common';
|
|
4
|
+
import { SpeechToTextLanguage } from '../types/stt';
|
|
5
|
+
export declare class SpeechToTextController {
|
|
6
|
+
private speechToTextNativeModule;
|
|
7
|
+
sequence: number[];
|
|
8
|
+
isReady: boolean;
|
|
9
|
+
isGenerating: boolean;
|
|
10
|
+
private tokenizerModule;
|
|
11
|
+
private overlapSeconds;
|
|
12
|
+
private windowSize;
|
|
13
|
+
private chunks;
|
|
14
|
+
private seqs;
|
|
15
|
+
private prevSeq;
|
|
16
|
+
private waveform;
|
|
17
|
+
private numOfChunks;
|
|
18
|
+
private streaming;
|
|
19
|
+
private decodedTranscribeCallback;
|
|
20
|
+
private isReadyCallback;
|
|
21
|
+
private isGeneratingCallback;
|
|
22
|
+
private onErrorCallback;
|
|
23
|
+
private config;
|
|
24
|
+
constructor({ transcribeCallback, isReadyCallback, isGeneratingCallback, onErrorCallback, overlapSeconds, windowSize, streamingConfig, }: {
|
|
25
|
+
transcribeCallback: (sequence: string) => void;
|
|
26
|
+
isReadyCallback?: (isReady: boolean) => void;
|
|
27
|
+
isGeneratingCallback?: (isGenerating: boolean) => void;
|
|
28
|
+
onErrorCallback?: (error: Error | undefined) => void;
|
|
29
|
+
overlapSeconds?: number;
|
|
30
|
+
windowSize?: number;
|
|
31
|
+
streamingConfig?: keyof typeof MODES;
|
|
32
|
+
});
|
|
33
|
+
load({ modelName, encoderSource, decoderSource, tokenizerSource, onDownloadProgressCallback, }: {
|
|
34
|
+
modelName: AvailableModels;
|
|
35
|
+
encoderSource?: ResourceSource;
|
|
36
|
+
decoderSource?: ResourceSource;
|
|
37
|
+
tokenizerSource?: ResourceSource;
|
|
38
|
+
onDownloadProgressCallback?: (downloadProgress: number) => void;
|
|
39
|
+
}): Promise<void>;
|
|
40
|
+
configureStreaming(overlapSeconds?: number, windowSize?: number, streamingConfig?: keyof typeof MODES): void;
|
|
41
|
+
private chunkWaveform;
|
|
42
|
+
private resetState;
|
|
43
|
+
private expectedChunkLength;
|
|
44
|
+
private getStartingTokenIds;
|
|
45
|
+
private decodeChunk;
|
|
46
|
+
private handleOverlaps;
|
|
47
|
+
private trimLeft;
|
|
48
|
+
private trimRight;
|
|
49
|
+
private trimSequences;
|
|
50
|
+
private validateAndFixLastChunk;
|
|
51
|
+
private tokenIdsToText;
|
|
52
|
+
transcribe(waveform: number[], audioLanguage?: SpeechToTextLanguage): Promise<string>;
|
|
53
|
+
streamingTranscribe(streamAction: STREAMING_ACTION, waveform?: number[], audioLanguage?: SpeechToTextLanguage): Promise<string>;
|
|
54
|
+
encode(waveform: Float32Array): Promise<null>;
|
|
55
|
+
decode(seq: number[]): Promise<number>;
|
|
56
|
+
}
|
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
import { HAMMING_DIST_THRESHOLD, MODEL_CONFIGS, SECOND, MODES, NUM_TOKENS_TO_TRIM, STREAMING_ACTION, } from '../constants/sttDefaults';
|
|
2
|
+
import { AvailableModels } from '../types/stt';
|
|
3
|
+
import { TokenizerModule } from '../modules/natural_language_processing/TokenizerModule';
|
|
4
|
+
import { ResourceFetcher } from '../utils/ResourceFetcher';
|
|
5
|
+
import { longCommonInfPref } from '../utils/stt';
|
|
6
|
+
import { ETError, getError } from '../Error';
|
|
7
|
+
import { Logger } from '../common/Logger';
|
|
8
|
+
export class SpeechToTextController {
|
|
9
|
+
speechToTextNativeModule;
|
|
10
|
+
sequence = [];
|
|
11
|
+
isReady = false;
|
|
12
|
+
isGenerating = false;
|
|
13
|
+
tokenizerModule;
|
|
14
|
+
overlapSeconds;
|
|
15
|
+
windowSize;
|
|
16
|
+
chunks = [];
|
|
17
|
+
seqs = [];
|
|
18
|
+
prevSeq = [];
|
|
19
|
+
waveform = [];
|
|
20
|
+
numOfChunks = 0;
|
|
21
|
+
streaming = false;
|
|
22
|
+
// User callbacks
|
|
23
|
+
decodedTranscribeCallback;
|
|
24
|
+
isReadyCallback;
|
|
25
|
+
isGeneratingCallback;
|
|
26
|
+
onErrorCallback;
|
|
27
|
+
config;
|
|
28
|
+
constructor({ transcribeCallback, isReadyCallback, isGeneratingCallback, onErrorCallback, overlapSeconds, windowSize, streamingConfig, }) {
|
|
29
|
+
this.tokenizerModule = new TokenizerModule();
|
|
30
|
+
this.decodedTranscribeCallback = async (seq) => transcribeCallback(await this.tokenIdsToText(seq));
|
|
31
|
+
this.isReadyCallback = (isReady) => {
|
|
32
|
+
this.isReady = isReady;
|
|
33
|
+
isReadyCallback?.(isReady);
|
|
34
|
+
};
|
|
35
|
+
this.isGeneratingCallback = (isGenerating) => {
|
|
36
|
+
this.isGenerating = isGenerating;
|
|
37
|
+
isGeneratingCallback?.(isGenerating);
|
|
38
|
+
};
|
|
39
|
+
this.onErrorCallback = (error) => {
|
|
40
|
+
if (onErrorCallback) {
|
|
41
|
+
onErrorCallback(error ? new Error(getError(error)) : undefined);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
throw new Error(getError(error));
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
this.configureStreaming(overlapSeconds, windowSize, streamingConfig || 'balanced');
|
|
49
|
+
}
|
|
50
|
+
async load({ modelName, encoderSource, decoderSource, tokenizerSource, onDownloadProgressCallback, }) {
|
|
51
|
+
this.onErrorCallback(undefined);
|
|
52
|
+
this.isReadyCallback(false);
|
|
53
|
+
this.config = MODEL_CONFIGS[modelName];
|
|
54
|
+
try {
|
|
55
|
+
const tokenizerLoadPromise = this.tokenizerModule.load({
|
|
56
|
+
tokenizerSource: tokenizerSource || this.config.tokenizer.source,
|
|
57
|
+
});
|
|
58
|
+
const pathsPromise = ResourceFetcher.fetch(onDownloadProgressCallback, encoderSource || this.config.sources.encoder, decoderSource || this.config.sources.decoder);
|
|
59
|
+
const [_, encoderDecoderResults] = await Promise.all([
|
|
60
|
+
tokenizerLoadPromise,
|
|
61
|
+
pathsPromise,
|
|
62
|
+
]);
|
|
63
|
+
encoderSource = encoderDecoderResults?.[0];
|
|
64
|
+
decoderSource = encoderDecoderResults?.[1];
|
|
65
|
+
if (!encoderSource || !decoderSource) {
|
|
66
|
+
throw new Error('Download interrupted.');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (e) {
|
|
70
|
+
this.onErrorCallback(e);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
if (modelName === 'whisperMultilingual') {
|
|
74
|
+
// The underlying native class is instantiated based on the name of the model. There is no need to
|
|
75
|
+
// create a separate class for multilingual version of Whisper, since it is the same. We just need
|
|
76
|
+
// the distinction here, in TS, for start tokens and such. If we introduce
|
|
77
|
+
// more versions of Whisper, such as the small one, this should be refactored.
|
|
78
|
+
modelName = AvailableModels.WHISPER;
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
const nativeSpeechToText = await global.loadSpeechToText(encoderSource, decoderSource, modelName);
|
|
82
|
+
this.speechToTextNativeModule = nativeSpeechToText;
|
|
83
|
+
this.isReadyCallback(true);
|
|
84
|
+
}
|
|
85
|
+
catch (e) {
|
|
86
|
+
this.onErrorCallback(e);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
configureStreaming(overlapSeconds, windowSize, streamingConfig) {
|
|
90
|
+
if (streamingConfig) {
|
|
91
|
+
this.windowSize = MODES[streamingConfig].windowSize * SECOND;
|
|
92
|
+
this.overlapSeconds = MODES[streamingConfig].overlapSeconds * SECOND;
|
|
93
|
+
}
|
|
94
|
+
if (streamingConfig && (windowSize || overlapSeconds)) {
|
|
95
|
+
Logger.warn(`windowSize and overlapSeconds overrides values from streamingConfig ${streamingConfig}.`);
|
|
96
|
+
}
|
|
97
|
+
this.windowSize = (windowSize || 0) * SECOND || this.windowSize;
|
|
98
|
+
this.overlapSeconds = (overlapSeconds || 0) * SECOND || this.overlapSeconds;
|
|
99
|
+
if (2 * this.overlapSeconds + this.windowSize >= 30 * SECOND) {
|
|
100
|
+
Logger.warn(`Invalid values for overlapSeconds and/or windowSize provided. Expected windowSize + 2 * overlapSeconds (== ${this.windowSize + 2 * this.overlapSeconds}) <= 30. Setting windowSize to ${30 * SECOND - 2 * this.overlapSeconds}.`);
|
|
101
|
+
this.windowSize = 30 * SECOND - 2 * this.overlapSeconds;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
chunkWaveform() {
|
|
105
|
+
this.numOfChunks = Math.ceil(this.waveform.length / this.windowSize);
|
|
106
|
+
for (let i = 0; i < this.numOfChunks; i++) {
|
|
107
|
+
let chunk = [];
|
|
108
|
+
const left = Math.max(this.windowSize * i - this.overlapSeconds, 0);
|
|
109
|
+
const right = Math.min(this.windowSize * (i + 1) + this.overlapSeconds, this.waveform.length);
|
|
110
|
+
chunk = this.waveform.slice(left, right);
|
|
111
|
+
this.chunks.push(chunk);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
resetState() {
|
|
115
|
+
this.sequence = [];
|
|
116
|
+
this.seqs = [];
|
|
117
|
+
this.waveform = [];
|
|
118
|
+
this.prevSeq = [];
|
|
119
|
+
this.chunks = [];
|
|
120
|
+
this.decodedTranscribeCallback([]);
|
|
121
|
+
this.onErrorCallback(undefined);
|
|
122
|
+
}
|
|
123
|
+
expectedChunkLength() {
|
|
124
|
+
//only first chunk can be of shorter length, for first chunk there are no seqs decoded
|
|
125
|
+
return this.seqs.length
|
|
126
|
+
? this.windowSize + 2 * this.overlapSeconds
|
|
127
|
+
: this.windowSize + this.overlapSeconds;
|
|
128
|
+
}
|
|
129
|
+
async getStartingTokenIds(audioLanguage) {
|
|
130
|
+
// We need different starting token ids based on the multilingualism of the model.
|
|
131
|
+
// The eng version only needs BOS token, while the multilingual one needs:
|
|
132
|
+
// [BOS, LANG, TRANSCRIBE]. Optionally we should also set notimestamps token, as timestamps
|
|
133
|
+
// is not yet supported.
|
|
134
|
+
if (!audioLanguage) {
|
|
135
|
+
return [this.config.tokenizer.bos];
|
|
136
|
+
}
|
|
137
|
+
// FIXME: I should use .getTokenId for the BOS as well, should remove it from config
|
|
138
|
+
const langTokenId = await this.tokenizerModule.tokenToId(`<|${audioLanguage}|>`);
|
|
139
|
+
const transcribeTokenId = await this.tokenizerModule.tokenToId('<|transcribe|>');
|
|
140
|
+
const noTimestampsTokenId = await this.tokenizerModule.tokenToId('<|notimestamps|>');
|
|
141
|
+
const startingTokenIds = [
|
|
142
|
+
this.config.tokenizer.bos,
|
|
143
|
+
langTokenId,
|
|
144
|
+
transcribeTokenId,
|
|
145
|
+
noTimestampsTokenId,
|
|
146
|
+
];
|
|
147
|
+
return startingTokenIds;
|
|
148
|
+
}
|
|
149
|
+
async decodeChunk(chunk, audioLanguage) {
|
|
150
|
+
const seq = await this.getStartingTokenIds(audioLanguage);
|
|
151
|
+
let prevSeqTokenIdx = 0;
|
|
152
|
+
this.prevSeq = this.sequence.slice();
|
|
153
|
+
try {
|
|
154
|
+
await this.encode(new Float32Array(chunk));
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
this.onErrorCallback(new Error(getError(error) + ' encoding error'));
|
|
158
|
+
return [];
|
|
159
|
+
}
|
|
160
|
+
let lastToken = seq.at(-1);
|
|
161
|
+
while (lastToken !== this.config.tokenizer.eos) {
|
|
162
|
+
try {
|
|
163
|
+
lastToken = await this.decode(seq);
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
this.onErrorCallback(new Error(getError(error) + ' decoding error'));
|
|
167
|
+
return [...seq, this.config.tokenizer.eos];
|
|
168
|
+
}
|
|
169
|
+
seq.push(lastToken);
|
|
170
|
+
if (this.seqs.length > 0 &&
|
|
171
|
+
seq.length < this.seqs.at(-1).length &&
|
|
172
|
+
seq.length % 3 !== 0) {
|
|
173
|
+
this.prevSeq.push(this.seqs.at(-1)[prevSeqTokenIdx++]);
|
|
174
|
+
this.decodedTranscribeCallback(this.prevSeq);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return seq;
|
|
178
|
+
}
|
|
179
|
+
async handleOverlaps(seqs) {
|
|
180
|
+
const maxInd = longCommonInfPref(seqs.at(-2), seqs.at(-1), HAMMING_DIST_THRESHOLD);
|
|
181
|
+
this.sequence = [...this.sequence, ...seqs.at(-2).slice(0, maxInd)];
|
|
182
|
+
this.decodedTranscribeCallback(this.sequence);
|
|
183
|
+
return this.sequence.slice();
|
|
184
|
+
}
|
|
185
|
+
trimLeft(numOfTokensToTrim) {
|
|
186
|
+
const idx = this.seqs.length - 1;
|
|
187
|
+
if (this.seqs[idx][0] === this.config.tokenizer.bos) {
|
|
188
|
+
this.seqs[idx] = this.seqs[idx].slice(numOfTokensToTrim);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
trimRight(numOfTokensToTrim) {
|
|
192
|
+
const idx = this.seqs.length - 2;
|
|
193
|
+
if (this.seqs[idx].at(-1) === this.config.tokenizer.eos) {
|
|
194
|
+
this.seqs[idx] = this.seqs[idx].slice(0, -numOfTokensToTrim);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// since we are calling this every time (except first) after a new seq is pushed to this.seqs
|
|
198
|
+
// we can only trim left the last seq and trim right the second to last seq
|
|
199
|
+
async trimSequences(audioLanguage) {
|
|
200
|
+
const numSpecialTokens = (await this.getStartingTokenIds(audioLanguage))
|
|
201
|
+
.length;
|
|
202
|
+
this.trimLeft(numSpecialTokens + NUM_TOKENS_TO_TRIM);
|
|
203
|
+
this.trimRight(numSpecialTokens + NUM_TOKENS_TO_TRIM);
|
|
204
|
+
}
|
|
205
|
+
// if last chunk is too short combine it with second to last to improve quality
|
|
206
|
+
validateAndFixLastChunk() {
|
|
207
|
+
if (this.chunks.length < 2)
|
|
208
|
+
return;
|
|
209
|
+
const lastChunkLength = this.chunks.at(-1).length / SECOND;
|
|
210
|
+
const secondToLastChunkLength = this.chunks.at(-2).length / SECOND;
|
|
211
|
+
if (lastChunkLength < 5 && secondToLastChunkLength + lastChunkLength < 30) {
|
|
212
|
+
this.chunks[this.chunks.length - 2] = [
|
|
213
|
+
...this.chunks.at(-2).slice(0, -this.overlapSeconds * 2),
|
|
214
|
+
...this.chunks.at(-1),
|
|
215
|
+
];
|
|
216
|
+
this.chunks = this.chunks.slice(0, -1);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
async tokenIdsToText(tokenIds) {
|
|
220
|
+
try {
|
|
221
|
+
return await this.tokenizerModule.decode(tokenIds, true);
|
|
222
|
+
}
|
|
223
|
+
catch (e) {
|
|
224
|
+
this.onErrorCallback(new Error(`An error has occurred when decoding the token ids: ${e}`));
|
|
225
|
+
return '';
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
async transcribe(waveform, audioLanguage) {
|
|
229
|
+
try {
|
|
230
|
+
if (!this.isReady)
|
|
231
|
+
throw Error(getError(ETError.ModuleNotLoaded));
|
|
232
|
+
if (this.isGenerating || this.streaming)
|
|
233
|
+
throw Error(getError(ETError.ModelGenerating));
|
|
234
|
+
if (!!audioLanguage !== this.config.isMultilingual)
|
|
235
|
+
throw new Error(getError(ETError.MultilingualConfiguration));
|
|
236
|
+
}
|
|
237
|
+
catch (e) {
|
|
238
|
+
this.onErrorCallback(e);
|
|
239
|
+
return '';
|
|
240
|
+
}
|
|
241
|
+
// Making sure that the error is not set when we get there
|
|
242
|
+
this.isGeneratingCallback(true);
|
|
243
|
+
this.resetState();
|
|
244
|
+
this.waveform = waveform;
|
|
245
|
+
this.chunkWaveform();
|
|
246
|
+
this.validateAndFixLastChunk();
|
|
247
|
+
for (let chunkId = 0; chunkId < this.chunks.length; chunkId++) {
|
|
248
|
+
const seq = await this.decodeChunk(this.chunks.at(chunkId), audioLanguage);
|
|
249
|
+
// whole audio is inside one chunk, no processing required
|
|
250
|
+
if (this.chunks.length === 1) {
|
|
251
|
+
this.sequence = seq;
|
|
252
|
+
this.decodedTranscribeCallback(seq);
|
|
253
|
+
break;
|
|
254
|
+
}
|
|
255
|
+
this.seqs.push(seq);
|
|
256
|
+
if (this.seqs.length < 2)
|
|
257
|
+
continue;
|
|
258
|
+
// Remove starting tokenIds and some additional ones
|
|
259
|
+
await this.trimSequences(audioLanguage);
|
|
260
|
+
this.prevSeq = await this.handleOverlaps(this.seqs);
|
|
261
|
+
// last sequence processed
|
|
262
|
+
// overlaps are already handled, so just append the last seq
|
|
263
|
+
if (this.seqs.length === this.chunks.length) {
|
|
264
|
+
this.sequence = [...this.sequence, ...this.seqs.at(-1)];
|
|
265
|
+
this.decodedTranscribeCallback(this.sequence);
|
|
266
|
+
this.prevSeq = this.sequence;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
const decodedText = await this.tokenIdsToText(this.sequence);
|
|
270
|
+
this.isGeneratingCallback(false);
|
|
271
|
+
return decodedText;
|
|
272
|
+
}
|
|
273
|
+
async streamingTranscribe(streamAction, waveform, audioLanguage) {
|
|
274
|
+
try {
|
|
275
|
+
if (!this.isReady)
|
|
276
|
+
throw Error(getError(ETError.ModuleNotLoaded));
|
|
277
|
+
if (!!audioLanguage !== this.config.isMultilingual)
|
|
278
|
+
throw new Error(getError(ETError.MultilingualConfiguration));
|
|
279
|
+
if (streamAction === STREAMING_ACTION.START &&
|
|
280
|
+
!this.streaming &&
|
|
281
|
+
this.isGenerating)
|
|
282
|
+
throw Error(getError(ETError.ModelGenerating));
|
|
283
|
+
if (streamAction === STREAMING_ACTION.START && this.streaming)
|
|
284
|
+
throw Error(getError(ETError.ModelGenerating));
|
|
285
|
+
if (streamAction === STREAMING_ACTION.DATA && !this.streaming)
|
|
286
|
+
throw Error(getError(ETError.StreamingNotStarted));
|
|
287
|
+
if (streamAction === STREAMING_ACTION.STOP && !this.streaming)
|
|
288
|
+
throw Error(getError(ETError.StreamingNotStarted));
|
|
289
|
+
if (streamAction === STREAMING_ACTION.DATA && !waveform)
|
|
290
|
+
throw new Error(getError(ETError.MissingDataChunk));
|
|
291
|
+
}
|
|
292
|
+
catch (e) {
|
|
293
|
+
this.onErrorCallback(e);
|
|
294
|
+
return '';
|
|
295
|
+
}
|
|
296
|
+
if (streamAction === STREAMING_ACTION.START) {
|
|
297
|
+
this.resetState();
|
|
298
|
+
this.streaming = true;
|
|
299
|
+
this.isGeneratingCallback(true);
|
|
300
|
+
}
|
|
301
|
+
this.waveform = [...this.waveform, ...(waveform || [])];
|
|
302
|
+
// while buffer has at least required size get chunk and decode
|
|
303
|
+
while (this.waveform.length >= this.expectedChunkLength()) {
|
|
304
|
+
const chunk = this.waveform.slice(0, this.windowSize +
|
|
305
|
+
this.overlapSeconds * (1 + Number(this.seqs.length > 0)));
|
|
306
|
+
this.chunks = [chunk]; //save last chunk for STREAMING_ACTION.STOP
|
|
307
|
+
this.waveform = this.waveform.slice(this.windowSize - this.overlapSeconds * Number(this.seqs.length === 0));
|
|
308
|
+
const seq = await this.decodeChunk(chunk, audioLanguage);
|
|
309
|
+
this.seqs.push(seq);
|
|
310
|
+
if (this.seqs.length < 2)
|
|
311
|
+
continue;
|
|
312
|
+
await this.trimSequences(audioLanguage);
|
|
313
|
+
await this.handleOverlaps(this.seqs);
|
|
314
|
+
}
|
|
315
|
+
// got final package, process all remaining waveform data
|
|
316
|
+
// since we run the loop above the waveform has at most one chunk in it
|
|
317
|
+
if (streamAction === STREAMING_ACTION.STOP) {
|
|
318
|
+
// pad remaining waveform data with previous chunk to this.windowSize + 2 * this.overlapSeconds
|
|
319
|
+
const chunk = this.chunks.length
|
|
320
|
+
? [
|
|
321
|
+
...this.chunks[0].slice(0, this.windowSize),
|
|
322
|
+
...this.waveform,
|
|
323
|
+
].slice(-this.windowSize - 2 * this.overlapSeconds)
|
|
324
|
+
: this.waveform;
|
|
325
|
+
this.waveform = [];
|
|
326
|
+
const seq = await this.decodeChunk(chunk, audioLanguage);
|
|
327
|
+
this.seqs.push(seq);
|
|
328
|
+
if (this.seqs.length === 1) {
|
|
329
|
+
this.sequence = this.seqs[0];
|
|
330
|
+
}
|
|
331
|
+
else {
|
|
332
|
+
await this.trimSequences(audioLanguage);
|
|
333
|
+
await this.handleOverlaps(this.seqs);
|
|
334
|
+
this.sequence = [...this.sequence, ...this.seqs.at(-1)];
|
|
335
|
+
}
|
|
336
|
+
this.decodedTranscribeCallback(this.sequence);
|
|
337
|
+
this.isGeneratingCallback(false);
|
|
338
|
+
this.streaming = false;
|
|
339
|
+
}
|
|
340
|
+
const decodedText = await this.tokenIdsToText(this.sequence);
|
|
341
|
+
return decodedText;
|
|
342
|
+
}
|
|
343
|
+
async encode(waveform) {
|
|
344
|
+
return await this.speechToTextNativeModule.encode(waveform);
|
|
345
|
+
}
|
|
346
|
+
async decode(seq) {
|
|
347
|
+
return await this.speechToTextNativeModule.decode(seq);
|
|
348
|
+
}
|
|
349
|
+
}
|