cactus-react-native 1.1.0 → 1.2.1

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 (49) hide show
  1. package/README.md +23 -10
  2. package/android/src/main/java/com/margelo/nitro/cactus/HybridCactusFileSystem.kt +1 -3
  3. package/android/src/main/jniLibs/arm64-v8a/libcactus.a +0 -0
  4. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/engine.h +2 -2
  5. package/ios/cactus.xcframework/ios-arm64/cactus.framework/Headers/graph.h +46 -6
  6. package/ios/cactus.xcframework/ios-arm64/cactus.framework/cactus +0 -0
  7. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/engine.h +2 -2
  8. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/Headers/graph.h +46 -6
  9. package/ios/cactus.xcframework/ios-arm64-simulator/cactus.framework/cactus +0 -0
  10. package/lib/module/api/Database.js +45 -0
  11. package/lib/module/api/Database.js.map +1 -1
  12. package/lib/module/classes/CactusLM.js +0 -5
  13. package/lib/module/classes/CactusLM.js.map +1 -1
  14. package/lib/module/classes/CactusSTT.js +8 -10
  15. package/lib/module/classes/CactusSTT.js.map +1 -1
  16. package/lib/module/constants/packageVersion.js +1 -1
  17. package/lib/module/hooks/useCactusSTT.js +7 -7
  18. package/lib/module/hooks/useCactusSTT.js.map +1 -1
  19. package/lib/module/index.js.map +1 -1
  20. package/lib/module/native/Cactus.js +8 -3
  21. package/lib/module/native/Cactus.js.map +1 -1
  22. package/lib/module/types/CactusSTTModel.js +2 -0
  23. package/lib/module/types/CactusSTTModel.js.map +1 -0
  24. package/lib/typescript/src/api/Database.d.ts +3 -0
  25. package/lib/typescript/src/api/Database.d.ts.map +1 -1
  26. package/lib/typescript/src/classes/CactusLM.d.ts +0 -1
  27. package/lib/typescript/src/classes/CactusLM.d.ts.map +1 -1
  28. package/lib/typescript/src/classes/CactusSTT.d.ts +3 -3
  29. package/lib/typescript/src/classes/CactusSTT.d.ts.map +1 -1
  30. package/lib/typescript/src/constants/packageVersion.d.ts +1 -1
  31. package/lib/typescript/src/hooks/useCactusSTT.d.ts +3 -3
  32. package/lib/typescript/src/hooks/useCactusSTT.d.ts.map +1 -1
  33. package/lib/typescript/src/index.d.ts +1 -0
  34. package/lib/typescript/src/index.d.ts.map +1 -1
  35. package/lib/typescript/src/native/Cactus.d.ts.map +1 -1
  36. package/lib/typescript/src/types/CactusModel.d.ts +1 -0
  37. package/lib/typescript/src/types/CactusModel.d.ts.map +1 -1
  38. package/lib/typescript/src/types/CactusSTTModel.d.ts +8 -0
  39. package/lib/typescript/src/types/CactusSTTModel.d.ts.map +1 -0
  40. package/package.json +1 -1
  41. package/src/api/Database.ts +66 -0
  42. package/src/classes/CactusLM.ts +0 -6
  43. package/src/classes/CactusSTT.ts +14 -13
  44. package/src/constants/packageVersion.ts +1 -1
  45. package/src/hooks/useCactusSTT.ts +9 -9
  46. package/src/index.tsx +1 -0
  47. package/src/native/Cactus.ts +11 -3
  48. package/src/types/CactusModel.ts +1 -0
  49. package/src/types/CactusSTTModel.ts +10 -0
package/README.md CHANGED
@@ -460,7 +460,7 @@ const App = () => {
460
460
  return (
461
461
  <>
462
462
  <Button onPress={handleTranscribe} title="Transcribe" />
463
- <Text>{cactusSTT.response}</Text>
463
+ <Text>{cactusSTT.transcription}</Text>
464
464
  </>
465
465
  );
466
466
  };
@@ -577,7 +577,7 @@ Releases all resources associated with the model. Automatically calls `stop()` f
577
577
 
578
578
  **`getModels(): Promise<CactusModel[]>`**
