react-native-executorch 0.5.6 → 0.5.8

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.
Files changed (237) hide show
  1. package/android/libs/classes.jar +0 -0
  2. package/android/src/main/cpp/CMakeLists.txt +23 -14
  3. package/common/rnexecutorch/RnExecutorchInstaller.cpp +4 -21
  4. package/common/rnexecutorch/host_objects/ModelHostObject.h +67 -51
  5. package/common/rnexecutorch/models/llm/LLM.cpp +24 -1
  6. package/common/rnexecutorch/models/llm/LLM.h +4 -1
  7. package/common/rnexecutorch/threads/GlobalThreadPool.h +79 -0
  8. package/common/rnexecutorch/threads/HighPerformanceThreadPool.h +364 -0
  9. package/common/rnexecutorch/threads/utils/ThreadUtils.h +29 -0
  10. package/common/runner/runner.cpp +9 -3
  11. package/common/runner/runner.h +4 -3
  12. package/common/runner/text_token_generator.h +28 -10
  13. package/lib/Error.js +53 -0
  14. package/lib/ThreadPool.d.ts +10 -0
  15. package/lib/ThreadPool.js +28 -0
  16. package/lib/common/Logger.d.ts +8 -0
  17. package/lib/common/Logger.js +19 -0
  18. package/lib/constants/directories.js +2 -0
  19. package/lib/constants/llmDefaults.d.ts +6 -0
  20. package/lib/constants/llmDefaults.js +16 -0
  21. package/lib/constants/modelUrls.d.ts +223 -0
  22. package/lib/constants/modelUrls.js +322 -0
  23. package/lib/constants/ocr/models.d.ts +882 -0
  24. package/lib/constants/ocr/models.js +182 -0
  25. package/lib/constants/ocr/symbols.js +139 -0
  26. package/lib/constants/sttDefaults.d.ts +28 -0
  27. package/lib/constants/sttDefaults.js +68 -0
  28. package/lib/controllers/LLMController.d.ts +47 -0
  29. package/lib/controllers/LLMController.js +213 -0
  30. package/lib/controllers/OCRController.js +67 -0
  31. package/lib/controllers/SpeechToTextController.d.ts +56 -0
  32. package/lib/controllers/SpeechToTextController.js +349 -0
  33. package/lib/controllers/VerticalOCRController.js +70 -0
  34. package/lib/hooks/computer_vision/useClassification.d.ts +15 -0
  35. package/lib/hooks/computer_vision/useClassification.js +7 -0
  36. package/lib/hooks/computer_vision/useImageEmbeddings.d.ts +15 -0
  37. package/lib/hooks/computer_vision/useImageEmbeddings.js +7 -0
  38. package/lib/hooks/computer_vision/useImageSegmentation.d.ts +38 -0
  39. package/lib/hooks/computer_vision/useImageSegmentation.js +7 -0
  40. package/lib/hooks/computer_vision/useOCR.d.ts +20 -0
  41. package/lib/hooks/computer_vision/useOCR.js +41 -0
  42. package/lib/hooks/computer_vision/useObjectDetection.d.ts +15 -0
  43. package/lib/hooks/computer_vision/useObjectDetection.js +7 -0
  44. package/lib/hooks/computer_vision/useStyleTransfer.d.ts +15 -0
  45. package/lib/hooks/computer_vision/useStyleTransfer.js +7 -0
  46. package/lib/hooks/computer_vision/useVerticalOCR.d.ts +21 -0
  47. package/lib/hooks/computer_vision/useVerticalOCR.js +43 -0
  48. package/lib/hooks/general/useExecutorchModule.d.ts +13 -0
  49. package/lib/hooks/general/useExecutorchModule.js +7 -0
  50. package/lib/hooks/natural_language_processing/useLLM.d.ts +10 -0
  51. package/lib/hooks/natural_language_processing/useLLM.js +78 -0
  52. package/lib/hooks/natural_language_processing/useSpeechToText.d.ts +27 -0
  53. package/lib/hooks/natural_language_processing/useSpeechToText.js +49 -0
  54. package/lib/hooks/natural_language_processing/useTextEmbeddings.d.ts +16 -0
  55. package/lib/hooks/natural_language_processing/useTextEmbeddings.js +7 -0
  56. package/lib/hooks/natural_language_processing/useTokenizer.d.ts +17 -0
  57. package/lib/hooks/natural_language_processing/useTokenizer.js +52 -0
  58. package/lib/hooks/useModule.js +45 -0
  59. package/lib/hooks/useNonStaticModule.d.ts +20 -0
  60. package/lib/hooks/useNonStaticModule.js +49 -0
  61. package/lib/index.d.ts +48 -0
  62. package/lib/index.js +58 -0
  63. package/lib/module/controllers/LLMController.js +21 -2
  64. package/lib/module/controllers/LLMController.js.map +1 -1
  65. package/lib/module/hooks/natural_language_processing/useLLM.js +6 -2
  66. package/lib/module/hooks/natural_language_processing/useLLM.js.map +1 -1
  67. package/lib/module/modules/natural_language_processing/LLMModule.js +7 -2
  68. package/lib/module/modules/natural_language_processing/LLMModule.js.map +1 -1
  69. package/lib/module/types/llm.js.map +1 -1
  70. package/lib/modules/BaseModule.js +25 -0
  71. package/lib/modules/BaseNonStaticModule.js +14 -0
  72. package/lib/modules/computer_vision/ClassificationModule.d.ts +8 -0
  73. package/lib/modules/computer_vision/ClassificationModule.js +17 -0
  74. package/lib/modules/computer_vision/ImageEmbeddingsModule.d.ts +8 -0
  75. package/lib/modules/computer_vision/ImageEmbeddingsModule.js +17 -0
  76. package/lib/modules/computer_vision/ImageSegmentationModule.d.ts +11 -0
  77. package/lib/modules/computer_vision/ImageSegmentationModule.js +27 -0
  78. package/lib/modules/computer_vision/OCRModule.d.ts +14 -0
  79. package/lib/modules/computer_vision/OCRModule.js +17 -0
  80. package/lib/modules/computer_vision/ObjectDetectionModule.d.ts +9 -0
  81. package/lib/modules/computer_vision/ObjectDetectionModule.js +17 -0
  82. package/lib/modules/computer_vision/StyleTransferModule.d.ts +8 -0
  83. package/lib/modules/computer_vision/StyleTransferModule.js +17 -0
  84. package/lib/modules/computer_vision/VerticalOCRModule.d.ts +14 -0
  85. package/lib/modules/computer_vision/VerticalOCRModule.js +19 -0
  86. package/lib/modules/general/ExecutorchModule.d.ts +7 -0
  87. package/lib/modules/general/ExecutorchModule.js +14 -0
  88. package/lib/modules/natural_language_processing/LLMModule.d.ts +28 -0
  89. package/lib/modules/natural_language_processing/LLMModule.js +45 -0
  90. package/lib/modules/natural_language_processing/SpeechToTextModule.d.ts +24 -0
  91. package/lib/modules/natural_language_processing/SpeechToTextModule.js +36 -0
  92. package/lib/modules/natural_language_processing/TextEmbeddingsModule.d.ts +9 -0
  93. package/lib/modules/natural_language_processing/TextEmbeddingsModule.js +21 -0
  94. package/lib/modules/natural_language_processing/TokenizerModule.d.ts +12 -0
  95. package/lib/modules/natural_language_processing/TokenizerModule.js +30 -0
  96. package/lib/native/NativeETInstaller.js +2 -0
  97. package/lib/native/NativeOCR.js +2 -0
  98. package/lib/native/NativeVerticalOCR.js +2 -0
  99. package/lib/native/RnExecutorchModules.d.ts +7 -0
  100. package/lib/native/RnExecutorchModules.js +18 -0
  101. package/lib/tsconfig.tsbuildinfo +1 -0
  102. package/lib/types/common.d.ts +32 -0
  103. package/lib/types/common.js +25 -0
  104. package/lib/types/imageSegmentation.js +26 -0
  105. package/lib/types/llm.d.ts +46 -0
  106. package/lib/types/llm.js +9 -0
  107. package/lib/types/objectDetection.js +94 -0
  108. package/lib/types/ocr.js +1 -0
  109. package/lib/types/stt.d.ts +94 -0
  110. package/lib/types/stt.js +85 -0
  111. package/lib/typescript/controllers/LLMController.d.ts +4 -2
  112. package/lib/typescript/controllers/LLMController.d.ts.map +1 -1
  113. package/lib/typescript/hooks/natural_language_processing/useLLM.d.ts.map +1 -1
  114. package/lib/typescript/modules/natural_language_processing/LLMModule.d.ts +4 -2
  115. package/lib/typescript/modules/natural_language_processing/LLMModule.d.ts.map +1 -1
  116. package/lib/typescript/types/llm.d.ts +7 -1
  117. package/lib/typescript/types/llm.d.ts.map +1 -1
  118. package/lib/utils/ResourceFetcher.d.ts +24 -0
  119. package/lib/utils/ResourceFetcher.js +305 -0
  120. package/lib/utils/ResourceFetcherUtils.d.ts +54 -0
  121. package/lib/utils/ResourceFetcherUtils.js +127 -0
  122. package/lib/utils/llm.d.ts +6 -0
  123. package/lib/utils/llm.js +72 -0
  124. package/lib/utils/stt.js +21 -0
  125. package/package.json +3 -1
  126. package/react-native-executorch.podspec +12 -31
  127. package/src/controllers/LLMController.ts +29 -5
  128. package/src/hooks/natural_language_processing/useLLM.ts +15 -1
  129. package/src/modules/natural_language_processing/LLMModule.ts +14 -2
  130. package/src/types/llm.ts +8 -0
  131. package/third-party/android/libs/cpuinfo/arm64-v8a/libcpuinfo.so +0 -0
  132. package/third-party/android/libs/executorch/arm64-v8a/libexecutorch.so +0 -0
  133. package/third-party/android/libs/executorch/x86_64/libexecutorch.so +0 -0
  134. package/third-party/android/libs/pthreadpool/arm64-v8a/libpthreadpool.so +0 -0
  135. package/third-party/android/libs/tokenizers-cpp/arm64-v8a/libsentencepiece.a +0 -0
  136. package/third-party/android/libs/tokenizers-cpp/arm64-v8a/libtokenizers_c.a +0 -0
  137. package/third-party/android/libs/tokenizers-cpp/arm64-v8a/libtokenizers_cpp.a +0 -0
  138. package/third-party/android/libs/tokenizers-cpp/x86_64/libsentencepiece.a +0 -0
  139. package/third-party/android/libs/tokenizers-cpp/x86_64/libtokenizers_c.a +0 -0
  140. package/third-party/android/libs/tokenizers-cpp/x86_64/libtokenizers_cpp.a +0 -0
  141. package/third-party/include/c10/macros/Export.h +2 -86
  142. package/third-party/include/c10/macros/Macros.h +28 -5
  143. package/third-party/include/c10/util/BFloat16-inl.h +1 -4
  144. package/third-party/include/c10/util/BFloat16.h +5 -8
  145. package/third-party/include/c10/util/Half.h +5 -0
  146. package/third-party/include/c10/util/bit_cast.h +1 -1
  147. package/third-party/include/c10/util/complex.h +639 -0
  148. package/third-party/include/c10/util/complex_math.h +399 -0
  149. package/third-party/include/c10/util/complex_utils.h +41 -0
  150. package/third-party/include/c10/util/irange.h +2 -2
  151. package/third-party/include/c10/util/overflows.h +95 -0
  152. package/third-party/include/executorch/ExecuTorchError.h +75 -0
  153. package/third-party/include/executorch/ExecuTorchModule.h +115 -11
  154. package/third-party/include/executorch/ExecuTorchTensor.h +731 -51
  155. package/third-party/include/executorch/ExecuTorchValue.h +61 -9
  156. package/third-party/include/executorch/extension/kernel_util/make_boxed_from_unboxed_functor.h +181 -0
  157. package/third-party/include/executorch/extension/kernel_util/meta_programming.h +108 -0
  158. package/third-party/include/executorch/extension/kernel_util/type_list.h +137 -0
  159. package/third-party/include/executorch/extension/module/bundled_module.h +131 -0
  160. package/third-party/include/executorch/extension/module/module.h +46 -20
  161. package/third-party/include/executorch/extension/threadpool/cpuinfo_utils.h +1 -3
  162. package/third-party/include/executorch/extension/threadpool/threadpool.h +1 -3
  163. package/third-party/include/executorch/extension/threadpool/threadpool_guard.h +35 -0
  164. package/third-party/include/executorch/runtime/backend/backend_execution_context.h +3 -3
  165. package/third-party/include/executorch/runtime/backend/backend_init_context.h +12 -6
  166. package/third-party/include/executorch/runtime/backend/backend_option_context.h +34 -0
  167. package/third-party/include/executorch/runtime/backend/interface.h +70 -9
  168. package/third-party/include/executorch/runtime/backend/options.h +206 -0
  169. package/third-party/include/executorch/runtime/core/evalue.h +19 -25
  170. package/third-party/include/executorch/runtime/core/event_tracer.h +32 -17
  171. package/third-party/include/executorch/runtime/core/event_tracer_hooks.h +23 -14
  172. package/third-party/include/executorch/runtime/core/exec_aten/exec_aten.h +32 -9
  173. package/third-party/include/executorch/runtime/core/exec_aten/util/dim_order_util.h +3 -2
  174. package/third-party/include/executorch/runtime/core/exec_aten/util/scalar_type_util.h +43 -75
  175. package/third-party/include/executorch/runtime/core/exec_aten/util/tensor_util.h +88 -87
  176. package/third-party/include/executorch/runtime/core/function_ref.h +100 -0
  177. package/third-party/include/executorch/runtime/core/named_data_map.h +14 -14
  178. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/macros/Export.h +2 -86
  179. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/macros/Macros.h +28 -5
  180. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/BFloat16-inl.h +1 -4
  181. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/BFloat16.h +5 -8
  182. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/Half.h +5 -0
  183. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/bit_cast.h +1 -1
  184. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/complex.h +639 -0
  185. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/complex_math.h +399 -0
  186. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/complex_utils.h +41 -0
  187. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/irange.h +2 -2
  188. package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/overflows.h +95 -0
  189. package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/macros/Export.h +88 -0
  190. package/third-party/include/executorch/runtime/core/portable_type/complex.h +6 -29
  191. package/third-party/include/executorch/runtime/core/portable_type/tensor_impl.h +20 -0
  192. package/third-party/include/executorch/runtime/core/span.h +4 -0
  193. package/third-party/include/executorch/runtime/core/tag.h +19 -0
  194. package/third-party/include/executorch/runtime/core/tensor_layout.h +2 -2
  195. package/third-party/include/executorch/runtime/executor/method.h +15 -3
  196. package/third-party/include/executorch/runtime/executor/method_meta.h +34 -5
  197. package/third-party/include/executorch/runtime/executor/program.h +3 -4
  198. package/third-party/include/executorch/runtime/executor/pte_data_map.h +9 -8
  199. package/third-party/include/executorch/runtime/executor/tensor_parser.h +14 -13
  200. package/third-party/include/executorch/runtime/kernel/kernel_runtime_context.h +5 -5
  201. package/third-party/include/executorch/runtime/kernel/operator_registry.h +21 -19
  202. package/third-party/include/executorch/runtime/platform/compiler.h +8 -0
  203. package/third-party/include/executorch/runtime/platform/platform.h +126 -0
  204. package/third-party/include/headeronly/macros/Export.h +88 -0
  205. package/third-party/include/tokenizers-cpp/tokenizers_c.h +61 -0
  206. package/third-party/include/torch/headeronly/macros/Export.h +88 -0
  207. package/third-party/ios/ExecutorchLib.xcframework/Info.plist +43 -0
  208. package/third-party/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/ExecutorchLib +0 -0
  209. package/third-party/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Info.plist +0 -0
  210. package/third-party/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/ExecutorchLib +0 -0
  211. package/third-party/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Info.plist +0 -0
  212. package/third-party/ios/libs/cpuinfo/libcpuinfo.a +0 -0
  213. package/third-party/ios/libs/pthreadpool/physical-arm64-release/libpthreadpool.a +0 -0
  214. package/third-party/ios/libs/pthreadpool/simulator-arm64-debug/libpthreadpool.a +0 -0
  215. package/ios/libs/executorch/libbackend_coreml_ios.a +0 -0
  216. package/ios/libs/executorch/libbackend_coreml_simulator.a +0 -0
  217. package/ios/libs/executorch/libbackend_mps_ios.a +0 -0
  218. package/ios/libs/executorch/libbackend_mps_simulator.a +0 -0
  219. package/ios/libs/executorch/libbackend_xnnpack_ios.a +0 -0
  220. package/ios/libs/executorch/libbackend_xnnpack_simulator.a +0 -0
  221. package/ios/libs/executorch/libexecutorch_ios.a +0 -0
  222. package/ios/libs/executorch/libexecutorch_simulator.a +0 -0
  223. package/ios/libs/executorch/libkernels_custom_ios.a +0 -0
  224. package/ios/libs/executorch/libkernels_custom_simulator.a +0 -0
  225. package/ios/libs/executorch/libkernels_optimized_ios.a +0 -0
  226. package/ios/libs/executorch/libkernels_optimized_simulator.a +0 -0
  227. package/ios/libs/executorch/libkernels_portable_ios.a +0 -0
  228. package/ios/libs/executorch/libkernels_portable_simulator.a +0 -0
  229. package/ios/libs/executorch/libkernels_quantized_ios.a +0 -0
  230. package/ios/libs/executorch/libkernels_quantized_simulator.a +0 -0
  231. package/third-party/ios/ios.toolchain.cmake +0 -1122
  232. /package/{ios → third-party/ios}/libs/tokenizers-cpp/physical-arm64-release/libsentencepiece.a +0 -0
  233. /package/{ios → third-party/ios}/libs/tokenizers-cpp/physical-arm64-release/libtokenizers_c.a +0 -0
  234. /package/{ios → third-party/ios}/libs/tokenizers-cpp/physical-arm64-release/libtokenizers_cpp.a +0 -0
  235. /package/{ios → third-party/ios}/libs/tokenizers-cpp/simulator-arm64-debug/libsentencepiece.a +0 -0
  236. /package/{ios → third-party/ios}/libs/tokenizers-cpp/simulator-arm64-debug/libtokenizers_c.a +0 -0
  237. /package/{ios → third-party/ios}/libs/tokenizers-cpp/simulator-arm64-debug/libtokenizers_cpp.a +0 -0
