react-native-executorch 0.3.3 → 0.4.2

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 (343) hide show
  1. package/README.md +30 -13
  2. package/android/build.gradle +1 -1
  3. package/android/src/main/java/com/swmansion/rnexecutorch/ETModule.kt +1 -2
  4. package/android/src/main/java/com/swmansion/rnexecutorch/ImageSegmentation.kt +58 -0
  5. package/android/src/main/java/com/swmansion/rnexecutorch/LLM.kt +13 -49
  6. package/android/src/main/java/com/swmansion/rnexecutorch/RnExecutorchPackage.kt +37 -0
  7. package/android/src/main/java/com/swmansion/rnexecutorch/StyleTransfer.kt +1 -1
  8. package/android/src/main/java/com/swmansion/rnexecutorch/TextEmbeddings.kt +51 -0
  9. package/android/src/main/java/com/swmansion/rnexecutorch/Tokenizer.kt +86 -0
  10. package/android/src/main/java/com/swmansion/rnexecutorch/models/BaseModel.kt +3 -4
  11. package/android/src/main/java/com/swmansion/rnexecutorch/models/TextEmbeddings/TextEmbeddingsModel.kt +48 -0
  12. package/android/src/main/java/com/swmansion/rnexecutorch/models/TextEmbeddings/TextEmbeddingsUtils.kt +37 -0
  13. package/android/src/main/java/com/swmansion/rnexecutorch/models/classification/ClassificationModel.kt +1 -0
  14. package/android/src/main/java/com/swmansion/rnexecutorch/models/imageSegmentation/Constants.kt +26 -0
  15. package/android/src/main/java/com/swmansion/rnexecutorch/models/imageSegmentation/ImageSegmentationModel.kt +142 -0
  16. package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/utils/RecognizerUtils.kt +3 -0
  17. package/android/src/main/java/com/swmansion/rnexecutorch/models/{StyleTransferModel.kt → styleTransfer/StyleTransferModel.kt} +2 -1
  18. package/android/src/main/java/com/swmansion/rnexecutorch/utils/ArrayUtils.kt +0 -8
  19. package/android/src/main/java/com/swmansion/rnexecutorch/{models/classification/Utils.kt → utils/Numerical.kt} +1 -1
  20. package/ios/ExecutorchLib.xcframework/Info.plist +4 -4
  21. package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/ExecutorchLib +0 -0
  22. package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/HuggingFaceTokenizer.h +14 -0
  23. package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/LLaMARunner.h +1 -23
  24. package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Info.plist +0 -0
  25. package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/ExecutorchLib +0 -0
  26. package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/HuggingFaceTokenizer.h +14 -0
  27. package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/LLaMARunner.h +1 -23
  28. package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Info.plist +0 -0
  29. package/ios/RnExecutorch/Classification.mm +15 -18
  30. package/ios/RnExecutorch/ETModule.mm +6 -5
  31. package/ios/RnExecutorch/ImageSegmentation.h +5 -0
  32. package/ios/RnExecutorch/ImageSegmentation.mm +60 -0
  33. package/ios/RnExecutorch/LLM.mm +12 -53
  34. package/ios/RnExecutorch/OCR.mm +39 -43
  35. package/ios/RnExecutorch/ObjectDetection.mm +20 -20
  36. package/ios/RnExecutorch/SpeechToText.mm +6 -7
  37. package/ios/RnExecutorch/StyleTransfer.mm +16 -19
  38. package/ios/RnExecutorch/TextEmbeddings.h +5 -0
  39. package/ios/RnExecutorch/TextEmbeddings.mm +62 -0
  40. package/ios/RnExecutorch/Tokenizer.h +5 -0
  41. package/ios/RnExecutorch/Tokenizer.mm +83 -0
  42. package/ios/RnExecutorch/VerticalOCR.mm +36 -36
  43. package/ios/RnExecutorch/models/BaseModel.h +2 -5
  44. package/ios/RnExecutorch/models/BaseModel.mm +5 -15
  45. package/ios/RnExecutorch/models/classification/ClassificationModel.mm +2 -3
  46. package/ios/RnExecutorch/models/classification/Constants.mm +0 -1
  47. package/ios/RnExecutorch/models/image_segmentation/Constants.h +4 -0
  48. package/ios/RnExecutorch/models/image_segmentation/Constants.mm +8 -0
  49. package/ios/RnExecutorch/models/image_segmentation/ImageSegmentationModel.h +10 -0
  50. package/ios/RnExecutorch/models/image_segmentation/ImageSegmentationModel.mm +146 -0
  51. package/ios/RnExecutorch/models/object_detection/SSDLiteLargeModel.mm +1 -2
  52. package/ios/RnExecutorch/models/ocr/Detector.h +0 -2
  53. package/ios/RnExecutorch/models/ocr/Detector.mm +2 -1
  54. package/ios/RnExecutorch/models/ocr/RecognitionHandler.h +5 -4
  55. package/ios/RnExecutorch/models/ocr/RecognitionHandler.mm +9 -26
  56. package/ios/RnExecutorch/models/ocr/Recognizer.mm +1 -2
  57. package/ios/RnExecutorch/models/ocr/VerticalDetector.h +0 -2
  58. package/ios/RnExecutorch/models/ocr/VerticalDetector.mm +2 -1
  59. package/ios/RnExecutorch/models/ocr/utils/OCRUtils.mm +0 -1
  60. package/ios/RnExecutorch/models/stt/Moonshine.mm +1 -6
  61. package/ios/RnExecutorch/models/stt/SpeechToTextBaseModel.mm +7 -11
  62. package/ios/RnExecutorch/models/stt/Whisper.mm +0 -5
  63. package/ios/RnExecutorch/models/{StyleTransferModel.h → style_transfer/StyleTransferModel.h} +1 -1
  64. package/ios/RnExecutorch/models/{StyleTransferModel.mm → style_transfer/StyleTransferModel.mm} +2 -3
  65. package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsModel.h +15 -0
  66. package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsModel.mm +45 -0
  67. package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsUtils.h +8 -0
  68. package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsUtils.mm +49 -0
  69. package/ios/RnExecutorch/utils/Conversions.h +15 -0
  70. package/ios/RnExecutorch/utils/ImageProcessor.h +0 -1
  71. package/ios/RnExecutorch/{models/classification/Utils.h → utils/Numerical.h} +0 -2
  72. package/ios/RnExecutorch/{models/classification/Utils.mm → utils/Numerical.mm} +0 -2
  73. package/ios/RnExecutorch/utils/ObjectDetectionUtils.mm +0 -2
  74. package/ios/RnExecutorch/utils/SFFT.mm +1 -1
  75. package/ios/RnExecutorch/utils/ScalarType.h +0 -2
  76. package/lib/module/Error.js +16 -2
  77. package/lib/module/Error.js.map +1 -1
  78. package/lib/module/constants/{llamaDefaults.js → llmDefaults.js} +7 -3
  79. package/lib/module/constants/llmDefaults.js.map +1 -0
  80. package/lib/module/constants/modelUrls.js +88 -27
  81. package/lib/module/constants/modelUrls.js.map +1 -1
  82. package/lib/module/constants/ocr/models.js +290 -0
  83. package/lib/module/constants/ocr/models.js.map +1 -0
  84. package/lib/module/constants/ocr/symbols.js +137 -2
  85. package/lib/module/constants/ocr/symbols.js.map +1 -1
  86. package/lib/module/constants/sttDefaults.js +50 -25
  87. package/lib/module/constants/sttDefaults.js.map +1 -1
  88. package/lib/module/controllers/LLMController.js +205 -0
  89. package/lib/module/controllers/LLMController.js.map +1 -0
  90. package/lib/module/controllers/OCRController.js +5 -10
  91. package/lib/module/controllers/OCRController.js.map +1 -1
  92. package/lib/module/controllers/SpeechToTextController.js +225 -122
  93. package/lib/module/controllers/SpeechToTextController.js.map +1 -1
  94. package/lib/module/controllers/VerticalOCRController.js +6 -10
  95. package/lib/module/controllers/VerticalOCRController.js.map +1 -1
  96. package/lib/module/hooks/computer_vision/useClassification.js +8 -23
  97. package/lib/module/hooks/computer_vision/useClassification.js.map +1 -1
  98. package/lib/module/hooks/computer_vision/useImageSegmentation.js +13 -0
  99. package/lib/module/hooks/computer_vision/useImageSegmentation.js.map +1 -0
  100. package/lib/module/hooks/computer_vision/useOCR.js +11 -6
  101. package/lib/module/hooks/computer_vision/useOCR.js.map +1 -1
  102. package/lib/module/hooks/computer_vision/useObjectDetection.js +8 -23
  103. package/lib/module/hooks/computer_vision/useObjectDetection.js.map +1 -1
  104. package/lib/module/hooks/computer_vision/useStyleTransfer.js +8 -23
  105. package/lib/module/hooks/computer_vision/useStyleTransfer.js.map +1 -1
  106. package/lib/module/hooks/computer_vision/useVerticalOCR.js +10 -7
  107. package/lib/module/hooks/computer_vision/useVerticalOCR.js.map +1 -1
  108. package/lib/module/hooks/general/useExecutorchModule.js +8 -36
  109. package/lib/module/hooks/general/useExecutorchModule.js.map +1 -1
  110. package/lib/module/hooks/natural_language_processing/useLLM.js +54 -63
  111. package/lib/module/hooks/natural_language_processing/useLLM.js.map +1 -1
  112. package/lib/module/hooks/natural_language_processing/useSpeechToText.js +15 -11
  113. package/lib/module/hooks/natural_language_processing/useSpeechToText.js.map +1 -1
  114. package/lib/module/hooks/natural_language_processing/useTextEmbeddings.js +14 -0
  115. package/lib/module/hooks/natural_language_processing/useTextEmbeddings.js.map +1 -0
  116. package/lib/module/hooks/natural_language_processing/useTokenizer.js +54 -0
  117. package/lib/module/hooks/natural_language_processing/useTokenizer.js.map +1 -0
  118. package/lib/module/hooks/useModule.js +18 -62
  119. package/lib/module/hooks/useModule.js.map +1 -1
  120. package/lib/module/index.js +16 -2
  121. package/lib/module/index.js.map +1 -1
  122. package/lib/module/modules/BaseModule.js +9 -10
  123. package/lib/module/modules/BaseModule.js.map +1 -1
  124. package/lib/module/modules/computer_vision/ClassificationModule.js +8 -5
  125. package/lib/module/modules/computer_vision/ClassificationModule.js.map +1 -1
  126. package/lib/module/modules/computer_vision/ImageSegmentationModule.js +28 -0
  127. package/lib/module/modules/computer_vision/ImageSegmentationModule.js.map +1 -0
  128. package/lib/module/modules/computer_vision/ObjectDetectionModule.js +8 -5
  129. package/lib/module/modules/computer_vision/ObjectDetectionModule.js.map +1 -1
  130. package/lib/module/modules/computer_vision/StyleTransferModule.js +8 -5
  131. package/lib/module/modules/computer_vision/StyleTransferModule.js.map +1 -1
  132. package/lib/module/modules/general/ExecutorchModule.js +8 -5
  133. package/lib/module/modules/general/ExecutorchModule.js.map +1 -1
  134. package/lib/module/modules/natural_language_processing/LLMModule.js +46 -27
  135. package/lib/module/modules/natural_language_processing/LLMModule.js.map +1 -1
  136. package/lib/module/modules/natural_language_processing/SpeechToTextModule.js +8 -5
  137. package/lib/module/modules/natural_language_processing/SpeechToTextModule.js.map +1 -1
  138. package/lib/module/modules/natural_language_processing/TextEmbeddingsModule.js +14 -0
  139. package/lib/module/modules/natural_language_processing/TextEmbeddingsModule.js.map +1 -0
  140. package/lib/module/modules/natural_language_processing/TokenizerModule.js +26 -0
  141. package/lib/module/modules/natural_language_processing/TokenizerModule.js.map +1 -0
  142. package/lib/module/native/NativeClassification.js.map +1 -1
  143. package/lib/module/native/NativeImageSegmentation.js +5 -0
  144. package/lib/module/native/NativeImageSegmentation.js.map +1 -0
  145. package/lib/module/native/NativeLLM.js.map +1 -1
  146. package/lib/module/native/NativeTextEmbeddings.js +5 -0
  147. package/lib/module/native/NativeTextEmbeddings.js.map +1 -0
  148. package/lib/module/native/NativeTokenizer.js +5 -0
  149. package/lib/module/native/NativeTokenizer.js.map +1 -0
  150. package/lib/module/native/RnExecutorchModules.js +18 -113
  151. package/lib/module/native/RnExecutorchModules.js.map +1 -1
  152. package/lib/module/types/common.js.map +1 -1
  153. package/lib/module/types/imageSegmentation.js +29 -0
  154. package/lib/module/types/imageSegmentation.js.map +1 -0
  155. package/lib/module/types/llm.js +7 -0
  156. package/lib/module/types/llm.js.map +1 -0
  157. package/lib/module/types/{object_detection.js → objectDetection.js} +1 -1
  158. package/lib/module/types/objectDetection.js.map +1 -0
  159. package/lib/module/types/ocr.js +2 -0
  160. package/lib/module/types/stt.js +82 -0
  161. package/lib/module/types/stt.js.map +1 -0
  162. package/lib/module/utils/ResourceFetcher.js +156 -0
  163. package/lib/module/utils/ResourceFetcher.js.map +1 -0
  164. package/lib/module/utils/llm.js +25 -0
  165. package/lib/module/utils/llm.js.map +1 -0
  166. package/lib/module/utils/stt.js +22 -0
  167. package/lib/module/utils/stt.js.map +1 -0
  168. package/lib/typescript/Error.d.ts +4 -1
  169. package/lib/typescript/Error.d.ts.map +1 -1
  170. package/lib/typescript/constants/{llamaDefaults.d.ts → llmDefaults.d.ts} +5 -5
  171. package/lib/typescript/constants/llmDefaults.d.ts.map +1 -0
  172. package/lib/typescript/constants/modelUrls.d.ts +74 -28
  173. package/lib/typescript/constants/modelUrls.d.ts.map +1 -1
  174. package/lib/typescript/constants/ocr/models.d.ts +285 -0
  175. package/lib/typescript/constants/ocr/models.d.ts.map +1 -0
  176. package/lib/typescript/constants/ocr/symbols.d.ts +73 -1
  177. package/lib/typescript/constants/ocr/symbols.d.ts.map +1 -1
  178. package/lib/typescript/constants/sttDefaults.d.ts +8 -13
  179. package/lib/typescript/constants/sttDefaults.d.ts.map +1 -1
  180. package/lib/typescript/controllers/LLMController.d.ts +46 -0
  181. package/lib/typescript/controllers/LLMController.d.ts.map +1 -0
  182. package/lib/typescript/controllers/OCRController.d.ts.map +1 -1
  183. package/lib/typescript/controllers/SpeechToTextController.d.ts +30 -16
  184. package/lib/typescript/controllers/SpeechToTextController.d.ts.map +1 -1
  185. package/lib/typescript/controllers/VerticalOCRController.d.ts +1 -1
  186. package/lib/typescript/controllers/VerticalOCRController.d.ts.map +1 -1
  187. package/lib/typescript/hooks/computer_vision/useClassification.d.ts +5 -5
  188. package/lib/typescript/hooks/computer_vision/useClassification.d.ts.map +1 -1
  189. package/lib/typescript/hooks/computer_vision/useImageSegmentation.d.ts +37 -0
  190. package/lib/typescript/hooks/computer_vision/useImageSegmentation.d.ts.map +1 -0
  191. package/lib/typescript/hooks/computer_vision/useOCR.d.ts +2 -1
  192. package/lib/typescript/hooks/computer_vision/useOCR.d.ts.map +1 -1
  193. package/lib/typescript/hooks/computer_vision/useObjectDetection.d.ts +5 -4
  194. package/lib/typescript/hooks/computer_vision/useObjectDetection.d.ts.map +1 -1
  195. package/lib/typescript/hooks/computer_vision/useStyleTransfer.d.ts +4 -2
  196. package/lib/typescript/hooks/computer_vision/useStyleTransfer.d.ts.map +1 -1
  197. package/lib/typescript/hooks/computer_vision/useVerticalOCR.d.ts +2 -1
  198. package/lib/typescript/hooks/computer_vision/useVerticalOCR.d.ts.map +1 -1
  199. package/lib/typescript/hooks/general/useExecutorchModule.d.ts +5 -6
  200. package/lib/typescript/hooks/general/useExecutorchModule.d.ts.map +1 -1
  201. package/lib/typescript/hooks/natural_language_processing/useLLM.d.ts +6 -6
  202. package/lib/typescript/hooks/natural_language_processing/useLLM.d.ts.map +1 -1
  203. package/lib/typescript/hooks/natural_language_processing/useSpeechToText.d.ts +7 -3
  204. package/lib/typescript/hooks/natural_language_processing/useSpeechToText.d.ts.map +1 -1
  205. package/lib/typescript/hooks/natural_language_processing/useTextEmbeddings.d.ts +13 -0
  206. package/lib/typescript/hooks/natural_language_processing/useTextEmbeddings.d.ts.map +1 -0
  207. package/lib/typescript/hooks/natural_language_processing/useTokenizer.d.ts +16 -0
  208. package/lib/typescript/hooks/natural_language_processing/useTokenizer.d.ts.map +1 -0
  209. package/lib/typescript/hooks/useModule.d.ts +11 -10
  210. package/lib/typescript/hooks/useModule.d.ts.map +1 -1
  211. package/lib/typescript/index.d.ts +15 -2
  212. package/lib/typescript/index.d.ts.map +1 -1
  213. package/lib/typescript/modules/BaseModule.d.ts +4 -5
  214. package/lib/typescript/modules/BaseModule.d.ts.map +1 -1
  215. package/lib/typescript/modules/computer_vision/ClassificationModule.d.ts +7 -7
  216. package/lib/typescript/modules/computer_vision/ClassificationModule.d.ts.map +1 -1
  217. package/lib/typescript/modules/computer_vision/ImageSegmentationModule.d.ts +32 -0
  218. package/lib/typescript/modules/computer_vision/ImageSegmentationModule.d.ts.map +1 -0
  219. package/lib/typescript/modules/computer_vision/ObjectDetectionModule.d.ts +6 -5
  220. package/lib/typescript/modules/computer_vision/ObjectDetectionModule.d.ts.map +1 -1
  221. package/lib/typescript/modules/computer_vision/StyleTransferModule.d.ts +6 -5
  222. package/lib/typescript/modules/computer_vision/StyleTransferModule.d.ts.map +1 -1
  223. package/lib/typescript/modules/general/ExecutorchModule.d.ts +4 -3
  224. package/lib/typescript/modules/general/ExecutorchModule.d.ts.map +1 -1
  225. package/lib/typescript/modules/natural_language_processing/LLMModule.d.ts +19 -5
  226. package/lib/typescript/modules/natural_language_processing/LLMModule.d.ts.map +1 -1
  227. package/lib/typescript/modules/natural_language_processing/SpeechToTextModule.d.ts +7 -4
  228. package/lib/typescript/modules/natural_language_processing/SpeechToTextModule.d.ts.map +1 -1
  229. package/lib/typescript/modules/natural_language_processing/TextEmbeddingsModule.d.ts +8 -0
  230. package/lib/typescript/modules/natural_language_processing/TextEmbeddingsModule.d.ts.map +1 -0
  231. package/lib/typescript/modules/natural_language_processing/TokenizerModule.d.ts +12 -0
  232. package/lib/typescript/modules/natural_language_processing/TokenizerModule.d.ts.map +1 -0
  233. package/lib/typescript/native/NativeClassification.d.ts.map +1 -1
  234. package/lib/typescript/native/NativeImageSegmentation.d.ts +10 -0
  235. package/lib/typescript/native/NativeImageSegmentation.d.ts.map +1 -0
  236. package/lib/typescript/native/NativeLLM.d.ts +3 -4
  237. package/lib/typescript/native/NativeLLM.d.ts.map +1 -1
  238. package/lib/typescript/native/NativeObjectDetection.d.ts +1 -1
  239. package/lib/typescript/native/NativeObjectDetection.d.ts.map +1 -1
  240. package/lib/typescript/native/NativeSpeechToText.d.ts +2 -2
  241. package/lib/typescript/native/NativeSpeechToText.d.ts.map +1 -1
  242. package/lib/typescript/native/NativeTextEmbeddings.d.ts +8 -0
  243. package/lib/typescript/native/NativeTextEmbeddings.d.ts.map +1 -0
  244. package/lib/typescript/native/NativeTokenizer.d.ts +12 -0
  245. package/lib/typescript/native/NativeTokenizer.d.ts.map +1 -0
  246. package/lib/typescript/native/RnExecutorchModules.d.ts +18 -41
  247. package/lib/typescript/native/RnExecutorchModules.d.ts.map +1 -1
  248. package/lib/typescript/types/common.d.ts +1 -26
  249. package/lib/typescript/types/common.d.ts.map +1 -1
  250. package/lib/typescript/types/imageSegmentation.d.ts +25 -0
  251. package/lib/typescript/types/imageSegmentation.d.ts.map +1 -0
  252. package/lib/typescript/types/llm.d.ts +38 -0
  253. package/lib/typescript/types/llm.d.ts.map +1 -0
  254. package/lib/typescript/types/{object_detection.d.ts → objectDetection.d.ts} +1 -1
  255. package/lib/typescript/types/objectDetection.d.ts.map +1 -0
  256. package/lib/typescript/types/ocr.d.ts +2 -1
  257. package/lib/typescript/types/ocr.d.ts.map +1 -1
  258. package/lib/typescript/types/stt.d.ts +91 -0
  259. package/lib/typescript/types/stt.d.ts.map +1 -0
  260. package/lib/typescript/utils/ResourceFetcher.d.ts +17 -0
  261. package/lib/typescript/utils/ResourceFetcher.d.ts.map +1 -0
  262. package/lib/typescript/utils/llm.d.ts +3 -0
  263. package/lib/typescript/utils/llm.d.ts.map +1 -0
  264. package/lib/typescript/utils/stt.d.ts +2 -0
  265. package/lib/typescript/utils/stt.d.ts.map +1 -0
  266. package/package.json +13 -49
  267. package/react-native-executorch.podspec +1 -1
  268. package/src/Error.ts +16 -3
  269. package/src/constants/llmDefaults.ts +14 -0
  270. package/src/constants/modelUrls.ts +146 -39
  271. package/src/constants/ocr/models.ts +453 -0
  272. package/src/constants/ocr/symbols.ts +147 -3
  273. package/src/constants/sttDefaults.ts +55 -37
  274. package/src/controllers/LLMController.ts +286 -0
  275. package/src/controllers/OCRController.ts +14 -28
  276. package/src/controllers/SpeechToTextController.ts +318 -180
  277. package/src/controllers/VerticalOCRController.ts +17 -32
  278. package/src/hooks/computer_vision/useClassification.ts +11 -26
  279. package/src/hooks/computer_vision/useImageSegmentation.ts +18 -0
  280. package/src/hooks/computer_vision/useOCR.ts +17 -5
  281. package/src/hooks/computer_vision/useObjectDetection.ts +10 -24
  282. package/src/hooks/computer_vision/useStyleTransfer.ts +9 -25
  283. package/src/hooks/computer_vision/useVerticalOCR.ts +11 -4
  284. package/src/hooks/general/useExecutorchModule.ts +10 -50
  285. package/src/hooks/natural_language_processing/useLLM.ts +80 -97
  286. package/src/hooks/natural_language_processing/useSpeechToText.ts +39 -12
  287. package/src/hooks/natural_language_processing/useTextEmbeddings.ts +18 -0
  288. package/src/hooks/natural_language_processing/useTokenizer.ts +61 -0
  289. package/src/hooks/useModule.ts +32 -92
  290. package/src/index.tsx +16 -2
  291. package/src/modules/BaseModule.ts +16 -26
  292. package/src/modules/computer_vision/ClassificationModule.ts +13 -8
  293. package/src/modules/computer_vision/ImageSegmentationModule.ts +39 -0
  294. package/src/modules/computer_vision/ObjectDetectionModule.ts +13 -8
  295. package/src/modules/computer_vision/StyleTransferModule.ts +13 -8
  296. package/src/modules/general/ExecutorchModule.ts +11 -6
  297. package/src/modules/natural_language_processing/LLMModule.ts +64 -51
  298. package/src/modules/natural_language_processing/SpeechToTextModule.ts +25 -10
  299. package/src/modules/natural_language_processing/TextEmbeddingsModule.ts +18 -0
  300. package/src/modules/natural_language_processing/TokenizerModule.ts +34 -0
  301. package/src/native/NativeClassification.ts +0 -1
  302. package/src/native/NativeImageSegmentation.ts +14 -0
  303. package/src/native/NativeLLM.ts +3 -10
  304. package/src/native/NativeObjectDetection.ts +1 -1
  305. package/src/native/NativeSpeechToText.ts +2 -2
  306. package/src/native/NativeTextEmbeddings.ts +9 -0
  307. package/src/native/NativeTokenizer.ts +13 -0
  308. package/src/native/RnExecutorchModules.ts +54 -234
  309. package/src/types/common.ts +1 -44
  310. package/src/types/imageSegmentation.ts +25 -0
  311. package/src/types/llm.ts +57 -0
  312. package/src/types/ocr.ts +3 -1
  313. package/src/types/stt.ts +93 -0
  314. package/src/utils/ResourceFetcher.ts +196 -0
  315. package/src/utils/llm.ts +34 -0
  316. package/src/utils/stt.ts +28 -0
  317. package/android/src/main/java/com/swmansion/rnexecutorch/utils/llms/ConversationManager.kt +0 -68
  318. package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/_CodeSignature/CodeResources +0 -124
  319. package/ios/RnExecutorch/utils/llms/Constants.h +0 -6
  320. package/ios/RnExecutorch/utils/llms/Constants.mm +0 -23
  321. package/ios/RnExecutorch/utils/llms/ConversationManager.h +0 -26
  322. package/ios/RnExecutorch/utils/llms/ConversationManager.mm +0 -71
  323. package/lib/module/constants/llamaDefaults.js.map +0 -1
  324. package/lib/module/modules/computer_vision/BaseCVModule.js +0 -14
  325. package/lib/module/modules/computer_vision/BaseCVModule.js.map +0 -1
  326. package/lib/module/types/object_detection.js.map +0 -1
  327. package/lib/module/utils/fetchResource.js +0 -93
  328. package/lib/module/utils/fetchResource.js.map +0 -1
  329. package/lib/module/utils/listDownloadedResources.js +0 -13
  330. package/lib/module/utils/listDownloadedResources.js.map +0 -1
  331. package/lib/typescript/constants/llamaDefaults.d.ts.map +0 -1
  332. package/lib/typescript/modules/computer_vision/BaseCVModule.d.ts +0 -9
  333. package/lib/typescript/modules/computer_vision/BaseCVModule.d.ts.map +0 -1
  334. package/lib/typescript/types/object_detection.d.ts.map +0 -1
  335. package/lib/typescript/utils/fetchResource.d.ts +0 -3
  336. package/lib/typescript/utils/fetchResource.d.ts.map +0 -1
  337. package/lib/typescript/utils/listDownloadedResources.d.ts +0 -3
  338. package/lib/typescript/utils/listDownloadedResources.d.ts.map +0 -1
  339. package/src/constants/llamaDefaults.ts +0 -9
  340. package/src/modules/computer_vision/BaseCVModule.ts +0 -22
  341. package/src/utils/fetchResource.ts +0 -106
  342. package/src/utils/listDownloadedResources.ts +0 -12
  343. /package/src/types/{object_detection.ts → objectDetection.ts} +0 -0