579
579
 
580
- Fetches available models from the database and checks their download status. Results are cached in memory after the first call and subsequent calls return the cached results.
580
+ Fetches available models from the database and checks their download status.
581
581
 
582
582
  ### useCactusLM Hook
583
583
 
@@ -603,7 +603,7 @@ The `useCactusLM` hook manages a `CactusLM` instance with reactive state. When m
603
603
  - `stop(): Promise<void>` - Stops ongoing generation. Clears any errors.
604
604
  - `reset(): Promise<void>` - Resets the model's internal state, clearing cached context. Also clears the `completion` state.
605
605
  - `destroy(): Promise<void>` - Releases all resources associated with the model. Clears the `completion` state. Automatically called when the component unmounts.
606
- - `getModels(): Promise<CactusModel[]>` - Fetches available models from the database and checks their download status. Results are cached in memory and reused on subsequent calls.
606
+ - `getModels(): Promise<CactusModel[]>` - Fetches available models from the database and checks their download status.
607
607
 
608
608
  ### CactusSTT Class
609
609
 
@@ -662,9 +662,9 @@ Resets the model's internal state. Automatically calls `stop()` first.
662
662
 
663
663
  Releases all resources associated with the model. Automatically calls `stop()` first. Safe to call even if the model is not initialized.
664
664
 
665
- **`getModels(): Promise<CactusModel[]>`**
665
+ **`getModels(): Promise<CactusSTTModel[]>`**
666
666
 
667
- Fetches available models from the database and checks their download status. Results are cached in memory after the first call and subsequent calls return the cached results.
667
+ Fetches available STT models from the database and checks their download status.
668
668
 
669
669
  ### useCactusSTT Hook
670
670
 
@@ -672,7 +672,7 @@ The `useCactusSTT` hook manages a `CactusSTT` instance with reactive state. When
672
672
 
673
673
  #### State
674
674
 
675
- - `response: string` - Current transcription text. Automatically accumulated during streaming. Cleared before each new transcription and when calling `reset()` or `destroy()`.
675
+ - `transcription: string` - Current transcription text. Automatically accumulated during streaming. Cleared before each new transcription and when calling `reset()` or `destroy()`.
676
676
  - `isGenerating: boolean` - Whether the model is currently generating (transcription or embedding). Both operations share this flag.
677
677
  - `isInitializing: boolean` - Whether the model is initializing.
678
678
  - `isDownloaded: boolean` - Whether the model is downloaded locally. Automatically checked when the hook mounts or model changes.
@@ -684,12 +684,12 @@ The `useCactusSTT` hook manages a `CactusSTT` instance with reactive state. When
684
684
 
685
685
  - `download(params?: CactusSTTDownloadParams): Promise<void>` - Downloads the model. Updates `isDownloading` and `downloadProgress` state during download. Sets `isDownloaded` to `true` on success.
686
686
  - `init(): Promise<void>` - Initializes the model for inference. Sets `isInitializing` to `true` during initialization.
687
- - `transcribe(params: CactusSTTTranscribeParams): Promise<CactusSTTTranscribeResult>` - Transcribes audio to text. Automatically accumulates tokens in the `response` state during streaming. Sets `isGenerating` to `true` while generating. Clears `response` before starting.
687
+ - `transcribe(params: CactusSTTTranscribeParams): Promise<CactusSTTTranscribeResult>` - Transcribes audio to text. Automatically accumulates tokens in the `transcription` state during streaming. Sets `isGenerating` to `true` while generating. Clears `transcription` before starting.
688
688
  - `audioEmbed(params: CactusSTTAudioEmbedParams): Promise<CactusSTTAudioEmbedResult>` - Generates embeddings for the given audio. Sets `isGenerating` to `true` during operation.
689
689
  - `stop(): Promise<void>` - Stops ongoing generation. Clears any errors.