@@ -0,0 +1,45 @@
1
+ import { useEffect, useState } from 'react';
2
+ import { ETError, getError } from '../Error';
3
+ export const useModule = ({ module, loadArgs, preventLoad = false, }) => {
4
+ const [error, setError] = useState(null);
5
+ const [isReady, setIsReady] = useState(false);
6
+ const [isGenerating, setIsGenerating] = useState(false);
7
+ const [downloadProgress, setDownloadProgress] = useState(0);
8
+ useEffect(() => {
9
+ const loadModule = async () => {
10
+ try {
11
+ setIsReady(false);
12
+ module.onDownloadProgress(setDownloadProgress);
13
+ await module.load(...loadArgs);
14
+ setIsReady(true);
15
+ }
16
+ catch (err) {
17
+ setError(err.message);
18
+ }
19
+ };
20
+ if (!preventLoad) {
21
+ loadModule();
22
+ }
23
+ // eslint-disable-next-line react-hooks/exhaustive-deps
24
+ }, [...loadArgs, preventLoad]);
25
+ const forward = async (...input) => {
26
+ if (!isReady)
27
+ throw new Error(getError(ETError.ModuleNotLoaded));
28
+ if (isGenerating)
29
+ throw new Error(getError(ETError.ModelGenerating));
30
+ try {
31
+ setIsGenerating(true);
32
+ return await module.forward(...input);
33
+ }
34
+ finally {
35
+ setIsGenerating(false);
36
+ }
37
+ };
38
+ return {
39
+ error,
40
+ isReady,
41
+ isGenerating,
42
+ downloadProgress,
43
+ forward,
44
+ };
45
+ };
@@ -0,0 +1,20 @@
1
+ interface Module {
2
+ load: (...args: any[]) => Promise<void>;
3
+ forward: (...args: any[]) => Promise<any>;
4
+ delete: () => void;
5
+ }
6
+ interface ModuleConstructor<M extends Module> {
7
+ new (): M;
8
+ }
9
+ export declare const useNonStaticModule: <M extends Module, LoadArgs extends Parameters<M["load"]>, ForwardArgs extends Parameters<M["forward"]>, ForwardReturn extends Awaited<ReturnType<M["forward"]>>>({ module, model, preventLoad, }: {
10
+ module: ModuleConstructor<M>;
11
+ model: LoadArgs[0];
12
+ preventLoad?: boolean;
13
+ }) => {
14
+ error: string | null;
15
+ isReady: boolean;
16
+ isGenerating: boolean;
17
+ downloadProgress: number;
18
+ forward: (...input: ForwardArgs) => Promise<ForwardReturn>;
19
+ };
20
+ export {};
@@ -0,0 +1,49 @@
1
+ import { useEffect, useState, useMemo } from 'react';
2
+ import { ETError, getError } from '../Error';
3
+ export const useNonStaticModule = ({ module, model, preventLoad = false, }) => {
4
+ const [error, setError] = useState(null);
5
+ const [isReady, setIsReady] = useState(false);
6
+ const [isGenerating, setIsGenerating] = useState(false);
7
+ const [downloadProgress, setDownloadProgress] = useState(0);
8
+ const moduleInstance = useMemo(() => new module(), [module]);
9
+ useEffect(() => {
10
+ if (preventLoad)
11
+ return;
12
+ (async () => {
13
+ setDownloadProgress(0);
14
+ setError(null);
15
+ try {
16
+ setIsReady(false);
17
+ await moduleInstance.load(model, setDownloadProgress);
18
+ setIsReady(true);
19
+ }
20
+ catch (err) {
21
+ setError(err.message);
22
+ }
23
+ })();
24
+ return () => {
25
+ moduleInstance.delete();
26
+ };
27
+ // eslint-disable-next-line react-hooks/exhaustive-deps
28
+ }, [moduleInstance, ...Object.values(model), preventLoad]);
29
+ const forward = async (...input) => {
30
+ if (!isReady)
31
+ throw new Error(getError(ETError.ModuleNotLoaded));
32
+ if (isGenerating)
33
+ throw new Error(getError(ETError.ModelGenerating));
34
+ try {
35
+ setIsGenerating(true);
36
+ return await moduleInstance.forward(...input);
37
+ }
38
+ finally {
39
+ setIsGenerating(false);
40
+ }
41
+ };
42
+ return {
43
+ error,
44
+ isReady,
45
+ isGenerating,
46
+ downloadProgress,
47
+ forward,
48
+ };
49
+ };
package/lib/index.d.ts ADDED
@@ -0,0 +1,48 @@
1
+ import { SpeechToTextLanguage } from './types/stt';
2
+ declare global {
3
+ var loadStyleTransfer: (source: string) => any;
4
+ var loadImageSegmentation: (source: string) => any;
5
+ var loadClassification: (source: string) => any;
6
+ var loadObjectDetection: (source: string) => any;
7
+ var loadExecutorchModule: (source: string) => any;
8
+ var loadTokenizerModule: (source: string) => any;
9
+ var loadImageEmbeddings: (source: string) => any;
10
+ var loadTextEmbeddings: (modelSource: string, tokenizerSource: string) => any;
11
+ var loadLLM: (modelSource: string, tokenizerSource: string) => any;
12
+ var loadSpeechToText: (encoderSource: string, decoderSource: string, modelName: string) => any;
13
+ }
14
+ export * from './hooks/computer_vision/useClassification';
15
+ export * from './hooks/computer_vision/useObjectDetection';
16
+ export * from './hooks/computer_vision/useStyleTransfer';
17
+ export * from './hooks/computer_vision/useImageSegmentation';
18
+ export * from './hooks/computer_vision/useOCR';
19
+ export * from './hooks/computer_vision/useVerticalOCR';
20
+ export * from './hooks/computer_vision/useImageEmbeddings';
21
+ export * from './hooks/natural_language_processing/useLLM';
22
+ export * from './hooks/natural_language_processing/useSpeechToText';
23
+ export * from './hooks/natural_language_processing/useTextEmbeddings';
24
+ export * from './hooks/natural_language_processing/useTokenizer';
25
+ export * from './hooks/general/useExecutorchModule';
26
+ export * from './modules/computer_vision/ClassificationModule';
27
+ export * from './modules/computer_vision/ObjectDetectionModule';
28
+ export * from './modules/computer_vision/StyleTransferModule';
29
+ export * from './modules/computer_vision/ImageSegmentationModule';
30
+ export * from './modules/computer_vision/OCRModule';
31
+ export * from './modules/computer_vision/VerticalOCRModule';
32
+ export * from './modules/general/ExecutorchModule';
33
+ export * from './modules/computer_vision/ImageEmbeddingsModule';
34
+ export * from './modules/natural_language_processing/LLMModule';
35
+ export * from './modules/natural_language_processing/SpeechToTextModule';
36
+ export * from './modules/natural_language_processing/TextEmbeddingsModule';
37
+ export * from './modules/natural_language_processing/TokenizerModule';
38
+ export * from './utils/ResourceFetcher';
39
+ export * from './utils/llm';
40
+ export * from './types/objectDetection';
41
+ export * from './types/ocr';
42
+ export * from './types/imageSegmentation';
43
+ export * from './types/llm';
44
+ export { SpeechToTextLanguage };
45
+ export * from './constants/modelUrls';
46
+ export * from './constants/ocr/models';
47
+ export * from './constants/llmDefaults';
48
+ export { STREAMING_ACTION, MODES, AvailableModels, } from './constants/sttDefaults';
package/lib/index.js ADDED
@@ -0,0 +1,58 @@
1
+ import { SpeechToTextLanguage } from './types/stt';
2
+ import { ETInstallerNativeModule } from './native/RnExecutorchModules';
3
+ // eslint-disable no-var
4
+ if (global.loadStyleTransfer == null ||
5
+ global.loadImageSegmentation == null ||
6
+ global.loadExecutorchModule == null ||
7
+ global.loadClassification == null ||
8
+ global.loadObjectDetection == null ||
9
+ global.loadTokenizerModule == null ||
10
+ global.loadTextEmbeddings == null ||
11
+ global.loadImageEmbeddings == null ||
12
+ global.loadLLM == null ||
13
+ global.loadSpeechToText == null) {
14
+ if (!ETInstallerNativeModule) {
15
+ throw new Error(`Failed to install react-native-executorch: The native module could not be found.`);
16
+ }
17
+ ETInstallerNativeModule.install();
18
+ }
19
+ // hooks
20
+ export * from './hooks/computer_vision/useClassification';
21
+ export * from './hooks/computer_vision/useObjectDetection';
22
+ export * from './hooks/computer_vision/useStyleTransfer';
23
+ export * from './hooks/computer_vision/useImageSegmentation';
24
+ export * from './hooks/computer_vision/useOCR';
25
+ export * from './hooks/computer_vision/useVerticalOCR';
26
+ export * from './hooks/computer_vision/useImageEmbeddings';
27
+ export * from './hooks/natural_language_processing/useLLM';
28
+ export * from './hooks/natural_language_processing/useSpeechToText';
29
+ export * from './hooks/natural_language_processing/useTextEmbeddings';
30
+ export * from './hooks/natural_language_processing/useTokenizer';
31
+ export * from './hooks/general/useExecutorchModule';
32
+ // modules
33
+ export * from './modules/computer_vision/ClassificationModule';
34
+ export * from './modules/computer_vision/ObjectDetectionModule';
35
+ export * from './modules/computer_vision/StyleTransferModule';
36
+ export * from './modules/computer_vision/ImageSegmentationModule';
37
+ export * from './modules/computer_vision/OCRModule';
38
+ export * from './modules/computer_vision/VerticalOCRModule';
39
+ export * from './modules/general/ExecutorchModule';
40
+ export * from './modules/computer_vision/ImageEmbeddingsModule';
41
+ export * from './modules/natural_language_processing/LLMModule';
42
+ export * from './modules/natural_language_processing/SpeechToTextModule';
43
+ export * from './modules/natural_language_processing/TextEmbeddingsModule';
44
+ export * from './modules/natural_language_processing/TokenizerModule';
45
+ // utils
46
+ export * from './utils/ResourceFetcher';
47
+ export * from './utils/llm';
48
+ // types
49
+ export * from './types/objectDetection';
50
+ export * from './types/ocr';
51
+ export * from './types/imageSegmentation';
52
+ export * from './types/llm';
53
+ export { SpeechToTextLanguage };
54
+ // constants
55
+ export * from './constants/modelUrls';
56
+ export * from './constants/ocr/models';
57
+ export * from './constants/llmDefaults';
58
+ export { STREAMING_ACTION, MODES, AvailableModels, } from './constants/sttDefaults';
@@ -84,7 +84,16 @@ export class LLMController {
84
84
  this.nativeModule = global.loadLLM(modelPath, tokenizerPath);
85
85
  this.isReadyCallback(true);
86
86
  this.onToken = data => {
87
- if (!data || SPECIAL_TOKENS.EOS_TOKEN in this.tokenizerConfig && data === this.tokenizerConfig.eos_token || SPECIAL_TOKENS.PAD_TOKEN in this.tokenizerConfig && data === this.tokenizerConfig.pad_token) {
87
+ if (!data) {
88
+ return;
89
+ }
90
+ if (SPECIAL_TOKENS.EOS_TOKEN in this.tokenizerConfig && data.indexOf(this.tokenizerConfig.eos_token) >= 0) {
91
+ data = data.replaceAll(this.tokenizerConfig.eos_token, '');
92
+ }
93
+ if (SPECIAL_TOKENS.PAD_TOKEN in this.tokenizerConfig && data.indexOf(this.tokenizerConfig.pad_token) >= 0) {
94
+ data = data.replaceAll(this.tokenizerConfig.pad_token, '');
95
+ }
96
+ if (data.length === 0) {
88
97
  return;
89
98
  }
90
99
  this.tokenCallback(data);
@@ -100,13 +109,20 @@ export class LLMController {
100
109
  }
101
110
  configure({
102
111
  chatConfig,
103
- toolsConfig
112
+ toolsConfig,
113
+ generationConfig
104
114
  }) {
105
115
  this.chatConfig = {
106
116
  ...DEFAULT_CHAT_CONFIG,
107
117
  ...chatConfig
108
118
  };
109
119
  this.toolsConfig = toolsConfig;
120
+ if (generationConfig?.outputTokenBatchSize) {
121
+ this.nativeModule.setCountInterval(generationConfig.outputTokenBatchSize);
122
+ }
123
+ if (generationConfig?.batchTimeInterval) {
124
+ this.nativeModule.setTimeInterval(generationConfig.batchTimeInterval);
125
+ }
110
126
 
111
127
  // reset inner state when loading new configuration
112
128
  this.responseCallback('');
@@ -142,6 +158,9 @@ export class LLMController {
142
158
  interrupt() {
143
159
  this.nativeModule.interrupt();
144
160
  }
161
+ getGeneratedTokenCount() {
162
+ return this.nativeModule.getGeneratedTokenCount();
163
+ }
145
164
  async generate(messages, tools) {
146
165
  if (!this._isReady) {
147
166
  throw new Error(getError(ETError.ModuleNotLoaded));
@@ -1 +1 @@
1
- {"version":3,"names":["ResourceFetcher","ETError","getError","Template","DEFAULT_CHAT_CONFIG","readAsStringAsync","SPECIAL_TOKENS","parseToolCall","Logger","LLMController","chatConfig","_response","_isReady","_isGenerating","_messageHistory","constructor","tokenCallback","responseCallback","messageHistoryCallback","isReadyCallback","isGeneratingCallback","undefined","warn","token","response","messageHistory","isReady","isGenerating","load","modelSource","tokenizerSource","tokenizerConfigSource","onDownloadProgressCallback","initialMessageHistory","tokenizersPromise","fetch","modelPromise","tokenizersResults","modelResult","Promise","all","tokenizerPath","tokenizerConfigPath","modelPath","Error","tokenizerConfig","JSON","parse","nativeModule","global","loadLLM","onToken","data","EOS_TOKEN","eos_token","PAD_TOKEN","pad_token","e","setTokenCallback","configure","toolsConfig","delete","ModelGenerating","unload","forward","input","ModuleNotLoaded","generate","interrupt","messages","tools","length","role","renderedChat","applyChatTemplate","tools_in_user_message","add_generation_prompt","sendMessage","message","content","messageHistoryWithPrompt","systemPrompt","slice","contextWindowLength","displayToolCalls","toolCalls","toolCall","executeToolCallback","then","toolResponse","deleteMessage","index","newMessageHistory","templateFlags","chat_template","template","specialTokens","Object","fromEntries","keys","filter","key","map","result","render"],"sourceRoot":"../../../src","sources":["controllers/LLMController.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ResourceFetcher","ETError","getError","Template","DEFAULT_CHAT_CONFIG","readAsStringAsync","SPECIAL_TOKENS","parseToolCall","Logger","LLMController","chatConfig","_response","_isReady","_isGenerating","_messageHistory","constructor","tokenCallback","responseCallback","messageHistoryCallback","isReadyCallback","isGeneratingCallback","undefined","warn","token","response","messageHistory","isReady","isGenerating","load","modelSource","tokenizerSource","tokenizerConfigSource","onDownloadProgressCallback","initialMessageHistory","tokenizersPromise","fetch","modelPromise","tokenizersResults","modelResult","Promise","all","tokenizerPath","tokenizerConfigPath","modelPath","Error","tokenizerConfig","JSON","parse","nativeModule","global","loadLLM","onToken","data","EOS_TOKEN","indexOf","eos_token","replaceAll","PAD_TOKEN","pad_token","length","e","setTokenCallback","configure","toolsConfig","generationConfig","outputTokenBatchSize","setCountInterval","batchTimeInterval","setTimeInterval","delete","ModelGenerating","unload","forward","input","ModuleNotLoaded","generate","interrupt","getGeneratedTokenCount","messages","tools","role","renderedChat","applyChatTemplate","tools_in_user_message","add_generation_prompt","sendMessage","message","content","messageHistoryWithPrompt","systemPrompt","slice","contextWindowLength","displayToolCalls","toolCalls","toolCall","executeToolCallback","then","toolResponse","deleteMessage","index","newMessageHistory","templateFlags","chat_template","template","specialTokens","Object","fromEntries","keys","filter","key","map","result","render"],"sourceRoot":"../../../src","sources":["controllers/LLMController.ts"],"mappings":"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","ignoreList":[]}
@@ -51,10 +51,12 @@ export const useLLM = ({
51
51
  // memoization of returned functions
52
52
  const configure = useCallback(({
53
53
  chatConfig,
54
- toolsConfig
54
+ toolsConfig,
55
+ generationConfig
55
56
  }) => controllerInstance.configure({
56
57
  chatConfig,
57
- toolsConfig
58
+ toolsConfig,
59
+ generationConfig
58
60
  }), [controllerInstance]);
59
61
  const generate = useCallback((messages, tools) => {
60
62
  setResponse('');
@@ -66,6 +68,7 @@ export const useLLM = ({
66
68
  }, [controllerInstance]);
67
69
  const deleteMessage = useCallback(index => controllerInstance.deleteMessage(index), [controllerInstance]);
68
70
  const interrupt = useCallback(() => controllerInstance.interrupt(), [controllerInstance]);
71
+ const getGeneratedTokenCount = useCallback(() => controllerInstance.getGeneratedTokenCount(), [controllerInstance]);
69
72
  return {
70
73
  messageHistory,
71
74
  response,
@@ -74,6 +77,7 @@ export const useLLM = ({
74
77
  isGenerating,
75
78
  downloadProgress,
76
79
  error,
80
+ getGeneratedTokenCount: getGeneratedTokenCount,
77
81
  configure: configure,
78
82
  generate: generate,
79
83
  sendMessage: sendMessage,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useState","LLMController","useLLM","model","preventLoad","token","setToken","response","setResponse","messageHistory","setMessageHistory","isReady","setIsReady","isGenerating","setIsGenerating","downloadProgress","setDownloadProgress","error","setError","tokenCallback","newToken","prevResponse","controllerInstance","messageHistoryCallback","isReadyCallback","isGeneratingCallback","load","modelSource","tokenizerSource","tokenizerConfigSource","onDownloadProgressCallback","e","delete","configure","chatConfig","toolsConfig","generate","messages","tools","sendMessage","message","deleteMessage","index","interrupt"],"sourceRoot":"../../../../src","sources":["hooks/natural_language_processing/useLLM.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useState","LLMController","useLLM","model","preventLoad","token","setToken","response","setResponse","messageHistory","setMessageHistory","isReady","setIsReady","isGenerating","setIsGenerating","downloadProgress","setDownloadProgress","error","setError","tokenCallback","newToken","prevResponse","controllerInstance","messageHistoryCallback","isReadyCallback","isGeneratingCallback","load","modelSource","tokenizerSource","tokenizerConfigSource","onDownloadProgressCallback","e","delete","configure","chatConfig","toolsConfig","generationConfig","generate","messages","tools","sendMessage","message","deleteMessage","index","interrupt","getGeneratedTokenCount"],"sourceRoot":"../../../../src","sources":["hooks/natural_language_processing/useLLM.ts"],"mappings":"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","ignoreList":[]}
@@ -26,11 +26,13 @@ export class LLMModule {
26
26
  }
27
27
  configure({
28
28
  chatConfig,
29
- toolsConfig
29
+ toolsConfig,
30
+ generationConfig
30
31
  }) {
31
32
  this.controller.configure({
32
33
  chatConfig,
33
- toolsConfig
34
+ toolsConfig,
35
+ generationConfig
34
36
  });
35
37
  }
36
38
  async forward(input) {
@@ -52,6 +54,9 @@ export class LLMModule {
52
54
  interrupt() {
53
55
  this.controller.interrupt();
54
56
  }
57
+ getGeneratedTokenCount() {
58
+ return this.controller.getGeneratedTokenCount();
59
+ }
55
60
  delete() {
56
61
  this.controller.delete();
57
62
  }
@@ -1 +1 @@
1
- {"version":3,"names":["LLMController","LLMModule","constructor","tokenCallback","responseCallback","messageHistoryCallback","controller","load","model","onDownloadProgressCallback","setTokenCallback","configure","chatConfig","toolsConfig","forward","input","response","generate","messages","tools","sendMessage","message","messageHistory","deleteMessage","index","interrupt","delete"],"sourceRoot":"../../../../src","sources":["modules/natural_language_processing/LLMModule.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,iCAAiC;AAI/D,OAAO,MAAMC,SAAS,CAAC;EAGrBC,WAAWA,CAAC;IACVC,aAAa;IACbC,gBAAgB;IAChBC;EAKF,CAAC,GAAG,CAAC,CAAC,EAAE;IACN,IAAI,CAACC,UAAU,GAAG,IAAIN,aAAa,CAAC;MAClCG,aAAa;MACbC,gBAAgB;MAChBC;IACF,CAAC,CAAC;EACJ;EAEA,MAAME,IAAIA,CACRC,KAIC,EACDC,0BAAsD,GAAGA,CAAA,KAAM,CAAC,CAAC,EACjE;IACA,MAAM,IAAI,CAACH,UAAU,CAACC,IAAI,CAAC;MACzB,GAAGC,KAAK;MACRC;IACF,CAAC,CAAC;EACJ;EAEAC,gBAAgBA,CAAC;IACfP;EAGF,CAAC,EAAE;IACD,IAAI,CAACG,UAAU,CAACI,gBAAgB,CAACP,aAAa,CAAC;EACjD;EAEAQ,SAASA,CAAC;IACRC,UAAU;IACVC;EAIF,CAAC,EAAE;IACD,IAAI,CAACP,UAAU,CAACK,SAAS,CAAC;MAAEC,UAAU;MAAEC;IAAY,CAAC,CAAC;EACxD;EAEA,MAAMC,OAAOA,CAACC,KAAa,EAAmB;IAC5C,MAAM,IAAI,CAACT,UAAU,CAACQ,OAAO,CAACC,KAAK,CAAC;IACpC,OAAO,IAAI,CAACT,UAAU,CAACU,QAAQ;EACjC;EAEA,MAAMC,QAAQA,CAACC,QAAmB,EAAEC,KAAiB,EAAmB;IACtE,MAAM,IAAI,CAACb,UAAU,CAACW,QAAQ,CAACC,QAAQ,EAAEC,KAAK,CAAC;IAC/C,OAAO,IAAI,CAACb,UAAU,CAACU,QAAQ;EACjC;EAEA,MAAMI,WAAWA,CAACC,OAAe,EAAsB;IACrD,MAAM,IAAI,CAACf,UAAU,CAACc,WAAW,CAACC,OAAO,CAAC;IAC1C,OAAO,IAAI,CAACf,UAAU,CAACgB,cAAc;EACvC;EAEAC,aAAaA,CAACC,KAAa,EAAa;IACtC,IAAI,CAAClB,UAAU,CAACiB,aAAa,CAACC,KAAK,CAAC;IACpC,OAAO,IAAI,CAAClB,UAAU,CAACgB,cAAc;EACvC;EAEAG,SAASA,CAAA,EAAG;IACV,IAAI,CAACnB,UAAU,CAACmB,SAAS,CAAC,CAAC;EAC7B;EAEAC,MAAMA,CAAA,EAAG;IACP,IAAI,CAACpB,UAAU,CAACoB,MAAM,CAAC,CAAC;EAC1B;AACF","ignoreList":[]}
1
+ {"version":3,"names":["LLMController","LLMModule","constructor","tokenCallback","responseCallback","messageHistoryCallback","controller","load","model","onDownloadProgressCallback","setTokenCallback","configure","chatConfig","toolsConfig","generationConfig","forward","input","response","generate","messages","tools","sendMessage","message","messageHistory","deleteMessage","index","interrupt","getGeneratedTokenCount","delete"],"sourceRoot":"../../../../src","sources":["modules/natural_language_processing/LLMModule.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,iCAAiC;AAU/D,OAAO,MAAMC,SAAS,CAAC;EAGrBC,WAAWA,CAAC;IACVC,aAAa;IACbC,gBAAgB;IAChBC;EAKF,CAAC,GAAG,CAAC,CAAC,EAAE;IACN,IAAI,CAACC,UAAU,GAAG,IAAIN,aAAa,CAAC;MAClCG,aAAa;MACbC,gBAAgB;MAChBC;IACF,CAAC,CAAC;EACJ;EAEA,MAAME,IAAIA,CACRC,KAIC,EACDC,0BAAsD,GAAGA,CAAA,KAAM,CAAC,CAAC,EACjE;IACA,MAAM,IAAI,CAACH,UAAU,CAACC,IAAI,CAAC;MACzB,GAAGC,KAAK;MACRC;IACF,CAAC,CAAC;EACJ;EAEAC,gBAAgBA,CAAC;IACfP;EAGF,CAAC,EAAE;IACD,IAAI,CAACG,UAAU,CAACI,gBAAgB,CAACP,aAAa,CAAC;EACjD;EAEAQ,SAASA,CAAC;IACRC,UAAU;IACVC,WAAW;IACXC;EAKF,CAAC,EAAE;IACD,IAAI,CAACR,UAAU,CAACK,SAAS,CAAC;MAAEC,UAAU;MAAEC,WAAW;MAAEC;IAAiB,CAAC,CAAC;EAC1E;EAEA,MAAMC,OAAOA,CAACC,KAAa,EAAmB;IAC5C,MAAM,IAAI,CAACV,UAAU,CAACS,OAAO,CAACC,KAAK,CAAC;IACpC,OAAO,IAAI,CAACV,UAAU,CAACW,QAAQ;EACjC;EAEA,MAAMC,QAAQA,CAACC,QAAmB,EAAEC,KAAiB,EAAmB;IACtE,MAAM,IAAI,CAACd,UAAU,CAACY,QAAQ,CAACC,QAAQ,EAAEC,KAAK,CAAC;IAC/C,OAAO,IAAI,CAACd,UAAU,CAACW,QAAQ;EACjC;EAEA,MAAMI,WAAWA,CAACC,OAAe,EAAsB;IACrD,MAAM,IAAI,CAAChB,UAAU,CAACe,WAAW,CAACC,OAAO,CAAC;IAC1C,OAAO,IAAI,CAAChB,UAAU,CAACiB,cAAc;EACvC;EAEAC,aAAaA,CAACC,KAAa,EAAa;IACtC,IAAI,CAACnB,UAAU,CAACkB,aAAa,CAACC,KAAK,CAAC;IACpC,OAAO,IAAI,CAACnB,UAAU,CAACiB,cAAc;EACvC;EAEAG,SAASA,CAAA,EAAG;IACV,IAAI,CAACpB,UAAU,CAACoB,SAAS,CAAC,CAAC;EAC7B;EAEAC,sBAAsBA,CAAA,EAAG;IACvB,OAAO,IAAI,CAACrB,UAAU,CAACqB,sBAAsB,CAAC,CAAC;EACjD;EAEAC,MAAMA,CAAA,EAAG;IACP,IAAI,CAACtB,UAAU,CAACsB,MAAM,CAAC,CAAC;EAC1B;AACF","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["SPECIAL_TOKENS","BOS_TOKEN","EOS_TOKEN","UNK_TOKEN","SEP_TOKEN","PAD_TOKEN","CLS_TOKEN","MASK_TOKEN"],"sourceRoot":"../../../src","sources":["types/llm.ts"],"mappings":";;AAiCA;AACA;;AAeA,OAAO,MAAMA,cAAc,GAAG;EAC5BC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,UAAU,EAAE;AACd,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["SPECIAL_TOKENS","BOS_TOKEN","EOS_TOKEN","UNK_TOKEN","SEP_TOKEN","PAD_TOKEN","CLS_TOKEN","MASK_TOKEN"],"sourceRoot":"../../../src","sources":["types/llm.ts"],"mappings":";;AAoCA;AACA;;AAoBA,OAAO,MAAMA,cAAc,GAAG;EAC5BC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,UAAU,EAAE;AACd,CAAC","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ import { ResourceFetcher } from '../utils/ResourceFetcher';
2
+ import { getError } from '../Error';
3
+ export class BaseModule {
4
+ static nativeModule;
5
+ static onDownloadProgressCallback = () => { };
6
+ static async load(sources, ...loadArgs // this can be used in derived classes to pass extra args to load method
7
+ ) {
8
+ try {
9
+ const paths = await ResourceFetcher.fetch(this.onDownloadProgressCallback, ...sources);
10
+ if (paths === null || paths.length < sources.length) {
11
+ throw new Error('Download interrupted.');
12
+ }
13
+ await this.nativeModule.loadModule(...paths, ...loadArgs);
14
+ }
15
+ catch (error) {
16
+ throw new Error(getError(error));
17
+ }
18
+ }
19
+ static async forward(..._args) {
20
+ throw new Error('forward method is not implemented in the BaseModule class. Please implement it in the derived class.');
21
+ }
22
+ static onDownloadProgress(callback) {
23
+ this.onDownloadProgressCallback = callback;
24
+ }
25
+ }
@@ -0,0 +1,14 @@
1
+ export class BaseNonStaticModule {
2
+ nativeModule = null;
3
+ async forwardET(inputTensor) {
4
+ return await this.nativeModule.forward(inputTensor);
5
+ }
6
+ async getInputShape(methodName, index) {
7
+ return this.nativeModule.getInputShape(methodName, index);
8
+ }
9
+ delete() {
10
+ if (this.nativeModule !== null) {
11
+ this.nativeModule.unload();
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,8 @@
1
+ import { ResourceSource } from '../../types/common';
2
+ import { BaseNonStaticModule } from '../BaseNonStaticModule';
3
+ export declare class ClassificationModule extends BaseNonStaticModule {
4
+ load(model: {
5
+ modelSource: ResourceSource;
6
+ }, onDownloadProgressCallback?: (progress: number) => void): Promise<void>;
7
+ forward(imageSource: string): Promise<any>;
8
+ }
@@ -0,0 +1,17 @@
1
+ import { ResourceFetcher } from '../../utils/ResourceFetcher';
2
+ import { ETError, getError } from '../../Error';
3
+ import { BaseNonStaticModule } from '../BaseNonStaticModule';
4
+ export class ClassificationModule extends BaseNonStaticModule {
5
+ async load(model, onDownloadProgressCallback = () => { }) {
6
+ const paths = await ResourceFetcher.fetch(onDownloadProgressCallback, model.modelSource);
7
+ if (paths === null || paths.length < 1) {
8
+ throw new Error('Download interrupted.');
9
+ }
10
+ this.nativeModule = global.loadClassification(paths[0] || '');
11
+ }
12
+ async forward(imageSource) {
13
+ if (this.nativeModule == null)
14
+ throw new Error(getError(ETError.ModuleNotLoaded));
15
+ return await this.nativeModule.generate(imageSource);
16
+ }
17
+ }
@@ -0,0 +1,8 @@
1
+ import { ResourceSource } from '../../types/common';
2
+ import { BaseNonStaticModule } from '../BaseNonStaticModule';
3
+ export declare class ImageEmbeddingsModule extends BaseNonStaticModule {
4
+ load(model: {
5
+ modelSource: ResourceSource;
6
+ }, onDownloadProgressCallback?: (progress: number) => void): Promise<void>;
7
+ forward(imageSource: string): Promise<Float32Array>;
8
+ }
@@ -0,0 +1,17 @@
1
+ import { ResourceFetcher } from '../../utils/ResourceFetcher';
2
+ import { ETError, getError } from '../../Error';
3
+ import { BaseNonStaticModule } from '../BaseNonStaticModule';
4
+ export class ImageEmbeddingsModule extends BaseNonStaticModule {
5
+ async load(model, onDownloadProgressCallback = () => { }) {
6
+ const paths = await ResourceFetcher.fetch(onDownloadProgressCallback, model.modelSource);
7
+ if (paths === null || paths.length < 1) {
8
+ throw new Error('Download interrupted.');
9
+ }
10
+ this.nativeModule = global.loadImageEmbeddings(paths[0] || '');
11
+ }
12
+ async forward(imageSource) {
13
+ if (this.nativeModule == null)
14
+ throw new Error(getError(ETError.ModuleNotLoaded));
15
+ return new Float32Array(await this.nativeModule.generate(imageSource));
16
+ }
17
+ }
@@ -0,0 +1,11 @@
1
+ import { ResourceSource } from '../../types/common';
2
+ import { DeeplabLabel } from '../../types/imageSegmentation';
3
+ import { BaseNonStaticModule } from '../BaseNonStaticModule';
4
+ export declare class ImageSegmentationModule extends BaseNonStaticModule {
5
+ load(model: {
6
+ modelSource: ResourceSource;
7
+ }, onDownloadProgressCallback?: (progress: number) => void): Promise<void>;
8
+ forward(imageSource: string, classesOfInterest?: DeeplabLabel[], resize?: boolean): Promise<{
9
+ [key in DeeplabLabel]?: number[];
10
+ }>;
11
+ }
@@ -0,0 +1,27 @@
1
+ import { ResourceFetcher } from '../../utils/ResourceFetcher';
2
+ import { DeeplabLabel } from '../../types/imageSegmentation';
3
+ import { ETError, getError } from '../../Error';
4
+ import { BaseNonStaticModule } from '../BaseNonStaticModule';
5
+ export class ImageSegmentationModule extends BaseNonStaticModule {
6
+ async load(model, onDownloadProgressCallback = () => { }) {
7
+ const paths = await ResourceFetcher.fetch(onDownloadProgressCallback, model.modelSource);
8
+ if (paths === null || paths.length < 1) {
9
+ throw new Error('Download interrupted.');
10
+ }
11
+ this.nativeModule = global.loadImageSegmentation(paths[0] || '');
12
+ }
13
+ async forward(imageSource, classesOfInterest, resize) {
14
+ if (this.nativeModule == null) {
15
+ throw new Error(getError(ETError.ModuleNotLoaded));
16
+ }
17
+ const stringDict = await this.nativeModule.generate(imageSource, (classesOfInterest || []).map((label) => DeeplabLabel[label]), resize || false);
18
+ let enumDict = {};
19
+ for (const key in stringDict) {
20
+ if (key in DeeplabLabel) {
21
+ const enumKey = DeeplabLabel[key];
22
+ enumDict[enumKey] = stringDict[key];
23
+ }
24
+ }
25
+ return enumDict;
26
+ }
27
+ }
@@ -0,0 +1,14 @@
1
+ import { OCRController } from '../../controllers/OCRController';
2
+ import { ResourceSource } from '../../types/common';
3
+ import { OCRLanguage } from '../../types/ocr';
4
+ export declare class OCRModule {
5
+ static module: OCRController;
6
+ static load(model: {
7
+ detectorSource: ResourceSource;
8
+ recognizerLarge: ResourceSource;
9
+ recognizerMedium: ResourceSource;
10
+ recognizerSmall: ResourceSource;
11
+ language: OCRLanguage;
12
+ }, onDownloadProgressCallback?: (progress: number) => void): Promise<void>;
13
+ static forward(input: string): Promise<import("../../types/ocr").OCRDetection[]>;
14
+ }
@@ -0,0 +1,17 @@
1
+ import { OCRController } from '../../controllers/OCRController';
2
+ export class OCRModule {
3
+ static module;
4
+ static async load(model, onDownloadProgressCallback = () => { }) {
5
+ this.module = new OCRController({
6
+ modelDownloadProgressCallback: onDownloadProgressCallback,
7
+ });
8
+ await this.module.loadModel(model.detectorSource, {
9
+ recognizerLarge: model.recognizerLarge,
10
+ recognizerMedium: model.recognizerMedium,
11
+ recognizerSmall: model.recognizerSmall,
12
+ }, model.language);
13
+ }
14
+ static async forward(input) {
15
+ return await this.module.forward(input);
16
+ }
17
+ }
@@ -0,0 +1,9 @@
1
+ import { ResourceSource } from '../../types/common';
2
+ import { Detection } from '../../types/objectDetection';
3
+ import { BaseNonStaticModule } from '../BaseNonStaticModule';
4
+ export declare class ObjectDetectionModule extends BaseNonStaticModule {
5
+ load(model: {
6
+ modelSource: ResourceSource;
7
+ }, onDownloadProgressCallback?: (progress: number) => void): Promise<void>;
8
+ forward(imageSource: string, detectionThreshold?: number): Promise<Detection[]>;
9
+ }
@@ -0,0 +1,17 @@
1
+ import { ResourceFetcher } from '../../utils/ResourceFetcher';
2
+ import { ETError, getError } from '../../Error';
3
+ import { BaseNonStaticModule } from '../BaseNonStaticModule';
4
+ export class ObjectDetectionModule extends BaseNonStaticModule {
5
+ async load(model, onDownloadProgressCallback = () => { }) {
6
+ const paths = await ResourceFetcher.fetch(onDownloadProgressCallback, model.modelSource);
7
+ if (paths === null || paths.length < 1) {
8
+ throw new Error('Download interrupted.');
9
+ }
10
+ this.nativeModule = global.loadObjectDetection(paths[0] || '');
11
+ }
12
+ async forward(imageSource, detectionThreshold = 0.7) {
13
+ if (this.nativeModule == null)
14
+ throw new Error(getError(ETError.ModuleNotLoaded));
15
+ return await this.nativeModule.generate(imageSource, detectionThreshold);
16
+ }
17
+ }
@@ -0,0 +1,8 @@
1
+ import { ResourceSource } from '../../types/common';
2
+ import { BaseNonStaticModule } from '../BaseNonStaticModule';
3
+ export declare class StyleTransferModule extends BaseNonStaticModule {
4
+ load(model: {
5
+ modelSource: ResourceSource;
6
+ }, onDownloadProgressCallback?: (progress: number) => void): Promise<void>;
7
+ forward(imageSource: string): Promise<string>;
8
+ }