@@ -1,29 +1,34 @@
1
1
  "use strict";
2
2
 
3
- import { useEffect, useState } from 'react';
3
+ import { useEffect, useMemo, useState } from 'react';
4
4
  import { OCRController } from '../../controllers/OCRController';
5
5
  export const useOCR = ({
6
6
  detectorSource,
7
7
  recognizerSources,
8
- language = 'en'
8
+ language = 'en',
9
+ preventLoad = false
9
10
  }) => {
10
11
  const [error, setError] = useState(null);
11
12
  const [isReady, setIsReady] = useState(false);
12
13
  const [isGenerating, setIsGenerating] = useState(false);
13
14
  const [downloadProgress, setDownloadProgress] = useState(0);
14
- const [model, _] = useState(() => new OCRController({
15
+ const model = useMemo(() => new OCRController({
15
16
  modelDownloadProgressCallback: setDownloadProgress,
16
17
  isReadyCallback: setIsReady,
17
18
  isGeneratingCallback: setIsGenerating,
18
19
  errorCallback: setError
19
- }));
20
+ }), []);
20
21
  useEffect(() => {
21
22
  const loadModel = async () => {
22
23
  await model.loadModel(detectorSource, recognizerSources, language);
23
24
  };
24
- loadModel();
25
+ if (!preventLoad) {
26
+ loadModel();
27
+ }
25
28
  // eslint-disable-next-line react-hooks/exhaustive-deps
26
- }, [detectorSource, language, JSON.stringify(recognizerSources)]);
29
+ }, [model, detectorSource, language,
30
+ // eslint-disable-next-line react-hooks/exhaustive-deps
31
+ JSON.stringify(recognizerSources), preventLoad]);
27
32
  return {
28
33
  error,
29
34
  isReady,
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","OCRController","useOCR","detectorSource","recognizerSources","language","error","setError","isReady","setIsReady","isGenerating","setIsGenerating","downloadProgress","setDownloadProgress","model","_","modelDownloadProgressCallback","isReadyCallback","isGeneratingCallback","errorCallback","loadModel","JSON","stringify","forward"],"sourceRoot":"../../../../src","sources":["hooks/computer_vision/useOCR.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAG3C,SAASC,aAAa,QAAQ,iCAAiC;AAU/D,OAAO,MAAMC,MAAM,GAAGA,CAAC;EACrBC,cAAc;EACdC,iBAAiB;EACjBC,QAAQ,GAAG;AASb,CAAC,KAAgB;EACf,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGP,QAAQ,CAAgB,IAAI,CAAC;EACvD,MAAM,CAACQ,OAAO,EAAEC,UAAU,CAAC,GAAGT,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM,CAACU,YAAY,EAAEC,eAAe,CAAC,GAAGX,QAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAACY,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGb,QAAQ,CAAC,CAAC,CAAC;EAE3D,MAAM,CAACc,KAAK,EAAEC,CAAC,CAAC,GAAGf,QAAQ,CACzB,MACE,IAAIC,aAAa,CAAC;IAChBe,6BAA6B,EAAEH,mBAAmB;IAClDI,eAAe,EAAER,UAAU;IAC3BS,oBAAoB,EAAEP,eAAe;IACrCQ,aAAa,EAAEZ;EACjB,CAAC,CACL,CAAC;EAEDR,SAAS,CAAC,MAAM;IACd,MAAMqB,SAAS,GAAG,MAAAA,CAAA,KAAY;MAC5B,MAAMN,KAAK,CAACM,SAAS,CAACjB,cAAc,EAAEC,iBAAiB,EAAEC,QAAQ,CAAC;IACpE,CAAC;IAEDe,SAAS,CAAC,CAAC;IACX;EACF,CAAC,EAAE,CAACjB,cAAc,EAAEE,QAAQ,EAAEgB,IAAI,CAACC,SAAS,CAAClB,iBAAiB,CAAC,CAAC,CAAC;EAEjE,OAAO;IACLE,KAAK;IACLE,OAAO;IACPE,YAAY;IACZa,OAAO,EAAET,KAAK,CAACS,OAAO;IACtBX;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","useState","OCRController","useOCR","detectorSource","recognizerSources","language","preventLoad","error","setError","isReady","setIsReady","isGenerating","setIsGenerating","downloadProgress","setDownloadProgress","model","modelDownloadProgressCallback","isReadyCallback","isGeneratingCallback","errorCallback","loadModel","JSON","stringify","forward"],"sourceRoot":"../../../../src","sources":["hooks/computer_vision/useOCR.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAGpD,SAASC,aAAa,QAAQ,iCAAiC;AAU/D,OAAO,MAAMC,MAAM,GAAGA,CAAC;EACrBC,cAAc;EACdC,iBAAiB;EACjBC,QAAQ,GAAG,IAAI;EACfC,WAAW,GAAG;AAUhB,CAAC,KAAgB;EACf,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGR,QAAQ,CAAgB,IAAI,CAAC;EACvD,MAAM,CAACS,OAAO,EAAEC,UAAU,CAAC,GAAGV,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM,CAACW,YAAY,EAAEC,eAAe,CAAC,GAAGZ,QAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAACa,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGd,QAAQ,CAAC,CAAC,CAAC;EAE3D,MAAMe,KAAK,GAAGhB,OAAO,CACnB,MACE,IAAIE,aAAa,CAAC;IAChBe,6BAA6B,EAAEF,mBAAmB;IAClDG,eAAe,EAAEP,UAAU;IAC3BQ,oBAAoB,EAAEN,eAAe;IACrCO,aAAa,EAAEX;EACjB,CAAC,CAAC,EACJ,EACF,CAAC;EAEDV,SAAS,CAAC,MAAM;IACd,MAAMsB,SAAS,GAAG,MAAAA,CAAA,KAAY;MAC5B,MAAML,KAAK,CAACK,SAAS,CAACjB,cAAc,EAAEC,iBAAiB,EAAEC,QAAQ,CAAC;IACpE,CAAC;IAED,IAAI,CAACC,WAAW,EAAE;MAChBc,SAAS,CAAC,CAAC;IACb;IACA;EACF,CAAC,EAAE,CACDL,KAAK,EACLZ,cAAc,EACdE,QAAQ;EACR;EACAgB,IAAI,CAACC,SAAS,CAAClB,iBAAiB,CAAC,EACjCE,WAAW,CACZ,CAAC;EAEF,OAAO;IACLC,KAAK;IACLE,OAAO;IACPE,YAAY;IACZY,OAAO,EAAER,KAAK,CAACQ,OAAO;IACtBV;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,28 +1,13 @@
1
1
  "use strict";
2
2
 
3
- import { useState } from 'react';
4
- import { _ObjectDetectionModule } from '../../native/RnExecutorchModules';
5
3
  import { useModule } from '../useModule';
4
+ import { ObjectDetectionModule } from '../../modules/computer_vision/ObjectDetectionModule';
6
5
  export const useObjectDetection = ({
7
- modelSource
8
- }) => {
9
- const [module, _] = useState(() => new _ObjectDetectionModule());
10
- const {
11
- error,
12
- isReady,
13
- isGenerating,
14
- downloadProgress,
15
- forwardImage: forward
16
- } = useModule({
17
- modelSource,
18
- module
19
- });
20
- return {
21
- error,
22
- isReady,
23
- isGenerating,
24
- downloadProgress,
25
- forward
26
- };
27
- };
6
+ modelSource,
7
+ preventLoad = false
8
+ }) => useModule({
9
+ module: ObjectDetectionModule,
10
+ loadArgs: [modelSource],
11
+ preventLoad
12
+ });
28
13
  //# sourceMappingURL=useObjectDetection.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useState","_ObjectDetectionModule","useModule","useObjectDetection","modelSource","module","_","error","isReady","isGenerating","downloadProgress","forwardImage","forward"],"sourceRoot":"../../../../src","sources":["hooks/computer_vision/useObjectDetection.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,OAAO;AAChC,SAASC,sBAAsB,QAAQ,kCAAkC;AACzE,SAASC,SAAS,QAAQ,cAAc;AAOxC,OAAO,MAAMC,kBAAkB,GAAGA,CAAC;EACjCC;AACK,CAAC,KAMH;EACH,MAAM,CAACC,MAAM,EAAEC,CAAC,CAAC,GAAGN,QAAQ,CAAC,MAAM,IAAIC,sBAAsB,CAAC,CAAC,CAAC;EAChE,MAAM;IACJM,KAAK;IACLC,OAAO;IACPC,YAAY;IACZC,gBAAgB;IAChBC,YAAY,EAAEC;EAChB,CAAC,GAAGV,SAAS,CAAC;IACZE,WAAW;IACXC;EACF,CAAC,CAAC;EAEF,OAAO;IAAEE,KAAK;IAAEC,OAAO;IAAEC,YAAY;IAAEC,gBAAgB;IAAEE;EAAQ,CAAC;AACpE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useModule","ObjectDetectionModule","useObjectDetection","modelSource","preventLoad","module","loadArgs"],"sourceRoot":"../../../../src","sources":["hooks/computer_vision/useObjectDetection.ts"],"mappings":";;AACA,SAASA,SAAS,QAAQ,cAAc;AACxC,SAASC,qBAAqB,QAAQ,qDAAqD;AAO3F,OAAO,MAAMC,kBAAkB,GAAGA,CAAC;EACjCC,WAAW;EACXC,WAAW,GAAG;AACT,CAAC,KACNJ,SAAS,CAAC;EACRK,MAAM,EAAEJ,qBAAqB;EAC7BK,QAAQ,EAAE,CAACH,WAAW,CAAC;EACvBC;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1,28 +1,13 @@