690
- - `reset(): Promise<void>` - Resets the model's internal state. Also clears the `response` state.
691
- - `destroy(): Promise<void>` - Releases all resources associated with the model. Clears the `response` state. Automatically called when the component unmounts.
692
- - `getModels(): Promise<CactusModel[]>` - Fetches available models from the database and checks their download status. Results are cached in memory and reused on subsequent calls.
690
+ - `reset(): Promise<void>` - Resets the model's internal state. Also clears the `transcription` state.
691
+ - `destroy(): Promise<void>` - Releases all resources associated with the model. Clears the `transcription` state. Automatically called when the component unmounts.
692
+ - `getModels(): Promise<CactusSTTModel[]>` - Fetches available STT models from the database and checks their download status.
693
693
 
694
694
  ## Type Definitions
695
695
 
@@ -826,6 +826,19 @@ interface CactusModel {
826
826
  downloadUrl: string;
827
827
  supportsToolCalling: boolean;
828
828
  supportsVision: boolean;
829
+ supportsCompletion: boolean;
830
+ createdAt: Date;
831
+ isDownloaded: boolean;
832
+ }
833
+ ```
834
+
835
+ ### CactusSTTModel
836
+
837
+ ```typescript
838
+ interface CactusSTTModel {
839
+ slug: string;
840
+ sizeMb: number;
841
+ downloadUrl: string;
829
842
  createdAt: Date;
830
843
  isDownloaded: boolean;
831
844
  }
@@ -210,9 +210,7 @@ class HybridCactusFileSystem : HybridCactusFileSystemSpec() {
210
210
  }
211
211
 