1
1
  "use strict";
2
2
 
3
- import { useState } from 'react';
4
- import { _StyleTransferModule } from '../../native/RnExecutorchModules';
5
3
  import { useModule } from '../useModule';
4
+ import { StyleTransferModule } from '../../modules/computer_vision/StyleTransferModule';
6
5
  export const useStyleTransfer = ({
7
- modelSource
8
- }) => {
9
- const [module, _] = useState(() => new _StyleTransferModule());
10
- const {
11
- error,
12
- isReady,
13
- isGenerating,
14
- downloadProgress,
15
- forwardImage: forward
16
- } = useModule({
17
- modelSource,
18
- module
19
- });
20
- return {
21
- error,
22
- isReady,
23
- isGenerating,
24
- downloadProgress,
25
- forward
26
- };
27
- };
6
+ modelSource,
7
+ preventLoad = false
8
+ }) => useModule({
9
+ module: StyleTransferModule,
10
+ loadArgs: [modelSource],
11
+ preventLoad
12
+ });
28
13
  //# sourceMappingURL=useStyleTransfer.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useState","_StyleTransferModule","useModule","useStyleTransfer","modelSource","module","_","error","isReady","isGenerating","downloadProgress","forwardImage","forward"],"sourceRoot":"../../../../src","sources":["hooks/computer_vision/useStyleTransfer.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,OAAO;AAChC,SAASC,oBAAoB,QAAQ,kCAAkC;AACvE,SAASC,SAAS,QAAQ,cAAc;AAMxC,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAC/BC;AACK,CAAC,KAMH;EACH,MAAM,CAACC,MAAM,EAAEC,CAAC,CAAC,GAAGN,QAAQ,CAAC,MAAM,IAAIC,oBAAoB,CAAC,CAAC,CAAC;EAC9D,MAAM;IACJM,KAAK;IACLC,OAAO;IACPC,YAAY;IACZC,gBAAgB;IAChBC,YAAY,EAAEC;EAChB,CAAC,GAAGV,SAAS,CAAC;IACZE,WAAW;IACXC;EACF,CAAC,CAAC;EAEF,OAAO;IAAEE,KAAK;IAAEC,OAAO;IAAEC,YAAY;IAAEC,gBAAgB;IAAEE;EAAQ,CAAC;AACpE,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useModule","StyleTransferModule","useStyleTransfer","modelSource","preventLoad","module","loadArgs"],"sourceRoot":"../../../../src","sources":["hooks/computer_vision/useStyleTransfer.ts"],"mappings":";;AACA,SAASA,SAAS,QAAQ,cAAc;AACxC,SAASC,mBAAmB,QAAQ,mDAAmD;AAOvF,OAAO,MAAMC,gBAAgB,GAAGA,CAAC;EAAEC,WAAW;EAAEC,WAAW,GAAG;AAAa,CAAC,KAC1EJ,SAAS,CAAC;EACRK,MAAM,EAAEJ,mBAAmB;EAC3BK,QAAQ,EAAE,CAACH,WAAW,CAAC;EACvBC;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1,34 +1,37 @@
1
1
  "use strict";
2
2
 
3
- import { useEffect, useState } from 'react';
3
+ import { useEffect, useMemo, useState } from 'react';
4
4
  import { VerticalOCRController } from '../../controllers/VerticalOCRController';
5
5
  export const useVerticalOCR = ({
6
6
  detectorSources,
7
7
  recognizerSources,
8
8
  language = 'en',
9
- independentCharacters = false
9
+ independentCharacters = false,
10
+ preventLoad = false
10
11
  }) => {
11
12
  const [error, setError] = useState(null);
12
13
  const [isReady, setIsReady] = useState(false);
13
14
  const [isGenerating, setIsGenerating] = useState(false);
14
15
  const [downloadProgress, setDownloadProgress] = useState(0);
15
- const [model, _] = useState(() => new VerticalOCRController({
16
+ const model = useMemo(() => new VerticalOCRController({
16
17
  modelDownloadProgressCallback: setDownloadProgress,
17
18
  isReadyCallback: setIsReady,
18
19
  isGeneratingCallback: setIsGenerating,
19
20
  errorCallback: setError
20
- }));
21
+ }), []);
21
22
  useEffect(() => {
22
23
  const loadModel = async () => {
23
24
  await model.loadModel(detectorSources, recognizerSources, language, independentCharacters);
24
25
  };
25
- loadModel();
26
+ if (!preventLoad) {
27
+ loadModel();
28
+ }
26
29
  // eslint-disable-next-line react-hooks/exhaustive-deps
27
- }, [
30
+ }, [model,
28
31
  // eslint-disable-next-line react-hooks/exhaustive-deps
29
32
  JSON.stringify(detectorSources), language, independentCharacters,
30
33
  // eslint-disable-next-line react-hooks/exhaustive-deps
31
- JSON.stringify(recognizerSources)]);
34
+ JSON.stringify(recognizerSources), preventLoad]);
32
35
  return {
33
36
  error,
34
37
  isReady,
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","VerticalOCRController","useVerticalOCR","detectorSources","recognizerSources","language","independentCharacters","error","setError","isReady","setIsReady","isGenerating","setIsGenerating","downloadProgress","setDownloadProgress","model","_","modelDownloadProgressCallback","isReadyCallback","isGeneratingCallback","errorCallback","loadModel","JSON","stringify","forward"],"sourceRoot":"../../../../src","sources":["hooks/computer_vision/useVerticalOCR.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAG3C,SAASC,qBAAqB,QAAQ,yCAAyC;AAU/E,OAAO,MAAMC,cAAc,GAAGA,CAAC;EAC7BC,eAAe;EACfC,iBAAiB;EACjBC,QAAQ,GAAG,IAAI;EACfC,qBAAqB,GAAG;AAY1B,CAAC,KAAgB;EACf,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGR,QAAQ,CAAgB,IAAI,CAAC;EACvD,MAAM,CAACS,OAAO,EAAEC,UAAU,CAAC,GAAGV,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM,CAACW,YAAY,EAAEC,eAAe,CAAC,GAAGZ,QAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAACa,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGd,QAAQ,CAAC,CAAC,CAAC;EAE3D,MAAM,CAACe,KAAK,EAAEC,CAAC,CAAC,GAAGhB,QAAQ,CACzB,MACE,IAAIC,qBAAqB,CAAC;IACxBgB,6BAA6B,EAAEH,mBAAmB;IAClDI,eAAe,EAAER,UAAU;IAC3BS,oBAAoB,EAAEP,eAAe;IACrCQ,aAAa,EAAEZ;EACjB,CAAC,CACL,CAAC;EAEDT,SAAS,CAAC,MAAM;IACd,MAAMsB,SAAS,GAAG,MAAAA,CAAA,KAAY;MAC5B,MAAMN,KAAK,CAACM,SAAS,CACnBlB,eAAe,EACfC,iBAAiB,EACjBC,QAAQ,EACRC,qBACF,CAAC;IACH,CAAC;IAEDe,SAAS,CAAC,CAAC;IACX;EACF,CAAC,EAAE;EACD;EACAC,IAAI,CAACC,SAAS,CAACpB,eAAe,CAAC,EAC/BE,QAAQ,EACRC,qBAAqB;EACrB;EACAgB,IAAI,CAACC,SAAS,CAACnB,iBAAiB,CAAC,CAClC,CAAC;EAEF,OAAO;IACLG,KAAK;IACLE,OAAO;IACPE,YAAY;IACZa,OAAO,EAAET,KAAK,CAACS,OAAO;IACtBX;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","useState","VerticalOCRController","useVerticalOCR","detectorSources","recognizerSources","language","independentCharacters","preventLoad","error","setError","isReady","setIsReady","isGenerating","setIsGenerating","downloadProgress","setDownloadProgress","model","modelDownloadProgressCallback","isReadyCallback","isGeneratingCallback","errorCallback","loadModel","JSON","stringify","forward"],"sourceRoot":"../../../../src","sources":["hooks/computer_vision/useVerticalOCR.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAGpD,SAASC,qBAAqB,QAAQ,yCAAyC;AAU/E,OAAO,MAAMC,cAAc,GAAGA,CAAC;EAC7BC,eAAe;EACfC,iBAAiB;EACjBC,QAAQ,GAAG,IAAI;EACfC,qBAAqB,GAAG,KAAK;EAC7BC,WAAW,GAAG;AAahB,CAAC,KAAgB;EACf,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGT,QAAQ,CAAgB,IAAI,CAAC;EACvD,MAAM,CAACU,OAAO,EAAEC,UAAU,CAAC,GAAGX,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM,CAACY,YAAY,EAAEC,eAAe,CAAC,GAAGb,QAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAACc,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGf,QAAQ,CAAC,CAAC,CAAC;EAE3D,MAAMgB,KAAK,GAAGjB,OAAO,CACnB,MACE,IAAIE,qBAAqB,CAAC;IACxBgB,6BAA6B,EAAEF,mBAAmB;IAClDG,eAAe,EAAEP,UAAU;IAC3BQ,oBAAoB,EAAEN,eAAe;IACrCO,aAAa,EAAEX;EACjB,CAAC,CAAC,EACJ,EACF,CAAC;EAEDX,SAAS,CAAC,MAAM;IACd,MAAMuB,SAAS,GAAG,MAAAA,CAAA,KAAY;MAC5B,MAAML,KAAK,CAACK,SAAS,CACnBlB,eAAe,EACfC,iBAAiB,EACjBC,QAAQ,EACRC,qBACF,CAAC;IACH,CAAC;IAED,IAAI,CAACC,WAAW,EAAE;MAChBc,SAAS,CAAC,CAAC;IACb;IACA;EACF,CAAC,EAAE,CACDL,KAAK;EACL;EACAM,IAAI,CAACC,SAAS,CAACpB,eAAe,CAAC,EAC/BE,QAAQ,EACRC,qBAAqB;EACrB;EACAgB,IAAI,CAACC,SAAS,CAACnB,iBAAiB,CAAC,EACjCG,WAAW,CACZ,CAAC;EAEF,OAAO;IACLC,KAAK;IACLE,OAAO;IACPE,YAAY;IACZY,OAAO,EAAER,KAAK,CAACQ,OAAO;IACtBV;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,41 +1,13 @@
1
1
  "use strict";
2
2
 
3
- import { useState } from 'react';
4
- import { _ETModule } from '../../native/RnExecutorchModules';
3
+ import { ExecutorchModule } from '../../modules/general/ExecutorchModule';
5
4
  import { useModule } from '../useModule';
6
- import { getError } from '../../Error';
7
5
  export const useExecutorchModule = ({
8
- modelSource
9
- }) => {
10
- const [module] = useState(() => new _ETModule());
11
- const {
12
- error,
13
- isReady,
14
- isGenerating,
15
- downloadProgress,
16
- forwardETInput: forward
17
- } = useModule({
18
- modelSource,
19
- module
20
- });
21
- const loadMethod = async methodName => {
22
- try {
23
- await module.loadMethod(methodName);
24
- } catch (e) {
25
- throw new Error(getError(e));
26
- }
27
- };
28
- const loadForward = async () => {
29
- await loadMethod('forward');
30
- };
31
- return {
32
- error,
33
- isReady,
34
- isGenerating,
35
- downloadProgress,
36
- forward,
37
- loadMethod,
38
- loadForward
39
- };
40
- };
6
+ modelSource,
7
+ preventLoad = false
8
+ }) => useModule({
9
+ module: ExecutorchModule,
10
+ loadArgs: [modelSource],
11
+ preventLoad
12
+ });
41
13
  //# sourceMappingURL=useExecutorchModule.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useState","_ETModule","useModule","getError","useExecutorchModule","modelSource","module","error","isReady","isGenerating","downloadProgress","forwardETInput","forward","loadMethod","methodName","e","Error","loadForward"],"sourceRoot":"../../../../src","sources":["hooks/general/useExecutorchModule.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,OAAO;AAChC,SAASC,SAAS,QAAQ,kCAAkC;AAC5D,SAASC,SAAS,QAAQ,cAAc;AAExC,SAASC,QAAQ,QAAQ,aAAa;AAMtC,OAAO,MAAMC,mBAAmB,GAAGA,CAAC;EAClCC;AACK,CAAC,KAWH;EACH,MAAM,CAACC,MAAM,CAAC,GAAGN,QAAQ,CAAC,MAAM,IAAIC,SAAS,CAAC,CAAC,CAAC;EAChD,MAAM;IACJM,KAAK;IACLC,OAAO;IACPC,YAAY;IACZC,gBAAgB;IAChBC,cAAc,EAAEC;EAClB,CAAC,GAAGV,SAAS,CAAC;IACZG,WAAW;IACXC;EACF,CAAC,CAAC;EAEF,MAAMO,UAAU,GAAG,MAAOC,UAAkB,IAAK;IAC/C,IAAI;MACF,MAAMR,MAAM,CAACO,UAAU,CAACC,UAAU,CAAC;IACrC,CAAC,CAAC,OAAOC,CAAC,EAAE;MACV,MAAM,IAAIC,KAAK,CAACb,QAAQ,CAACY,CAAC,CAAC,CAAC;IAC9B;EACF,CAAC;EAED,MAAME,WAAW,GAAG,MAAAA,CAAA,KAAY;IAC9B,MAAMJ,UAAU,CAAC,SAAS,CAAC;EAC7B,CAAC;EAED,OAAO;IACLN,KAAK;IACLC,OAAO;IACPC,YAAY;IACZC,gBAAgB;IAChBE,OAAO;IACPC,UAAU;IACVI;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["ExecutorchModule","useModule","useExecutorchModule","modelSource","preventLoad","module","loadArgs"],"sourceRoot":"../../../../src","sources":["hooks/general/useExecutorchModule.ts"],"mappings":";;AAAA,SAASA,gBAAgB,QAAQ,wCAAwC;AAEzE,SAASC,SAAS,QAAQ,cAAc;AAOxC,OAAO,MAAMC,mBAAmB,GAAGA,CAAC;EAClCC,WAAW;EACXC,WAAW,GAAG;AACT,CAAC,KACNH,SAAS,CAAC;EACRI,MAAM,EAAEL,gBAAgB;EACxBM,QAAQ,EAAE,CAACH,WAAW,CAAC;EACvBC;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1,84 +1,75 @@