212
212
  private fun cactusFile(): File {
213
- val documentsDir =
214
- context.getExternalFilesDir(android.os.Environment.DIRECTORY_DOCUMENTS) ?: context.filesDir
215
- val cactusDir = File(documentsDir, "cactus")
213
+ val cactusDir = File(context.filesDir, "cactus")
216
214
 
217
215
  if (!cactusDir.exists()) {
218
216
  cactusDir.mkdirs()
@@ -319,7 +319,7 @@ private:
319
319
  };
320
320
 
321
321
  struct KVCache {
322
- static constexpr size_t DEFAULT_WINDOW_SIZE = 512;
322
+ static constexpr size_t DEFAULT_WINDOW_SIZE = 1024;
323
323
  static constexpr size_t DEFAULT_SINK_SIZE = 4;
324
324
 
325
325
  struct LayerCache {
@@ -387,7 +387,7 @@ public:
387
387
  const std::string& system_prompt = "", bool do_warmup = true);
388
388
 
389
389
  virtual uint32_t generate(const std::vector<uint32_t>& tokens, float temperature = -1.0f, float top_p = -1.0f,
390
- size_t top_k = 0, const std::string& profile_file = "");
390
+ size_t top_k = 0, const std::string& profile_file = "", bool prefill_only = false);
391
391
 
392
392
  virtual uint32_t generate_with_images(const std::vector<uint32_t>& tokens, const std::vector<std::string>& image_paths,
393
393
  float temperature = -1.0f, float top_p = -1.0f,
@@ -92,32 +92,44 @@ struct TensorConfig {
92
92
  struct BroadcastInfo {
93
93
  std::vector<size_t> output_shape;
94
94
  bool needs_broadcasting;
95
-
95
+
96
96
  static BroadcastInfo compute(const std::vector<size_t>& lhs, const std::vector<size_t>& rhs);
97
97
  };
98
98
 
99
+ class BufferPool;
100
+
99
101
  struct BufferDesc {
100
102
  std::vector<size_t> shape;
101
103
  size_t total_size;
102
104
  size_t byte_size;
103
105
  std::unique_ptr<char[]> data;
104
106
  void* external_data;
107
+ char* pooled_data;
105
108
  Precision precision;
106
109
  float quantization_scale;
107
-
110
+
108
111
  BufferDesc();
109
112
  BufferDesc(const std::vector<size_t>& s, Precision prec = Precision::INT8, float scale = 1.0f);
110
-
113
+ ~BufferDesc();
114
+
115
+ BufferDesc(BufferDesc&& other) noexcept;
116
+ BufferDesc& operator=(BufferDesc&& other) noexcept;
117
+
118
+ BufferDesc(const BufferDesc&) = delete;
119
+ BufferDesc& operator=(const BufferDesc&) = delete;
120
+
111
121
  void* get_data();
112
122
  const void* get_data() const;
113
-
123
+
114
124
  template<typename T>
115
125
  T* data_as() { return static_cast<T*>(get_data()); }
116
-
126
+
117
127
  template<typename T>
118
128
  const T* data_as() const { return static_cast<const T*>(get_data()); }
119
-
129
+
120
130
  void allocate();
131
+ void allocate_from_pool(BufferPool& pool);
132
+ void release_to_pool(BufferPool& pool);
121
133
  void set_external(void* ptr);
122
134
  };
123
135
 
@@ -181,6 +193,33 @@ void compute_topk_node(GraphNode& node, const std::vector<std::unique_ptr<GraphN
181
193
  void compute_layernorm_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
182
194
  void compute_index_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
183
195
 
196
+ void shrink_thread_local_buffers();
197
+
198
+ class BufferPool {
199
+ public:
200
+ BufferPool() = default;
201
+ ~BufferPool() = default;
202
+
203
+ BufferPool(const BufferPool&) = delete;
204
+ BufferPool& operator=(const BufferPool&) = delete;
205
+
206
+ char* acquire(size_t byte_size);
207
+ void release(char* ptr, size_t byte_size);
208
+ void clear();
209
+
210
+ size_t active_bytes() const { return active_bytes_; }
211
+ size_t pool_bytes() const { return pool_bytes_; }
212
+ size_t peak_bytes() const { return peak_bytes_; }
213
+
214
+ private:
215
+ std::unordered_map<size_t, std::vector<std::unique_ptr<char[]>>> free_buffers_;
216
+ size_t active_bytes_ = 0;
217
+ size_t pool_bytes_ = 0;
218
+ size_t peak_bytes_ = 0;
219
+
220
+ size_t round_up_size(size_t size) const;
221
+ };
222
+
184
223
  namespace ValidationUtils {
185
224
  void validate_tensor_dims(const std::vector<size_t>& shape, size_t required_dims, const std::string& op_name);
186
225
  void validate_precision(Precision actual, Precision required, const std::string& op_name);
@@ -286,6 +325,7 @@ private:
286
325
  std::vector<std::unique_ptr<GraphFile::MappedFile>> mapped_files_;
287
326
  std::unordered_map<std::string, size_t> weight_cache_;
288
327
  std::vector<DebugNodeEntry> debug_nodes_;
328
+ BufferPool buffer_pool_;
289
329
  };
290
330
 
291
331
 
@@ -319,7 +319,7 @@ private:
319
319
  };
320
320
 
321
321
  struct KVCache {
322
- static constexpr size_t DEFAULT_WINDOW_SIZE = 512;
322
+ static constexpr size_t DEFAULT_WINDOW_SIZE = 1024;
323
323
  static constexpr size_t DEFAULT_SINK_SIZE = 4;
324
324
 
325
325
  struct LayerCache {
@@ -387,7 +387,7 @@ public:
387
387
  const std::string& system_prompt = "", bool do_warmup = true);
388
388
 
389
389
  virtual uint32_t generate(const std::vector<uint32_t>& tokens, float temperature = -1.0f, float top_p = -1.0f,
390
- size_t top_k = 0, const std::string& profile_file = "");
390
+ size_t top_k = 0, const std::string& profile_file = "", bool prefill_only = false);
391
391
 
392
392
  virtual uint32_t generate_with_images(const std::vector<uint32_t>& tokens, const std::vector<std::string>& image_paths,
393
393
  float temperature = -1.0f, float top_p = -1.0f,
@@ -92,32 +92,44 @@ struct TensorConfig {
92
92
  struct BroadcastInfo {
93
93
  std::vector<size_t> output_shape;
94
94
  bool needs_broadcasting;
95
-
95
+
96
96
  static BroadcastInfo compute(const std::vector<size_t>& lhs, const std::vector<size_t>& rhs);
97
97
  };
98
98
 
99
+ class BufferPool;
100
+
99
101
  struct BufferDesc {
100
102
  std::vector<size_t> shape;
101
103
  size_t total_size;
102
104
  size_t byte_size;
103
105
  std::unique_ptr<char[]> data;
104
106
  void* external_data;
107
+ char* pooled_data;
105
108
  Precision precision;
106
109
  float quantization_scale;
107
-
110
+
108
111
  BufferDesc();
109
112
  BufferDesc(const std::vector<size_t>& s, Precision prec = Precision::INT8, float scale = 1.0f);
110
-
113
+ ~BufferDesc();
114
+
115
+ BufferDesc(BufferDesc&& other) noexcept;
116
+ BufferDesc& operator=(BufferDesc&& other) noexcept;
117
+
118
+ BufferDesc(const BufferDesc&) = delete;
119
+ BufferDesc& operator=(const BufferDesc&) = delete;
120
+
111
121
  void* get_data();
112
122
  const void* get_data() const;
113
-
123
+
114
124
  template<typename T>
115
125
  T* data_as() { return static_cast<T*>(get_data()); }
116
-
126
+
117
127
  template<typename T>
118
128
  const T* data_as() const { return static_cast<const T*>(get_data()); }
119
-
129
+
120
130
  void allocate();
131
+ void allocate_from_pool(BufferPool& pool);
132
+ void release_to_pool(BufferPool& pool);
121
133
  void set_external(void* ptr);
122
134
  };
123
135
 
@@ -181,6 +193,33 @@ void compute_topk_node(GraphNode& node, const std::vector<std::unique_ptr<GraphN
181
193
  void compute_layernorm_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
182
194
  void compute_index_node(GraphNode& node, const std::vector<std::unique_ptr<GraphNode>>& nodes, const std::unordered_map<size_t, size_t>& node_index_map);
183
195
 
196
+ void shrink_thread_local_buffers();
197
+
198
+ class BufferPool {
199
+ public:
200
+ BufferPool() = default;
201
+ ~BufferPool() = default;
202
+
203
+ BufferPool(const BufferPool&) = delete;
204
+ BufferPool& operator=(const BufferPool&) = delete;
205
+
206
+ char* acquire(size_t byte_size);
207
+ void release(char* ptr, size_t byte_size);
208
+ void clear();
209
+
210
+ size_t active_bytes() const { return active_bytes_; }
211
+ size_t pool_bytes() const { return pool_bytes_; }
212
+ size_t peak_bytes() const { return peak_bytes_; }
213
+
214
+ private:
215
+ std::unordered_map<size_t, std::vector<std::unique_ptr<char[]>>> free_buffers_;
216
+ size_t active_bytes_ = 0;
217
+ size_t pool_bytes_ = 0;
218
+ size_t peak_bytes_ = 0;
219
+
220
+ size_t round_up_size(size_t size) const;
221
+ };
222
+
184
223
  namespace ValidationUtils {
185
224
  void validate_tensor_dims(const std::vector<size_t>& shape, size_t required_dims, const std::string& op_name);
186
225
  void validate_precision(Precision actual, Precision required, const std::string& op_name);
@@ -286,6 +325,7 @@ private:
286
325
  std::vector<std::unique_ptr<GraphFile::MappedFile>> mapped_files_;
287
326
  std::unordered_map<std::string, size_t> weight_cache_;
288
327
  std::vector<DebugNodeEntry> debug_nodes_;
328
+ BufferPool buffer_pool_;
289
329
  };
290
330
 
291
331
 
@@ -52,6 +52,30 @@ export class Database {
52
52
  downloadUrl: model.download_url,
53
53
  supportsToolCalling: model.supports_tool_calling,
54
54
  supportsVision: model.supports_vision,
55
+ supportsCompletion: model.supports_completion,
56
+ createdAt: model.created_at,
57
+ isDownloaded: false
58
+ };
59
+ }
60
+ static async getSTTModel(slug) {
61
+ const response = await fetch(`${this.url}/rest/v1/whisper?slug=eq.${slug}&select=*`, {
62
+ headers: {
63
+ 'apikey': this.key,
64
+ 'Authorization': `Bearer ${this.key}`,
65
+ 'Accept-Profile': 'cactus'
66
+ }
67
+ });
68
+ if (!response.ok) {
69
+ throw new Error('Getting STT model failed');
70
+ }
71
+ const [model] = await response.json();
72
+ if (!model) {
73
+ throw new Error(`STT model with slug "${slug}" not found`);
74
+ }
75
+ return {
76
+ slug: model.slug,
77
+ downloadUrl: model.download_url,
78
+ sizeMb: model.size_mb,
55
79
  createdAt: model.created_at,
56
80
  isDownloaded: false
57
81
  };
@@ -75,6 +99,27 @@ export class Database {
75
99
  downloadUrl: model.download_url,
76
100
  supportsToolCalling: model.supports_tool_calling,
77
101
  supportsVision: model.supports_vision,
102
+ supportsCompletion: model.supports_completion,
103
+ createdAt: model.created_at,
104
+ isDownloaded: false
105
+ }));
106
+ }
107
+ static async getSTTModels() {
108
+ const response = await fetch(`${this.url}/rest/v1/whisper?select=*`, {
109
+ headers: {
110
+ 'apikey': this.key,
111
+ 'Authorization': `Bearer ${this.key}`,
112
+ 'Accept-Profile': 'cactus'
113
+ }
114
+ });
115
+ if (!response.ok) {
116
+ throw new Error('Getting STT models failed');
117
+ }
118
+ const models = await response.json();
119
+ return models.map(model => ({
120
+ slug: model.slug,
121
+ downloadUrl: model.download_url,
122
+ sizeMb: model.size_mb,
78
123
  createdAt: model.created_at,
79
124
  isDownloaded: false
80
125
  }));
@@ -1 +1 @@
1
- {"version":3,"names":["CactusUtil","packageVersion","Database","url","key","sendLogRecords","records","response","fetch","method","headers","body","JSON","stringify","ok","Error","registerDevice","device_data","registerApp","text","getModel","slug","apikey","Authorization","model","json","name","quantization","sizeMb","size_mb","downloadUrl","download_url","supportsToolCalling","supports_tool_calling","supportsVision","supports_vision","createdAt","created_at","isDownloaded","getModels","models","map"],"sourceRoot":"../../../src","sources":["api/Database.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CactusUtil","packageVersion","Database","url","key","sendLogRecords","records","response","fetch","method","headers","body","JSON","stringify","ok","Error","registerDevice","device_data","registerApp","text","getModel","slug","apikey","Authorization","model","json","name","quantization","sizeMb","size_mb","downloadUrl","download_url","supportsToolCalling","supports_tool_calling","supportsVision","supports_vision","supportsCompletion","supports_completion","createdAt","created_at","isDownloaded","getSTTModel","getModels","models","map","getSTTModels"],"sourceRoot":"../../../src","sources":["api/Database.ts"],"mappings":"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","ignoreList":[]}
@@ -18,7 +18,6 @@ export class CactusLM {
18
18
  };
19
19
  static defaultCompleteMode = 'local';
20
20
  static defaultEmbedBufferSize = 2048;
21
- static cactusModelsCache = null;
22
21
  constructor({
23
22
  model,
24
23
  contextSize,
@@ -163,14 +162,10 @@ export class CactusLM {
163
162
  this.isInitialized = false;
164
163
  }
165
164
  async getModels() {
166
- if (CactusLM.cactusModelsCache) {
167
- return CactusLM.cactusModelsCache;
168
- }
169
165
  const models = await Database.getModels();
170
166
  for (const model of models) {
171
167
  model.isDownloaded = await CactusFileSystem.modelExists(model.slug);
172
168
  }
173
- CactusLM.cactusModelsCache = models;
174
169
  return models;
175
170
  }
176
171
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Cactus","CactusFileSystem","Telemetry","CactusConfig","Database","getErrorMessage","RemoteLM","CactusLM","cactus","isDownloading","isInitialized","isGenerating","defaultModel","defaultContextSize","defaultCompleteOptions","maxTokens","defaultCompleteMode","defaultEmbedBufferSize","cactusModelsCache","constructor","model","contextSize","corpusDir","init","telemetryToken","download","onProgress","Error","modelExists","getModel","downloadModel","downloadUrl","modelPath","getModelPath","logInit","error","complete","messages","options","tools","onToken","mode","toolsInternal","map","tool","type","function","responseBufferSize","result","logCompletion","success","undefined","response","localError","remoteError","embed","text","embedding","logEmbedding","imageEmbed","imagePath","logImageEmbedding","stop","reset","destroy","getModels","models","isDownloaded","slug"],"sourceRoot":"../../../src","sources":["classes/CactusLM.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Cactus","CactusFileSystem","Telemetry","CactusConfig","Database","getErrorMessage","RemoteLM","CactusLM","cactus","isDownloading","isInitialized","isGenerating","defaultModel","defaultContextSize","defaultCompleteOptions","maxTokens","defaultCompleteMode","defaultEmbedBufferSize","constructor","model","contextSize","corpusDir","init","telemetryToken","download","onProgress","Error","modelExists","getModel","downloadModel","downloadUrl","modelPath","getModelPath","logInit","error","complete","messages","options","tools","onToken","mode","toolsInternal","map","tool","type","function","responseBufferSize","result","logCompletion","success","undefined","response","localError","remoteError","embed","text","embedding","logEmbedding","imageEmbed","imagePath","logImageEmbedding","stop","reset","destroy","getModels","models","isDownloaded","slug"],"sourceRoot":"../../../src","sources":["classes/CactusLM.ts"],"mappings":"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","ignoreList":[]}
@@ -12,11 +12,11 @@ export class CactusSTT {
12
12
  isGenerating = false;
13
13
  static defaultModel = 'whisper-small';
14
14
  static defaultContextSize = 2048;
15
+ static defaultPrompt = '<|startoftranscript|><|en|><|transcribe|><|notimestamps|>';
15
16
  static defaultTranscribeOptions = {
16
17
  maxTokens: 512
17
18
  };
18
- static defaultEmbedBufferSize = 32768;
19
- static cactusModelsCache = null;
19
+ static defaultEmbedBufferSize = 4096;
20
20
  constructor({
21
21
  model,
22
22
  contextSize
@@ -37,7 +37,8 @@ export class CactusSTT {
37
37
  }
38
38
  this.isDownloading = true;
39
39
  try {
40
- await CactusFileSystem.downloadModel(this.model, `https://vlqqczxwyaodtcdmdmlw.supabase.co/storage/v1/object/public/voice-models/${this.model}.zip`, onProgress);
40
+ const model = await Database.getSTTModel(this.model);
41
+ await CactusFileSystem.downloadModel(this.model, model.downloadUrl, onProgress);
41
42
  } finally {
42
43
  this.isDownloading = false;
43
44
  }
@@ -61,7 +62,7 @@ export class CactusSTT {
61
62
  }
62
63
  async transcribe({
63
64
  audioFilePath,
64
- prompt = '<|startoftranscript|><|en|><|transcribe|><|notimestamps|>',
65
+ prompt,
65
66
  options,
66
67
  onToken
67
68
  }) {
@@ -69,11 +70,12 @@ export class CactusSTT {
69
70
  throw new Error('CactusSTT is already generating');
70
71
  }
71
72
  await this.init();
73
+ prompt = prompt ?? CactusSTT.defaultPrompt;
72
74
  options = {
73
75
  ...CactusSTT.defaultTranscribeOptions,
74
76
  ...options
75
77
  };
76
- const responseBufferSize = 32768;
78
+ const responseBufferSize = 8 * (options.maxTokens ?? CactusSTT.defaultTranscribeOptions.maxTokens) + 256;
77
79
  this.isGenerating = true;
78
80
  try {
79
81
  const result = await this.cactus.transcribe(audioFilePath, prompt, responseBufferSize, options, onToken);
@@ -123,14 +125,10 @@ export class CactusSTT {
123
125
  this.isInitialized = false;
124
126
  }
125
127
  async getModels() {
126
- if (CactusSTT.cactusModelsCache) {
127
- return CactusSTT.cactusModelsCache;
128
- }
129
- const models = await Database.getModels();
128
+ const models = await Database.getSTTModels();
130
129
  for (const model of models) {
131
130
  model.isDownloaded = await CactusFileSystem.modelExists(model.slug);
132
131
  }
133
- CactusSTT.cactusModelsCache = models;
134
132
  return models;
135
133
  }
136
134
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Cactus","CactusFileSystem","Telemetry","CactusConfig","Database","getErrorMessage","CactusSTT","cactus","isDownloading","isInitialized","isGenerating","defaultModel","defaultContextSize","defaultTranscribeOptions","maxTokens","defaultEmbedBufferSize","cactusModelsCache","constructor","model","contextSize","init","telemetryToken","download","onProgress","Error","modelExists","downloadModel","modelPath","getModelPath","logInit","error","transcribe","audioFilePath","prompt","options","onToken","responseBufferSize","result","logTranscribe","success","undefined","response","audioEmbed","audioPath","embedding","logAudioEmbedding","stop","reset","destroy","getModels","models","isDownloaded","slug"],"sourceRoot":"../../../src","sources":["classes/CactusSTT.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Cactus","CactusFileSystem","Telemetry","CactusConfig","Database","getErrorMessage","CactusSTT","cactus","isDownloading","isInitialized","isGenerating","defaultModel","defaultContextSize","defaultPrompt","defaultTranscribeOptions","maxTokens","defaultEmbedBufferSize","constructor","model","contextSize","init","telemetryToken","download","onProgress","Error","modelExists","getSTTModel","downloadModel","downloadUrl","modelPath","getModelPath","logInit","error","transcribe","audioFilePath","prompt","options","onToken","responseBufferSize","result","logTranscribe","success","undefined","response","audioEmbed","audioPath","embedding","logAudioEmbedding","stop","reset","destroy","getModels","models","getSTTModels","isDownloaded","slug"],"sourceRoot":"../../../src","sources":["classes/CactusSTT.ts"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
 
3
- export const packageVersion = '1.1.0';
3
+ export const packageVersion = '1.2.1';
4
4
  //# sourceMappingURL=packageVersion.js.map
@@ -14,7 +14,7 @@ export const useCactusSTT = ({
14
14
  }));
15
15
 
16
16
  // State
17
- const [response, setResponse] = useState('');
17
+ const [transcription, setTranscription] = useState('');
18
18
  const [isGenerating, setIsGenerating] = useState(false);
19
19
  const [isInitializing, setIsInitializing] = useState(false);
20
20
  const [isDownloaded, setIsDownloaded] = useState(false);
@@ -31,7 +31,7 @@ export const useCactusSTT = ({
31
31
  model,
32
32
  contextSize
33
33
  }));
34
- setResponse('');
34
+ setTranscription('');
35
35
  setIsGenerating(false);
36
36
  setIsInitializing(false);
37
37
  setIsDownloaded(false);
@@ -133,7 +133,7 @@ export const useCactusSTT = ({
133
133
  throw new Error(message);
134
134
  }
135
135
  setError(null);
136
- setResponse('');
136
+ setTranscription('');
137
137
  setIsGenerating(true);
138
138
  try {
139
139
  return await cactusSTT.transcribe({
@@ -141,7 +141,7 @@ export const useCactusSTT = ({
141
141
  prompt,
142
142
  options,
143
143
  onToken: token => {
144
- setResponse(prev => prev + token);
144
+ setTranscription(prev => prev + token);
145
145
  onToken?.(token);
146
146
  }
147
147
  });
@@ -190,7 +190,7 @@ export const useCactusSTT = ({
190
190
  setError(getErrorMessage(e));
191
191
  throw e;
192
192
  } finally {
193
- setResponse('');
193
+ setTranscription('');
194
194
  }
195
195
  }, [cactusSTT]);
196
196
  const destroy = useCallback(async () => {
@@ -201,7 +201,7 @@ export const useCactusSTT = ({
201
201
  setError(getErrorMessage(e));
202
202
  throw e;
203
203
  } finally {
204
- setResponse('');
204
+ setTranscription('');
205
205
  }
206
206
  }, [cactusSTT]);
207
207
  const getModels = useCallback(async () => {
@@ -214,7 +214,7 @@ export const useCactusSTT = ({
214
214
  }
215
215
  }, [cactusSTT]);
216
216
  return {
217
- response,
217
+ transcription,
218
218
  isGenerating,
219
219
  isInitializing,
220
220
  isDownloaded,