1
1
  "use strict";
2
2
 
3
- import { useCallback, useEffect, useRef, useState } from 'react';
4
- import { LLM } from '../../native/RnExecutorchModules';
5
- import { fetchResource } from '../../utils/fetchResource';
6
- import { DEFAULT_CONTEXT_WINDOW_LENGTH, DEFAULT_MESSAGE_HISTORY, DEFAULT_SYSTEM_PROMPT, EOT_TOKEN } from '../../constants/llamaDefaults';
7
- const interrupt = () => {
8
- LLM.interrupt();
9
- };
3
+ import { useCallback, useEffect, useMemo, useState } from 'react';
4
+ import { LLMController } from '../../controllers/LLMController';
5
+
6
+ /*
7
+ Hook version of LLMController
8
+ */
10
9
  export const useLLM = ({
11
10
  modelSource,
12
11
  tokenizerSource,
13
- systemPrompt = DEFAULT_SYSTEM_PROMPT,
14
- messageHistory = DEFAULT_MESSAGE_HISTORY,
15
- contextWindowLength = DEFAULT_CONTEXT_WINDOW_LENGTH
12
+ tokenizerConfigSource,
13
+ preventLoad = false
16
14
  }) => {
17
- const [error, setError] = useState(null);
15
+ const [response, setResponse] = useState('');
16
+ const [messageHistory, setMessageHistory] = useState([]);
18
17
  const [isReady, setIsReady] = useState(false);
19
18
  const [isGenerating, setIsGenerating] = useState(false);
20
- const [response, setResponse] = useState('');
21
19
  const [downloadProgress, setDownloadProgress] = useState(0);
22
- const tokenGeneratedListener = useRef(null);
20
+ const [error, setError] = useState(null);
21
+ const model = useMemo(() => new LLMController({
22
+ responseCallback: setResponse,
23
+ messageHistoryCallback: setMessageHistory,
24
+ isReadyCallback: setIsReady,
25
+ isGeneratingCallback: setIsGenerating,
26
+ onDownloadProgressCallback: setDownloadProgress
27
+ }), []);
23
28
  useEffect(() => {
24
- const loadModel = async () => {
29
+ setDownloadProgress(0);
30
+ setError(null);
31
+ if (!preventLoad) {
25
32
  try {
26
- setIsReady(false);
27
- const tokenizerFileUri = await fetchResource(tokenizerSource);
28
- const modelFileUri = await fetchResource(modelSource, setDownloadProgress);
29
- await LLM.loadLLM(modelFileUri, tokenizerFileUri, systemPrompt, messageHistory, contextWindowLength);
30
- setIsReady(true);
31
- tokenGeneratedListener.current = LLM.onToken(data => {
32
- if (!data) {
33
- return;
34
- }
35
- if (data !== EOT_TOKEN) {
36
- setResponse(prevResponse => prevResponse + data);
37
- } else {
38
- setIsGenerating(false);
39
- }
40
- });
41
- } catch (err) {
42
- const message = err.message;
43
- setIsReady(false);
44
- setError(message);
45
- } finally {
46
- setDownloadProgress(0);
33
+ (async () => {
34
+ await model.load({
35
+ modelSource,
36
+ tokenizerSource,
37
+ tokenizerConfigSource
38
+ });
39
+ })();
40
+ } catch (e) {
41
+ setError(e);
47
42
  }
48
- };
49
- loadModel();
43
+ }
50
44
  return () => {
51
- tokenGeneratedListener.current?.remove();
52
- tokenGeneratedListener.current = null;
53
- LLM.deleteModule();
45
+ model.delete();
54
46
  };
55
- }, [modelSource, tokenizerSource, systemPrompt, messageHistory, contextWindowLength]);
56
- const generate = useCallback(async input => {
57
- if (!isReady) {
58
- throw new Error('Model is still loading');
59
- }
60
- if (error) {
61
- throw new Error(error);
62
- }
63
- try {
64
- setResponse('');
65
- setIsGenerating(true);
66
- await LLM.runInference(input);
67
- } catch (err) {
68
- setIsGenerating(false);
69
- throw new Error(err.message);
70
- }
71
- }, [isReady, error]);
47
+ }, [modelSource, tokenizerSource, tokenizerConfigSource, preventLoad, model]);
48
+
49
+ // memoization of returned functions
50
+ const configure = useCallback(({
51
+ chatConfig,
52
+ toolsConfig
53
+ }) => model.configure({
54
+ chatConfig,
55
+ toolsConfig
56
+ }), [model]);
57
+ const generate = useCallback((messages, tools) => model.generate(messages, tools), [model]);
58
+ const sendMessage = useCallback(message => model.sendMessage(message), [model]);
59
+ const deleteMessage = useCallback(index => model.deleteMessage(index), [model]);
60
+ const interrupt = useCallback(() => model.interrupt(), [model]);
72
61
  return {
73
- generate,
74
- error,
62
+ messageHistory,
63
+ response,
75
64
  isReady,
76
65
  isGenerating,
77
- isModelReady: isReady,
78
- isModelGenerating: isGenerating,
79
- response,
80
66
  downloadProgress,
81
- interrupt
67
+ error,
68
+ configure: configure,
69
+ generate: generate,
70
+ sendMessage: sendMessage,
71
+ deleteMessage: deleteMessage,
72
+ interrupt: interrupt
82
73
  };
83
74
  };
84
75
  //# sourceMappingURL=useLLM.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","useState","LLM","fetchResource","DEFAULT_CONTEXT_WINDOW_LENGTH","DEFAULT_MESSAGE_HISTORY","DEFAULT_SYSTEM_PROMPT","EOT_TOKEN","interrupt","useLLM","modelSource","tokenizerSource","systemPrompt","messageHistory","contextWindowLength","error","setError","isReady","setIsReady","isGenerating","setIsGenerating","response","setResponse","downloadProgress","setDownloadProgress","tokenGeneratedListener","loadModel","tokenizerFileUri","modelFileUri","loadLLM","current","onToken","data","prevResponse","err","message","remove","deleteModule","generate","input","Error","runInference","isModelReady","isModelGenerating"],"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","modelSource","tokenizerSource","tokenizerConfigSource","preventLoad","response","setResponse","messageHistory","setMessageHistory","isReady","setIsReady","isGenerating","setIsGenerating","downloadProgress","setDownloadProgress","error","setError","model","responseCallback","messageHistoryCallback","isReadyCallback","isGeneratingCallback","onDownloadProgressCallback","load","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,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { useEffect, useState } from 'react';
3
+ import { useEffect, useMemo, useState } from 'react';
4
4
  import { SpeechToTextController } from '../../controllers/SpeechToTextController';
5
5
  export const useSpeechToText = ({
6
6
  modelName,
@@ -9,29 +9,32 @@ export const useSpeechToText = ({
9
9
  tokenizerSource,
10
10
  overlapSeconds,
11
11
  windowSize,
12
- streamingConfig
12
+ streamingConfig,
13
+ preventLoad = false
13
14
  }) => {
14
15
  const [sequence, setSequence] = useState('');
15
16
  const [isReady, setIsReady] = useState(false);
16
17
  const [downloadProgress, setDownloadProgress] = useState(0);
17
18
  const [isGenerating, setIsGenerating] = useState(false);
18
19
  const [error, setError] = useState();
19
- const [model, _] = useState(() => new SpeechToTextController({
20
+ const model = useMemo(() => new SpeechToTextController({
20
21
  transcribeCallback: setSequence,
21
22
  isReadyCallback: setIsReady,
22
23
  isGeneratingCallback: setIsGenerating,
23
24
  onErrorCallback: setError,
24
- modelDownloadProgessCallback: setDownloadProgress,
25
- overlapSeconds: overlapSeconds,
26
- windowSize: windowSize,
27
- streamingConfig: streamingConfig
28
- }));
25
+ modelDownloadProgressCallback: setDownloadProgress
26
+ }), []);
27
+ useEffect(() => {
28
+ model.configureStreaming(overlapSeconds, windowSize, streamingConfig);
29
+ }, [model, overlapSeconds, windowSize, streamingConfig]);
29
30
  useEffect(() => {
30
31
  const loadModel = async () => {
31
32
  await model.loadModel(modelName, encoderSource, decoderSource, tokenizerSource);
32
33
  };
33
- loadModel();
34
- }, [model, modelName, encoderSource, decoderSource, tokenizerSource]);
34
+ if (!preventLoad) {
35
+ loadModel();
36
+ }
37
+ }, [model, modelName, encoderSource, decoderSource, tokenizerSource, preventLoad]);
35
38
  return {
36
39
  isReady,
37
40
  isGenerating,
@@ -39,7 +42,8 @@ export const useSpeechToText = ({
39
42
  configureStreaming: model.configureStreaming,
40
43
  sequence,
41
44
  error,
42
- transcribe: waveform => model.transcribe(waveform)
45
+ transcribe: (waveform, audioLanguage) => model.transcribe(waveform, audioLanguage),
46
+ streamingTranscribe: (streamAction, waveform, audioLanguage) => model.streamingTranscribe(streamAction, waveform, audioLanguage)
43
47
  };
44
48
  };
45
49
  //# sourceMappingURL=useSpeechToText.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useState","SpeechToTextController","useSpeechToText","modelName","encoderSource","decoderSource","tokenizerSource","overlapSeconds","windowSize","streamingConfig","sequence","setSequence","isReady","setIsReady","downloadProgress","setDownloadProgress","isGenerating","setIsGenerating","error","setError","model","_","transcribeCallback","isReadyCallback","isGeneratingCallback","onErrorCallback","modelDownloadProgessCallback","loadModel","configureStreaming","transcribe","waveform"],"sourceRoot":"../../../../src","sources":["hooks/natural_language_processing/useSpeechToText.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,sBAAsB,QAAQ,0CAA0C;AAejF,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAC9BC,SAAS;EACTC,aAAa;EACbC,aAAa;EACbC,eAAe;EACfC,cAAc;EACdC,UAAU;EACVC;AAeF,CAAC,KAAyB;EACxB,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGX,QAAQ,CAAS,EAAE,CAAC;EACpD,MAAM,CAACY,OAAO,EAAEC,UAAU,CAAC,GAAGb,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM,CAACc,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGf,QAAQ,CAAC,CAAC,CAAC;EAC3D,MAAM,CAACgB,YAAY,EAAEC,eAAe,CAAC,GAAGjB,QAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAACkB,KAAK,EAAEC,QAAQ,CAAC,GAAGnB,QAAQ,CAAoB,CAAC;EAEvD,MAAM,CAACoB,KAAK,EAAEC,CAAC,CAAC,GAAGrB,QAAQ,CACzB,MACE,IAAIC,sBAAsB,CAAC;IACzBqB,kBAAkB,EAAEX,WAAW;IAC/BY,eAAe,EAAEV,UAAU;IAC3BW,oBAAoB,EAAEP,eAAe;IACrCQ,eAAe,EAAEN,QAAQ;IACzBO,4BAA4B,EAAEX,mBAAmB;IACjDR,cAAc,EAAEA,cAAc;IAC9BC,UAAU,EAAEA,UAAU;IACtBC,eAAe,EAAEA;EACnB,CAAC,CACL,CAAC;EAEDV,SAAS,CAAC,MAAM;IACd,MAAM4B,SAAS,GAAG,MAAAA,CAAA,KAAY;MAC5B,MAAMP,KAAK,CAACO,SAAS,CACnBxB,SAAS,EACTC,aAAa,EACbC,aAAa,EACbC,eACF,CAAC;IACH,CAAC;IACDqB,SAAS,CAAC,CAAC;EACb,CAAC,EAAE,CAACP,KAAK,EAAEjB,SAAS,EAAEC,aAAa,EAAEC,aAAa,EAAEC,eAAe,CAAC,CAAC;EAErE,OAAO;IACLM,OAAO;IACPI,YAAY;IACZF,gBAAgB;IAChBc,kBAAkB,EAAER,KAAK,CAACQ,kBAAkB;IAC5ClB,QAAQ;IACRQ,KAAK;IACLW,UAAU,EAAGC,QAAkB,IAAKV,KAAK,CAACS,UAAU,CAACC,QAAQ;EAC/D,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","useState","SpeechToTextController","useSpeechToText","modelName","encoderSource","decoderSource","tokenizerSource","overlapSeconds","windowSize","streamingConfig","preventLoad","sequence","setSequence","isReady","setIsReady","downloadProgress","setDownloadProgress","isGenerating","setIsGenerating","error","setError","model","transcribeCallback","isReadyCallback","isGeneratingCallback","onErrorCallback","modelDownloadProgressCallback","configureStreaming","loadModel","transcribe","waveform","audioLanguage","streamingTranscribe","streamAction"],"sourceRoot":"../../../../src","sources":["hooks/natural_language_processing/useSpeechToText.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AACpD,SAASC,sBAAsB,QAAQ,0CAA0C;AAuBjF,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAC9BC,SAAS;EACTC,aAAa;EACbC,aAAa;EACbC,eAAe;EACfC,cAAc;EACdC,UAAU;EACVC,eAAe;EACfC,WAAW,GAAG;AAgBhB,CAAC,KAAyB;EACxB,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGZ,QAAQ,CAAS,EAAE,CAAC;EACpD,MAAM,CAACa,OAAO,EAAEC,UAAU,CAAC,GAAGd,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM,CAACe,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGhB,QAAQ,CAAC,CAAC,CAAC;EAC3D,MAAM,CAACiB,YAAY,EAAEC,eAAe,CAAC,GAAGlB,QAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAACmB,KAAK,EAAEC,QAAQ,CAAC,GAAGpB,QAAQ,CAAoB,CAAC;EAEvD,MAAMqB,KAAK,GAAGtB,OAAO,CACnB,MACE,IAAIE,sBAAsB,CAAC;IACzBqB,kBAAkB,EAAEV,WAAW;IAC/BW,eAAe,EAAET,UAAU;IAC3BU,oBAAoB,EAAEN,eAAe;IACrCO,eAAe,EAAEL,QAAQ;IACzBM,6BAA6B,EAAEV;EACjC,CAAC,CAAC,EACJ,EACF,CAAC;EAEDlB,SAAS,CAAC,MAAM;IACduB,KAAK,CAACM,kBAAkB,CAACpB,cAAc,EAAEC,UAAU,EAAEC,eAAe,CAAC;EACvE,CAAC,EAAE,CAACY,KAAK,EAAEd,cAAc,EAAEC,UAAU,EAAEC,eAAe,CAAC,CAAC;EAExDX,SAAS,CAAC,MAAM;IACd,MAAM8B,SAAS,GAAG,MAAAA,CAAA,KAAY;MAC5B,MAAMP,KAAK,CAACO,SAAS,CACnBzB,SAAS,EACTC,aAAa,EACbC,aAAa,EACbC,eACF,CAAC;IACH,CAAC;IACD,IAAI,CAACI,WAAW,EAAE;MAChBkB,SAAS,CAAC,CAAC;IACb;EACF,CAAC,EAAE,CACDP,KAAK,EACLlB,SAAS,EACTC,aAAa,EACbC,aAAa,EACbC,eAAe,EACfI,WAAW,CACZ,CAAC;EAEF,OAAO;IACLG,OAAO;IACPI,YAAY;IACZF,gBAAgB;IAChBY,kBAAkB,EAAEN,KAAK,CAACM,kBAAkB;IAC5ChB,QAAQ;IACRQ,KAAK;IACLU,UAAU,EAAEA,CAACC,QAAkB,EAAEC,aAAoC,KACnEV,KAAK,CAACQ,UAAU,CAACC,QAAQ,EAAEC,aAAa,CAAC;IAC3CC,mBAAmB,EAAEA,CACnBC,YAA8B,EAC9BH,QAAmB,EACnBC,aAAoC,KACjCV,KAAK,CAACW,mBAAmB,CAACC,YAAY,EAAEH,QAAQ,EAAEC,aAAa;EACtE,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ import { TextEmbeddingsModule } from '../../modules/natural_language_processing/TextEmbeddingsModule';
4
+ import { useModule } from '../useModule';
5
+ export const useTextEmbeddings = ({
6
+ modelSource,
7
+ tokenizerSource,
8
+ preventLoad = false
9
+ }) => useModule({
10
+ module: TextEmbeddingsModule,
11
+ loadArgs: [modelSource, tokenizerSource],
12
+ preventLoad
13
+ });
14
+ //# sourceMappingURL=useTextEmbeddings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TextEmbeddingsModule","useModule","useTextEmbeddings","modelSource","tokenizerSource","preventLoad","module","loadArgs"],"sourceRoot":"../../../../src","sources":["hooks/natural_language_processing/useTextEmbeddings.ts"],"mappings":";;AAAA,SAASA,oBAAoB,QAAQ,gEAAgE;AAErG,SAASC,SAAS,QAAQ,cAAc;AAExC,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EAChCC,WAAW;EACXC,eAAe;EACfC,WAAW,GAAG;AAKhB,CAAC,KACCJ,SAAS,CAAC;EACRK,MAAM,EAAEN,oBAAoB;EAC5BO,QAAQ,EAAE,CAACJ,WAAW,EAAEC,eAAe,CAAC;EACxCC;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useState } from 'react';
4
+ import { TokenizerModule } from '../../modules/natural_language_processing/TokenizerModule';
5
+ import { ETError, getError } from '../../Error';
6
+ export const useTokenizer = ({
7
+ tokenizerSource,
8
+ preventLoad = false
9
+ }) => {
10
+ const [error, setError] = useState(null);
11
+ const [isReady, setIsReady] = useState(false);
12
+ const [isGenerating, setIsGenerating] = useState(false);
13
+ const [downloadProgress, setDownloadProgress] = useState(0);
14
+ useEffect(() => {
15
+ const loadModule = async () => {
16
+ try {
17
+ setIsReady(false);
18
+ TokenizerModule.onDownloadProgress(setDownloadProgress);
19
+ await TokenizerModule.load(tokenizerSource);
20
+ setIsReady(true);
21
+ } catch (err) {
22
+ setError(err.message);
23
+ }
24
+ };
25
+ if (!preventLoad) {
26
+ loadModule();
27
+ }
28
+ }, [tokenizerSource, preventLoad]);
29
+ const stateWrapper = fn => {
30
+ const boundFn = fn.bind(TokenizerModule);
31
+ return async (...args) => {
32
+ if (!isReady) throw new Error(getError(ETError.ModuleNotLoaded));
33
+ if (isGenerating) throw new Error(getError(ETError.ModelGenerating));
34
+ setIsGenerating(true);
35
+ try {
36
+ return await boundFn(...args);
37
+ } finally {
38
+ setIsGenerating(false);
39
+ }
40
+ };
41
+ };
42
+ return {
43
+ error,
44
+ isReady,
45
+ isGenerating,
46
+ downloadProgress,
47
+ decode: stateWrapper(TokenizerModule.decode),
48
+ encode: stateWrapper(TokenizerModule.encode),
49
+ getVocabSize: stateWrapper(TokenizerModule.getVocabSize),
50
+ idToToken: stateWrapper(TokenizerModule.idToToken),
51
+ tokenToId: stateWrapper(TokenizerModule.tokenToId)
52
+ };
53
+ };
54
+ //# sourceMappingURL=useTokenizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useState","TokenizerModule","ETError","getError","useTokenizer","tokenizerSource","preventLoad","error","setError","isReady","setIsReady","isGenerating","setIsGenerating","downloadProgress","setDownloadProgress","loadModule","onDownloadProgress","load","err","message","stateWrapper","fn","boundFn","bind","args","Error","ModuleNotLoaded","ModelGenerating","decode","encode","getVocabSize","idToToken","tokenToId"],"sourceRoot":"../../../../src","sources":["hooks/natural_language_processing/useTokenizer.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,eAAe,QAAQ,2DAA2D;AAE3F,SAASC,OAAO,EAAEC,QAAQ,QAAQ,aAAa;AAE/C,OAAO,MAAMC,YAAY,GAAGA,CAAC;EAC3BC,eAAe;EACfC,WAAW,GAAG;AAIhB,CAAC,KAAK;EACJ,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGR,QAAQ,CAAgB,IAAI,CAAC;EACvD,MAAM,CAACS,OAAO,EAAEC,UAAU,CAAC,GAAGV,QAAQ,CAAC,KAAK,CAAC;EAC7C,MAAM,CAACW,YAAY,EAAEC,eAAe,CAAC,GAAGZ,QAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAACa,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGd,QAAQ,CAAC,CAAC,CAAC;EAE3DD,SAAS,CAAC,MAAM;IACd,MAAMgB,UAAU,GAAG,MAAAA,CAAA,KAAY;MAC7B,IAAI;QACFL,UAAU,CAAC,KAAK,CAAC;QACjBT,eAAe,CAACe,kBAAkB,CAACF,mBAAmB,CAAC;QACvD,MAAMb,eAAe,CAACgB,IAAI,CAACZ,eAAe,CAAC;QAC3CK,UAAU,CAAC,IAAI,CAAC;MAClB,CAAC,CAAC,OAAOQ,GAAG,EAAE;QACZV,QAAQ,CAAEU,GAAG,CAAWC,OAAO,CAAC;MAClC;IACF,CAAC;IACD,IAAI,CAACb,WAAW,EAAE;MAChBS,UAAU,CAAC,CAAC;IACd;EACF,CAAC,EAAE,CAACV,eAAe,EAAEC,WAAW,CAAC,CAAC;EAElC,MAAMc,YAAY,GAAgDC,EAAK,IAAK;IAC1E,MAAMC,OAAO,GAAGD,EAAE,CAACE,IAAI,CAACtB,eAAe,CAAC;IAExC,OAAO,OAAO,GAAGuB,IAAmB,KAA6B;MAC/D,IAAI,CAACf,OAAO,EAAE,MAAM,IAAIgB,KAAK,CAACtB,QAAQ,CAACD,OAAO,CAACwB,eAAe,CAAC,CAAC;MAChE,IAAIf,YAAY,EAAE,MAAM,IAAIc,KAAK,CAACtB,QAAQ,CAACD,OAAO,CAACyB,eAAe,CAAC,CAAC;MAEpEf,eAAe,CAAC,IAAI,CAAC;MACrB,IAAI;QACF,OAAO,MAAMU,OAAO,CAAC,GAAGE,IAAI,CAAC;MAC/B,CAAC,SAAS;QACRZ,eAAe,CAAC,KAAK,CAAC;MACxB;IACF,CAAC;EACH,CAAC;EAED,OAAO;IACLL,KAAK;IACLE,OAAO;IACPE,YAAY;IACZE,gBAAgB;IAChBe,MAAM,EAAER,YAAY,CAACnB,eAAe,CAAC2B,MAAM,CAAC;IAC5CC,MAAM,EAAET,YAAY,CAACnB,eAAe,CAAC4B,MAAM,CAAC;IAC5CC,YAAY,EAAEV,YAAY,CAACnB,eAAe,CAAC6B,YAAY,CAAC;IACxDC,SAAS,EAAEX,YAAY,CAACnB,eAAe,CAAC8B,SAAS,CAAC;IAClDC,SAAS,EAAEZ,YAAY,CAACnB,eAAe,CAAC+B,SAAS;EACnD,CAAC;AACH,CAAC","ignoreList":[]}