@inferrlm/react-native-mlx 0.4.0 → 0.4.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.
- package/MLXReactNative.podspec +1 -1
- package/lib/module/index.js +9 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/llm.js +193 -0
- package/lib/module/llm.js.map +1 -0
- package/lib/module/modelManager.js +79 -0
- package/lib/module/modelManager.js.map +1 -0
- package/lib/module/models.js +360 -0
- package/lib/module/models.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/specs/LLM.nitro.js +4 -0
- package/lib/module/specs/LLM.nitro.js.map +1 -0
- package/lib/module/specs/ModelManager.nitro.js +4 -0
- package/lib/module/specs/ModelManager.nitro.js.map +1 -0
- package/lib/module/specs/STT.nitro.js +4 -0
- package/lib/module/specs/STT.nitro.js.map +1 -0
- package/lib/module/specs/TTS.nitro.js +4 -0
- package/lib/module/specs/TTS.nitro.js.map +1 -0
- package/lib/module/stt.js +49 -0
- package/lib/module/stt.js.map +1 -0
- package/lib/module/tool-utils.js +56 -0
- package/lib/module/tool-utils.js.map +1 -0
- package/lib/module/tts.js +40 -0
- package/lib/module/tts.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/index.d.ts +11 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/llm.d.ts +129 -0
- package/lib/typescript/src/llm.d.ts.map +1 -0
- package/lib/typescript/src/modelManager.d.ts +53 -0
- package/lib/typescript/src/modelManager.d.ts.map +1 -0
- package/lib/typescript/src/models.d.ts +67 -0
- package/lib/typescript/src/models.d.ts.map +1 -0
- package/lib/typescript/src/specs/LLM.nitro.d.ts +160 -0
- package/lib/typescript/src/specs/LLM.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/ModelManager.nitro.d.ts +41 -0
- package/lib/typescript/src/specs/ModelManager.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/STT.nitro.d.ts +28 -0
- package/lib/typescript/src/specs/STT.nitro.d.ts.map +1 -0
- package/lib/typescript/src/specs/TTS.nitro.d.ts +22 -0
- package/lib/typescript/src/specs/TTS.nitro.d.ts.map +1 -0
- package/lib/typescript/src/stt.d.ts +16 -0
- package/lib/typescript/src/stt.d.ts.map +1 -0
- package/lib/typescript/src/tool-utils.d.ts +13 -0
- package/lib/typescript/src/tool-utils.d.ts.map +1 -0
- package/lib/typescript/src/tts.d.ts +13 -0
- package/lib/typescript/src/tts.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/models.ts +24 -0
package/MLXReactNative.podspec
CHANGED
|
@@ -24,7 +24,7 @@ Pod::Spec.new do |s|
|
|
|
24
24
|
|
|
25
25
|
spm_dependency(s,
|
|
26
26
|
url: "https://github.com/ml-explore/mlx-swift-lm.git",
|
|
27
|
-
requirement: {kind: "
|
|
27
|
+
requirement: {kind: "branch", branch: "main"},
|
|
28
28
|
products: ["MLXLLM", "MLXLMCommon"]
|
|
29
29
|
)
|
|
30
30
|
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export { LLM } from "./llm.js";
|
|
4
|
+
export { ModelManager } from "./modelManager.js";
|
|
5
|
+
export { MLXModel, MLXModels, ModelFamily, ModelProvider } from "./models.js";
|
|
6
|
+
export { createTool } from "./tool-utils.js";
|
|
7
|
+
export { TTS } from "./tts.js";
|
|
8
|
+
export { STT } from "./stt.js";
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["LLM","ModelManager","MLXModel","MLXModels","ModelFamily","ModelProvider","createTool","TTS","STT"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SACEA,GAAG,QAKE,UAAO;AACd,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SACEC,QAAQ,EACRC,SAAS,EACTC,WAAW,EAEXC,aAAa,QAGR,aAAU;AAqBjB,SAASC,UAAU,QAAqC,iBAAc;AACtE,SAASC,GAAG,QAAQ,UAAO;AAM3B,SAASC,GAAG,QAAQ,UAAO","ignoreList":[]}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NitroModules } from 'react-native-nitro-modules';
|
|
4
|
+
let instance = null;
|
|
5
|
+
function getInstance() {
|
|
6
|
+
if (!instance) {
|
|
7
|
+
instance = NitroModules.createHybridObject('LLM');
|
|
8
|
+
}
|
|
9
|
+
return instance;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* LLM text generation using MLX on Apple Silicon.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { LLM } from 'react-native-nitro-mlx'
|
|
18
|
+
*
|
|
19
|
+
* // Load a model
|
|
20
|
+
* await LLM.load('mlx-community/Qwen3-0.6B-4bit', progress => {
|
|
21
|
+
* console.log(`Loading: ${(progress * 100).toFixed(0)}%`)
|
|
22
|
+
* })
|
|
23
|
+
*
|
|
24
|
+
* // Stream a response
|
|
25
|
+
* await LLM.stream('Hello!', token => {
|
|
26
|
+
* process.stdout.write(token)
|
|
27
|
+
* })
|
|
28
|
+
*
|
|
29
|
+
* // Get generation stats
|
|
30
|
+
* const stats = LLM.getLastGenerationStats()
|
|
31
|
+
* console.log(`${stats.tokensPerSecond} tokens/sec`)
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export const LLM = {
|
|
35
|
+
/**
|
|
36
|
+
* Load a model into memory. Downloads the model from HuggingFace if not already cached.
|
|
37
|
+
* @param modelId - HuggingFace model ID (e.g., 'mlx-community/Qwen3-0.6B-4bit')
|
|
38
|
+
* @param options - Callback invoked with loading progress (0-1)
|
|
39
|
+
*/
|
|
40
|
+
load(modelId, options) {
|
|
41
|
+
return getInstance().load(modelId, options);
|
|
42
|
+
},
|
|
43
|
+
/**
|
|
44
|
+
* Generate a complete response for a prompt. Blocks until generation is complete.
|
|
45
|
+
* For streaming responses, use `stream()` instead.
|
|
46
|
+
* @param prompt - The input text to generate a response for
|
|
47
|
+
* @returns The complete generated text
|
|
48
|
+
*/
|
|
49
|
+
generate(prompt) {
|
|
50
|
+
return getInstance().generate(prompt);
|
|
51
|
+
},
|
|
52
|
+
/**
|
|
53
|
+
* Stream a response token by token with optional tool calling support.
|
|
54
|
+
* Tools must be provided when loading the model via `load()` options.
|
|
55
|
+
* Tools are automatically executed when the model calls them.
|
|
56
|
+
* @param prompt - The input text to generate a response for
|
|
57
|
+
* @param onToken - Callback invoked for each generated token
|
|
58
|
+
* @param onToolCall - Optional callback invoked when a tool is called.
|
|
59
|
+
* Receives the current tool call and an accumulated array of all tool calls so far.
|
|
60
|
+
* @returns The complete generated text
|
|
61
|
+
*/
|
|
62
|
+
stream(prompt, onToken, onToolCall) {
|
|
63
|
+
const accumulatedToolCalls = [];
|
|
64
|
+
return getInstance().stream(prompt, onToken, (name, argsJson) => {
|
|
65
|
+
if (onToolCall) {
|
|
66
|
+
try {
|
|
67
|
+
const args = JSON.parse(argsJson);
|
|
68
|
+
const toolCall = {
|
|
69
|
+
name,
|
|
70
|
+
arguments: args
|
|
71
|
+
};
|
|
72
|
+
accumulatedToolCalls.push(toolCall);
|
|
73
|
+
onToolCall({
|
|
74
|
+
toolCall,
|
|
75
|
+
allToolCalls: [...accumulatedToolCalls]
|
|
76
|
+
});
|
|
77
|
+
} catch {
|
|
78
|
+
const toolCall = {
|
|
79
|
+
name,
|
|
80
|
+
arguments: {}
|
|
81
|
+
};
|
|
82
|
+
accumulatedToolCalls.push(toolCall);
|
|
83
|
+
onToolCall({
|
|
84
|
+
toolCall,
|
|
85
|
+
allToolCalls: [...accumulatedToolCalls]
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
},
|
|
91
|
+
/**
|
|
92
|
+
* Stream with typed events for thinking blocks and tool calls.
|
|
93
|
+
* Provides granular lifecycle events for UI updates.
|
|
94
|
+
*
|
|
95
|
+
* @param prompt - The input text
|
|
96
|
+
* @param onEvent - Callback receiving typed StreamEvent objects
|
|
97
|
+
* @returns Promise resolving to final content string (thinking content stripped)
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```ts
|
|
101
|
+
* await LLM.streamWithEvents(prompt, (event) => {
|
|
102
|
+
* switch (event.type) {
|
|
103
|
+
* case 'token':
|
|
104
|
+
* appendToContent(event.token)
|
|
105
|
+
* break
|
|
106
|
+
* case 'thinking_start':
|
|
107
|
+
* showThinkingIndicator()
|
|
108
|
+
* break
|
|
109
|
+
* case 'thinking_chunk':
|
|
110
|
+
* appendToThinking(event.chunk)
|
|
111
|
+
* break
|
|
112
|
+
* case 'tool_call_start':
|
|
113
|
+
* showToolCallCard(event.name, event.arguments)
|
|
114
|
+
* break
|
|
115
|
+
* }
|
|
116
|
+
* })
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
streamWithEvents(prompt, onEvent) {
|
|
120
|
+
return getInstance().streamWithEvents(prompt, eventJson => {
|
|
121
|
+
try {
|
|
122
|
+
const event = JSON.parse(eventJson);
|
|
123
|
+
onEvent(event);
|
|
124
|
+
} catch {
|
|
125
|
+
// Silently ignore malformed events
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
},
|
|
129
|
+
/**
|
|
130
|
+
* Stop the current generation. Safe to call even if not generating.
|
|
131
|
+
*/
|
|
132
|
+
stop() {
|
|
133
|
+
getInstance().stop();
|
|
134
|
+
},
|
|
135
|
+
/**
|
|
136
|
+
* Unload the current model and release memory.
|
|
137
|
+
* Call this when you're done with the model to free up memory.
|
|
138
|
+
*/
|
|
139
|
+
unload() {
|
|
140
|
+
getInstance().unload();
|
|
141
|
+
},
|
|
142
|
+
/**
|
|
143
|
+
* Get statistics from the last generation.
|
|
144
|
+
* @returns Statistics including token count, tokens/sec (excluding tool execution), TTFT, total time, and tool execution time
|
|
145
|
+
*/
|
|
146
|
+
getLastGenerationStats() {
|
|
147
|
+
return getInstance().getLastGenerationStats();
|
|
148
|
+
},
|
|
149
|
+
/**
|
|
150
|
+
* Get the message history if management is enabled.
|
|
151
|
+
* @returns Array of messages in the history
|
|
152
|
+
*/
|
|
153
|
+
getHistory() {
|
|
154
|
+
return getInstance().getHistory();
|
|
155
|
+
},
|
|
156
|
+
/**
|
|
157
|
+
* Clear the message history.
|
|
158
|
+
*/
|
|
159
|
+
clearHistory() {
|
|
160
|
+
getInstance().clearHistory();
|
|
161
|
+
},
|
|
162
|
+
/** Whether a model is currently loaded and ready for generation */
|
|
163
|
+
get isLoaded() {
|
|
164
|
+
return getInstance().isLoaded;
|
|
165
|
+
},
|
|
166
|
+
/** Whether text is currently being generated */
|
|
167
|
+
get isGenerating() {
|
|
168
|
+
return getInstance().isGenerating;
|
|
169
|
+
},
|
|
170
|
+
/** The ID of the currently loaded model, or empty string if none */
|
|
171
|
+
get modelId() {
|
|
172
|
+
return getInstance().modelId;
|
|
173
|
+
},
|
|
174
|
+
/** Enable debug logging to console */
|
|
175
|
+
get debug() {
|
|
176
|
+
return getInstance().debug;
|
|
177
|
+
},
|
|
178
|
+
set debug(value) {
|
|
179
|
+
getInstance().debug = value;
|
|
180
|
+
},
|
|
181
|
+
/**
|
|
182
|
+
* System prompt used when loading the model.
|
|
183
|
+
* Set this before calling `load()`. Changes require reloading the model.
|
|
184
|
+
* @default "You are a helpful assistant."
|
|
185
|
+
*/
|
|
186
|
+
get systemPrompt() {
|
|
187
|
+
return getInstance().systemPrompt;
|
|
188
|
+
},
|
|
189
|
+
set systemPrompt(value) {
|
|
190
|
+
getInstance().systemPrompt = value;
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
//# sourceMappingURL=llm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NitroModules","instance","getInstance","createHybridObject","LLM","load","modelId","options","generate","prompt","stream","onToken","onToolCall","accumulatedToolCalls","name","argsJson","args","JSON","parse","toolCall","arguments","push","allToolCalls","streamWithEvents","onEvent","eventJson","event","stop","unload","getLastGenerationStats","getHistory","clearHistory","isLoaded","isGenerating","debug","value","systemPrompt"],"sourceRoot":"../../src","sources":["llm.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NitroModules } from 'react-native-nitro-modules';
|
|
4
|
+
let instance = null;
|
|
5
|
+
function getInstance() {
|
|
6
|
+
if (!instance) {
|
|
7
|
+
instance = NitroModules.createHybridObject('ModelManager');
|
|
8
|
+
}
|
|
9
|
+
return instance;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Manage MLX model downloads from HuggingFace.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { ModelManager } from 'react-native-nitro-mlx'
|
|
18
|
+
*
|
|
19
|
+
* // Download a model
|
|
20
|
+
* await ModelManager.download('mlx-community/Qwen3-0.6B-4bit', progress => {
|
|
21
|
+
* console.log(`Downloading: ${(progress * 100).toFixed(0)}%`)
|
|
22
|
+
* })
|
|
23
|
+
*
|
|
24
|
+
* // Check if downloaded
|
|
25
|
+
* const isReady = await ModelManager.isDownloaded('mlx-community/Qwen3-0.6B-4bit')
|
|
26
|
+
*
|
|
27
|
+
* // List all downloaded models
|
|
28
|
+
* const models = await ModelManager.getDownloadedModels()
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export const ModelManager = {
|
|
32
|
+
/**
|
|
33
|
+
* Download a model from HuggingFace.
|
|
34
|
+
* @param modelId - HuggingFace model ID (e.g., 'mlx-community/Qwen3-0.6B-4bit')
|
|
35
|
+
* @param progressCallback - Callback invoked with download progress (0-1)
|
|
36
|
+
* @returns Path to the downloaded model directory
|
|
37
|
+
*/
|
|
38
|
+
download(modelId, progressCallback) {
|
|
39
|
+
return getInstance().download(modelId, progressCallback);
|
|
40
|
+
},
|
|
41
|
+
/**
|
|
42
|
+
* Check if a model is already downloaded.
|
|
43
|
+
* @param modelId - HuggingFace model ID
|
|
44
|
+
* @returns True if the model is fully downloaded
|
|
45
|
+
*/
|
|
46
|
+
isDownloaded(modelId) {
|
|
47
|
+
return getInstance().isDownloaded(modelId);
|
|
48
|
+
},
|
|
49
|
+
/**
|
|
50
|
+
* Get a list of all downloaded model IDs.
|
|
51
|
+
* @returns Array of model IDs that are available locally
|
|
52
|
+
*/
|
|
53
|
+
getDownloadedModels() {
|
|
54
|
+
return getInstance().getDownloadedModels();
|
|
55
|
+
},
|
|
56
|
+
/**
|
|
57
|
+
* Delete a downloaded model to free up disk space.
|
|
58
|
+
* @param modelId - HuggingFace model ID
|
|
59
|
+
*/
|
|
60
|
+
deleteModel(modelId) {
|
|
61
|
+
return getInstance().deleteModel(modelId);
|
|
62
|
+
},
|
|
63
|
+
/**
|
|
64
|
+
* Get the local filesystem path for a downloaded model.
|
|
65
|
+
* @param modelId - HuggingFace model ID
|
|
66
|
+
* @returns Absolute path to the model directory
|
|
67
|
+
*/
|
|
68
|
+
getModelPath(modelId) {
|
|
69
|
+
return getInstance().getModelPath(modelId);
|
|
70
|
+
},
|
|
71
|
+
/** Enable debug logging to console */
|
|
72
|
+
get debug() {
|
|
73
|
+
return getInstance().debug;
|
|
74
|
+
},
|
|
75
|
+
set debug(value) {
|
|
76
|
+
getInstance().debug = value;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=modelManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NitroModules","instance","getInstance","createHybridObject","ModelManager","download","modelId","progressCallback","isDownloaded","getDownloadedModels","deleteModel","getModelPath","debug","value"],"sourceRoot":"../../src","sources":["modelManager.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAGzD,IAAIC,QAAiC,GAAG,IAAI;AAE5C,SAASC,WAAWA,CAAA,EAAqB;EACvC,IAAI,CAACD,QAAQ,EAAE;IACbA,QAAQ,GAAGD,YAAY,CAACG,kBAAkB,CAAmB,cAAc,CAAC;EAC9E;EACA,OAAOF,QAAQ;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,YAAY,GAAG;EAC1B;AACF;AACA;AACA;AACA;AACA;EACEC,QAAQA,CACNC,OAAe,EACfC,gBAA4C,EAC3B;IACjB,OAAOL,WAAW,CAAC,CAAC,CAACG,QAAQ,CAACC,OAAO,EAAEC,gBAAgB,CAAC;EAC1D,CAAC;EAED;AACF;AACA;AACA;AACA;EACEC,YAAYA,CAACF,OAAe,EAAoB;IAC9C,OAAOJ,WAAW,CAAC,CAAC,CAACM,YAAY,CAACF,OAAO,CAAC;EAC5C,CAAC;EAED;AACF;AACA;AACA;EACEG,mBAAmBA,CAAA,EAAsB;IACvC,OAAOP,WAAW,CAAC,CAAC,CAACO,mBAAmB,CAAC,CAAC;EAC5C,CAAC;EAED;AACF;AACA;AACA;EACEC,WAAWA,CAACJ,OAAe,EAAiB;IAC1C,OAAOJ,WAAW,CAAC,CAAC,CAACQ,WAAW,CAACJ,OAAO,CAAC;EAC3C,CAAC;EAED;AACF;AACA;AACA;AACA;EACEK,YAAYA,CAACL,OAAe,EAAmB;IAC7C,OAAOJ,WAAW,CAAC,CAAC,CAACS,YAAY,CAACL,OAAO,CAAC;EAC5C,CAAC;EAED;EACA,IAAIM,KAAKA,CAAA,EAAY;IACnB,OAAOV,WAAW,CAAC,CAAC,CAACU,KAAK;EAC5B,CAAC;EAED,IAAIA,KAAKA,CAACC,KAAc,EAAE;IACxBX,WAAW,CAAC,CAAC,CAACU,KAAK,GAAGC,KAAK;EAC7B;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export let ModelFamily = /*#__PURE__*/function (ModelFamily) {
|
|
4
|
+
ModelFamily["Llama"] = "Llama";
|
|
5
|
+
ModelFamily["Qwen"] = "Qwen";
|
|
6
|
+
ModelFamily["Gemma"] = "Gemma";
|
|
7
|
+
ModelFamily["Phi"] = "Phi";
|
|
8
|
+
ModelFamily["SmolLM"] = "SmolLM";
|
|
9
|
+
ModelFamily["OpenELM"] = "OpenELM";
|
|
10
|
+
ModelFamily["PocketTTS"] = "PocketTTS";
|
|
11
|
+
ModelFamily["GLMASR"] = "GLMASR";
|
|
12
|
+
return ModelFamily;
|
|
13
|
+
}({});
|
|
14
|
+
export let ModelProvider = /*#__PURE__*/function (ModelProvider) {
|
|
15
|
+
ModelProvider["Meta"] = "Meta";
|
|
16
|
+
ModelProvider["Alibaba"] = "Alibaba";
|
|
17
|
+
ModelProvider["Google"] = "Google";
|
|
18
|
+
ModelProvider["Microsoft"] = "Microsoft";
|
|
19
|
+
ModelProvider["HuggingFace"] = "HuggingFace";
|
|
20
|
+
ModelProvider["Apple"] = "Apple";
|
|
21
|
+
ModelProvider["Kyutai"] = "Kyutai";
|
|
22
|
+
return ModelProvider;
|
|
23
|
+
}({});
|
|
24
|
+
export let MLXModel = /*#__PURE__*/function (MLXModel) {
|
|
25
|
+
// Llama 3.2 (Meta) - 1B and 3B variants
|
|
26
|
+
MLXModel["Llama_3_2_1B_Instruct_4bit"] = "mlx-community/Llama-3.2-1B-Instruct-4bit";
|
|
27
|
+
MLXModel["Llama_3_2_1B_Instruct_8bit"] = "mlx-community/Llama-3.2-1B-Instruct-8bit";
|
|
28
|
+
MLXModel["Llama_3_2_3B_Instruct_4bit"] = "mlx-community/Llama-3.2-3B-Instruct-4bit";
|
|
29
|
+
MLXModel["Llama_3_2_3B_Instruct_8bit"] = "mlx-community/Llama-3.2-3B-Instruct-8bit";
|
|
30
|
+
// Qwen 2.5 (Alibaba) - 0.5B, 1.5B, 3B variants
|
|
31
|
+
MLXModel["Qwen2_5_0_5B_Instruct_4bit"] = "mlx-community/Qwen2.5-0.5B-Instruct-4bit";
|
|
32
|
+
MLXModel["Qwen2_5_0_5B_Instruct_8bit"] = "mlx-community/Qwen2.5-0.5B-Instruct-8bit";
|
|
33
|
+
MLXModel["Qwen2_5_1_5B_Instruct_4bit"] = "mlx-community/Qwen2.5-1.5B-Instruct-4bit";
|
|
34
|
+
MLXModel["Qwen2_5_1_5B_Instruct_8bit"] = "mlx-community/Qwen2.5-1.5B-Instruct-8bit";
|
|
35
|
+
MLXModel["Qwen2_5_3B_Instruct_4bit"] = "mlx-community/Qwen2.5-3B-Instruct-4bit";
|
|
36
|
+
MLXModel["Qwen2_5_3B_Instruct_8bit"] = "mlx-community/Qwen2.5-3B-Instruct-8bit";
|
|
37
|
+
// Qwen 3 - 1.7B variant
|
|
38
|
+
MLXModel["Qwen3_1_7B_4bit"] = "mlx-community/Qwen3-1.7B-4bit";
|
|
39
|
+
MLXModel["Qwen3_1_7B_8bit"] = "mlx-community/Qwen3-1.7B-8bit";
|
|
40
|
+
// Qwen 3.5 - 0.8B variant
|
|
41
|
+
MLXModel["Qwen3_5_0_8B_MLX_4bit"] = "mlx-community/Qwen3.5-0.8B-MLX-4bit";
|
|
42
|
+
MLXModel["Qwen3_5_0_8B_MLX_8bit"] = "mlx-community/Qwen3.5-0.8B-MLX-8bit";
|
|
43
|
+
// Gemma 3 (Google) - 1B variant
|
|
44
|
+
MLXModel["Gemma_3_1B_IT_4bit"] = "mlx-community/gemma-3-1b-it-4bit";
|
|
45
|
+
MLXModel["Gemma_3_1B_IT_8bit"] = "mlx-community/gemma-3-1b-it-8bit";
|
|
46
|
+
// Phi 3.5 Mini (Microsoft) - ~3.8B but runs well on mobile
|
|
47
|
+
MLXModel["Phi_3_5_Mini_Instruct_4bit"] = "mlx-community/Phi-3.5-mini-instruct-4bit";
|
|
48
|
+
MLXModel["Phi_3_5_Mini_Instruct_8bit"] = "mlx-community/Phi-3.5-mini-instruct-8bit";
|
|
49
|
+
// Phi 4 Mini (Microsoft)
|
|
50
|
+
MLXModel["Phi_4_Mini_Instruct_4bit"] = "mlx-community/Phi-4-mini-instruct-4bit";
|
|
51
|
+
MLXModel["Phi_4_Mini_Instruct_8bit"] = "mlx-community/Phi-4-mini-instruct-8bit";
|
|
52
|
+
// SmolLM (HuggingFace) - 1.7B
|
|
53
|
+
MLXModel["SmolLM_1_7B_Instruct_4bit"] = "mlx-community/SmolLM-1.7B-Instruct-4bit";
|
|
54
|
+
MLXModel["SmolLM_1_7B_Instruct_8bit"] = "mlx-community/SmolLM-1.7B-Instruct-8bit";
|
|
55
|
+
// SmolLM2 (HuggingFace) - 1.7B
|
|
56
|
+
MLXModel["SmolLM2_1_7B_Instruct_4bit"] = "mlx-community/SmolLM2-1.7B-Instruct-4bit";
|
|
57
|
+
MLXModel["SmolLM2_1_7B_Instruct_8bit"] = "mlx-community/SmolLM2-1.7B-Instruct-8bit";
|
|
58
|
+
// OpenELM (Apple) - 1.1B and 3B
|
|
59
|
+
MLXModel["OpenELM_1_1B_4bit"] = "mlx-community/OpenELM-1_1B-4bit";
|
|
60
|
+
MLXModel["OpenELM_1_1B_8bit"] = "mlx-community/OpenELM-1_1B-8bit";
|
|
61
|
+
MLXModel["OpenELM_3B_4bit"] = "mlx-community/OpenELM-3B-4bit";
|
|
62
|
+
MLXModel["OpenELM_3B_8bit"] = "mlx-community/OpenELM-3B-8bit";
|
|
63
|
+
// PocketTTS (Kyutai) - 44.6M
|
|
64
|
+
MLXModel["PocketTTS"] = "mlx-community/pocket-tts";
|
|
65
|
+
MLXModel["PocketTTS_8bit"] = "mlx-community/pocket-tts-8bit";
|
|
66
|
+
MLXModel["PocketTTS_4bit"] = "mlx-community/pocket-tts-4bit";
|
|
67
|
+
// GLM-ASR (GLMASR) - Speech-to-Text
|
|
68
|
+
MLXModel["GLM_ASR_Nano_4bit"] = "mlx-community/GLM-ASR-Nano-2512-4bit";
|
|
69
|
+
return MLXModel;
|
|
70
|
+
}({});
|
|
71
|
+
export const MLXModels = [{
|
|
72
|
+
id: MLXModel.Llama_3_2_1B_Instruct_4bit,
|
|
73
|
+
family: ModelFamily.Llama,
|
|
74
|
+
provider: ModelProvider.Meta,
|
|
75
|
+
parameters: '1B',
|
|
76
|
+
quantization: '4bit',
|
|
77
|
+
displayName: 'Llama 3.2 1B Instruct (4-bit)',
|
|
78
|
+
downloadSize: 1407777762,
|
|
79
|
+
type: 'llm'
|
|
80
|
+
}, {
|
|
81
|
+
id: MLXModel.Llama_3_2_1B_Instruct_8bit,
|
|
82
|
+
family: ModelFamily.Llama,
|
|
83
|
+
provider: ModelProvider.Meta,
|
|
84
|
+
parameters: '1B',
|
|
85
|
+
quantization: '8bit',
|
|
86
|
+
displayName: 'Llama 3.2 1B Instruct (8-bit)',
|
|
87
|
+
downloadSize: 1313157436,
|
|
88
|
+
type: 'llm'
|
|
89
|
+
}, {
|
|
90
|
+
id: MLXModel.Llama_3_2_3B_Instruct_4bit,
|
|
91
|
+
family: ModelFamily.Llama,
|
|
92
|
+
provider: ModelProvider.Meta,
|
|
93
|
+
parameters: '3B',
|
|
94
|
+
quantization: '4bit',
|
|
95
|
+
displayName: 'Llama 3.2 3B Instruct (4-bit)',
|
|
96
|
+
downloadSize: 2019397474,
|
|
97
|
+
type: 'llm'
|
|
98
|
+
}, {
|
|
99
|
+
id: MLXModel.Llama_3_2_3B_Instruct_8bit,
|
|
100
|
+
family: ModelFamily.Llama,
|
|
101
|
+
provider: ModelProvider.Meta,
|
|
102
|
+
parameters: '3B',
|
|
103
|
+
quantization: '8bit',
|
|
104
|
+
displayName: 'Llama 3.2 3B Instruct (8-bit)',
|
|
105
|
+
downloadSize: 3413784042,
|
|
106
|
+
type: 'llm'
|
|
107
|
+
}, {
|
|
108
|
+
id: MLXModel.Qwen2_5_0_5B_Instruct_4bit,
|
|
109
|
+
family: ModelFamily.Qwen,
|
|
110
|
+
provider: ModelProvider.Alibaba,
|
|
111
|
+
parameters: '0.5B',
|
|
112
|
+
quantization: '4bit',
|
|
113
|
+
displayName: 'Qwen 2.5 0.5B Instruct (4-bit)',
|
|
114
|
+
downloadSize: 278064920,
|
|
115
|
+
type: 'llm'
|
|
116
|
+
}, {
|
|
117
|
+
id: MLXModel.Qwen2_5_0_5B_Instruct_8bit,
|
|
118
|
+
family: ModelFamily.Qwen,
|
|
119
|
+
provider: ModelProvider.Alibaba,
|
|
120
|
+
parameters: '0.5B',
|
|
121
|
+
quantization: '8bit',
|
|
122
|
+
displayName: 'Qwen 2.5 0.5B Instruct (8-bit)',
|
|
123
|
+
downloadSize: 525045902,
|
|
124
|
+
type: 'llm'
|
|
125
|
+
}, {
|
|
126
|
+
id: MLXModel.Qwen2_5_1_5B_Instruct_4bit,
|
|
127
|
+
family: ModelFamily.Qwen,
|
|
128
|
+
provider: ModelProvider.Alibaba,
|
|
129
|
+
parameters: '1.5B',
|
|
130
|
+
quantization: '4bit',
|
|
131
|
+
displayName: 'Qwen 2.5 1.5B Instruct (4-bit)',
|
|
132
|
+
downloadSize: 868628559,
|
|
133
|
+
type: 'llm'
|
|
134
|
+
}, {
|
|
135
|
+
id: MLXModel.Qwen2_5_1_5B_Instruct_8bit,
|
|
136
|
+
family: ModelFamily.Qwen,
|
|
137
|
+
provider: ModelProvider.Alibaba,
|
|
138
|
+
parameters: '1.5B',
|
|
139
|
+
quantization: '8bit',
|
|
140
|
+
displayName: 'Qwen 2.5 1.5B Instruct (8-bit)',
|
|
141
|
+
downloadSize: 1640414038,
|
|
142
|
+
type: 'llm'
|
|
143
|
+
}, {
|
|
144
|
+
id: MLXModel.Qwen2_5_3B_Instruct_4bit,
|
|
145
|
+
family: ModelFamily.Qwen,
|
|
146
|
+
provider: ModelProvider.Alibaba,
|
|
147
|
+
parameters: '3B',
|
|
148
|
+
quantization: '4bit',
|
|
149
|
+
displayName: 'Qwen 2.5 3B Instruct (4-bit)',
|
|
150
|
+
downloadSize: 1736293090,
|
|
151
|
+
type: 'llm'
|
|
152
|
+
}, {
|
|
153
|
+
id: MLXModel.Qwen2_5_3B_Instruct_8bit,
|
|
154
|
+
family: ModelFamily.Qwen,
|
|
155
|
+
provider: ModelProvider.Alibaba,
|
|
156
|
+
parameters: '3B',
|
|
157
|
+
quantization: '8bit',
|
|
158
|
+
displayName: 'Qwen 2.5 3B Instruct (8-bit)',
|
|
159
|
+
downloadSize: 3279142142,
|
|
160
|
+
type: 'llm'
|
|
161
|
+
}, {
|
|
162
|
+
id: MLXModel.Qwen3_1_7B_4bit,
|
|
163
|
+
family: ModelFamily.Qwen,
|
|
164
|
+
provider: ModelProvider.Alibaba,
|
|
165
|
+
parameters: '1.7B',
|
|
166
|
+
quantization: '4bit',
|
|
167
|
+
displayName: 'Qwen 3 1.7B (4-bit)',
|
|
168
|
+
downloadSize: 979502864,
|
|
169
|
+
type: 'llm'
|
|
170
|
+
}, {
|
|
171
|
+
id: MLXModel.Qwen3_1_7B_8bit,
|
|
172
|
+
family: ModelFamily.Qwen,
|
|
173
|
+
provider: ModelProvider.Alibaba,
|
|
174
|
+
parameters: '1.7B',
|
|
175
|
+
quantization: '8bit',
|
|
176
|
+
displayName: 'Qwen 3 1.7B (8-bit)',
|
|
177
|
+
downloadSize: 1839729195,
|
|
178
|
+
type: 'llm'
|
|
179
|
+
}, {
|
|
180
|
+
id: MLXModel.Qwen3_5_0_8B_MLX_4bit,
|
|
181
|
+
family: ModelFamily.Qwen,
|
|
182
|
+
provider: ModelProvider.Alibaba,
|
|
183
|
+
parameters: '0.8B',
|
|
184
|
+
quantization: '4bit',
|
|
185
|
+
displayName: 'Qwen 3.5 0.8B (4-bit)',
|
|
186
|
+
downloadSize: 550000000,
|
|
187
|
+
type: 'llm'
|
|
188
|
+
}, {
|
|
189
|
+
id: MLXModel.Qwen3_5_0_8B_MLX_8bit,
|
|
190
|
+
family: ModelFamily.Qwen,
|
|
191
|
+
provider: ModelProvider.Alibaba,
|
|
192
|
+
parameters: '0.8B',
|
|
193
|
+
quantization: '8bit',
|
|
194
|
+
displayName: 'Qwen 3.5 0.8B (8-bit)',
|
|
195
|
+
downloadSize: 950000000,
|
|
196
|
+
type: 'llm'
|
|
197
|
+
}, {
|
|
198
|
+
id: MLXModel.Gemma_3_1B_IT_4bit,
|
|
199
|
+
family: ModelFamily.Gemma,
|
|
200
|
+
provider: ModelProvider.Google,
|
|
201
|
+
parameters: '1B',
|
|
202
|
+
quantization: '4bit',
|
|
203
|
+
displayName: 'Gemma 3 1B IT (4-bit)',
|
|
204
|
+
downloadSize: 770650946,
|
|
205
|
+
type: 'llm'
|
|
206
|
+
}, {
|
|
207
|
+
id: MLXModel.Gemma_3_1B_IT_8bit,
|
|
208
|
+
family: ModelFamily.Gemma,
|
|
209
|
+
provider: ModelProvider.Google,
|
|
210
|
+
parameters: '1B',
|
|
211
|
+
quantization: '8bit',
|
|
212
|
+
displayName: 'Gemma 3 1B IT (8-bit)',
|
|
213
|
+
downloadSize: 1421522471,
|
|
214
|
+
type: 'llm'
|
|
215
|
+
}, {
|
|
216
|
+
id: MLXModel.Phi_3_5_Mini_Instruct_4bit,
|
|
217
|
+
family: ModelFamily.Phi,
|
|
218
|
+
provider: ModelProvider.Microsoft,
|
|
219
|
+
parameters: '3.8B',
|
|
220
|
+
quantization: '4bit',
|
|
221
|
+
displayName: 'Phi 3.5 Mini Instruct (4-bit)',
|
|
222
|
+
downloadSize: 2150195856,
|
|
223
|
+
type: 'llm'
|
|
224
|
+
}, {
|
|
225
|
+
id: MLXModel.Phi_3_5_Mini_Instruct_8bit,
|
|
226
|
+
family: ModelFamily.Phi,
|
|
227
|
+
provider: ModelProvider.Microsoft,
|
|
228
|
+
parameters: '3.8B',
|
|
229
|
+
quantization: '8bit',
|
|
230
|
+
displayName: 'Phi 3.5 Mini Instruct (8-bit)',
|
|
231
|
+
downloadSize: 4060636056,
|
|
232
|
+
type: 'llm'
|
|
233
|
+
}, {
|
|
234
|
+
id: MLXModel.Phi_4_Mini_Instruct_4bit,
|
|
235
|
+
family: ModelFamily.Phi,
|
|
236
|
+
provider: ModelProvider.Microsoft,
|
|
237
|
+
parameters: '3.8B',
|
|
238
|
+
quantization: '4bit',
|
|
239
|
+
displayName: 'Phi 4 Mini Instruct (4-bit)',
|
|
240
|
+
downloadSize: 2173624891,
|
|
241
|
+
type: 'llm'
|
|
242
|
+
}, {
|
|
243
|
+
id: MLXModel.Phi_4_Mini_Instruct_8bit,
|
|
244
|
+
family: ModelFamily.Phi,
|
|
245
|
+
provider: ModelProvider.Microsoft,
|
|
246
|
+
parameters: '3.8B',
|
|
247
|
+
quantization: '8bit',
|
|
248
|
+
displayName: 'Phi 4 Mini Instruct (8-bit)',
|
|
249
|
+
downloadSize: 4091536167,
|
|
250
|
+
type: 'llm'
|
|
251
|
+
}, {
|
|
252
|
+
id: MLXModel.SmolLM_1_7B_Instruct_4bit,
|
|
253
|
+
family: ModelFamily.SmolLM,
|
|
254
|
+
provider: ModelProvider.HuggingFace,
|
|
255
|
+
parameters: '1.7B',
|
|
256
|
+
quantization: '4bit',
|
|
257
|
+
displayName: 'SmolLM 1.7B Instruct (4-bit)',
|
|
258
|
+
downloadSize: 962855374,
|
|
259
|
+
type: 'llm'
|
|
260
|
+
}, {
|
|
261
|
+
id: MLXModel.SmolLM_1_7B_Instruct_8bit,
|
|
262
|
+
family: ModelFamily.SmolLM,
|
|
263
|
+
provider: ModelProvider.HuggingFace,
|
|
264
|
+
parameters: '1.7B',
|
|
265
|
+
quantization: '8bit',
|
|
266
|
+
displayName: 'SmolLM 1.7B Instruct (8-bit)',
|
|
267
|
+
downloadSize: 1818493993,
|
|
268
|
+
type: 'llm'
|
|
269
|
+
}, {
|
|
270
|
+
id: MLXModel.SmolLM2_1_7B_Instruct_4bit,
|
|
271
|
+
family: ModelFamily.SmolLM,
|
|
272
|
+
provider: ModelProvider.HuggingFace,
|
|
273
|
+
parameters: '1.7B',
|
|
274
|
+
quantization: '4bit',
|
|
275
|
+
displayName: 'SmolLM2 1.7B Instruct (4-bit)',
|
|
276
|
+
downloadSize: 980000000,
|
|
277
|
+
type: 'llm'
|
|
278
|
+
}, {
|
|
279
|
+
id: MLXModel.SmolLM2_1_7B_Instruct_8bit,
|
|
280
|
+
family: ModelFamily.SmolLM,
|
|
281
|
+
provider: ModelProvider.HuggingFace,
|
|
282
|
+
parameters: '1.7B',
|
|
283
|
+
quantization: '8bit',
|
|
284
|
+
displayName: 'SmolLM2 1.7B Instruct (8-bit)',
|
|
285
|
+
downloadSize: 1850000000,
|
|
286
|
+
type: 'llm'
|
|
287
|
+
}, {
|
|
288
|
+
id: MLXModel.OpenELM_1_1B_4bit,
|
|
289
|
+
family: ModelFamily.OpenELM,
|
|
290
|
+
provider: ModelProvider.Apple,
|
|
291
|
+
parameters: '1.1B',
|
|
292
|
+
quantization: '4bit',
|
|
293
|
+
displayName: 'OpenELM 1.1B (4-bit)',
|
|
294
|
+
downloadSize: 608162655,
|
|
295
|
+
type: 'llm'
|
|
296
|
+
}, {
|
|
297
|
+
id: MLXModel.OpenELM_1_1B_8bit,
|
|
298
|
+
family: ModelFamily.OpenELM,
|
|
299
|
+
provider: ModelProvider.Apple,
|
|
300
|
+
parameters: '1.1B',
|
|
301
|
+
quantization: '8bit',
|
|
302
|
+
displayName: 'OpenELM 1.1B (8-bit)',
|
|
303
|
+
downloadSize: 1148048397,
|
|
304
|
+
type: 'llm'
|
|
305
|
+
}, {
|
|
306
|
+
id: MLXModel.OpenELM_3B_4bit,
|
|
307
|
+
family: ModelFamily.OpenELM,
|
|
308
|
+
provider: ModelProvider.Apple,
|
|
309
|
+
parameters: '3B',
|
|
310
|
+
quantization: '4bit',
|
|
311
|
+
displayName: 'OpenELM 3B (4-bit)',
|
|
312
|
+
downloadSize: 1650000000,
|
|
313
|
+
type: 'llm'
|
|
314
|
+
}, {
|
|
315
|
+
id: MLXModel.OpenELM_3B_8bit,
|
|
316
|
+
family: ModelFamily.OpenELM,
|
|
317
|
+
provider: ModelProvider.Apple,
|
|
318
|
+
parameters: '3B',
|
|
319
|
+
quantization: '8bit',
|
|
320
|
+
displayName: 'OpenELM 3B (8-bit)',
|
|
321
|
+
downloadSize: 3100000000,
|
|
322
|
+
type: 'llm'
|
|
323
|
+
}, {
|
|
324
|
+
id: MLXModel.PocketTTS,
|
|
325
|
+
family: ModelFamily.PocketTTS,
|
|
326
|
+
provider: ModelProvider.Kyutai,
|
|
327
|
+
parameters: '44.6M',
|
|
328
|
+
quantization: 'bf16',
|
|
329
|
+
displayName: 'PocketTTS (bf16)',
|
|
330
|
+
downloadSize: 180000000,
|
|
331
|
+
type: 'tts'
|
|
332
|
+
}, {
|
|
333
|
+
id: MLXModel.PocketTTS_8bit,
|
|
334
|
+
family: ModelFamily.PocketTTS,
|
|
335
|
+
provider: ModelProvider.Kyutai,
|
|
336
|
+
parameters: '44.6M',
|
|
337
|
+
quantization: '8bit',
|
|
338
|
+
displayName: 'PocketTTS (8-bit)',
|
|
339
|
+
downloadSize: 140000000,
|
|
340
|
+
type: 'tts'
|
|
341
|
+
}, {
|
|
342
|
+
id: MLXModel.PocketTTS_4bit,
|
|
343
|
+
family: ModelFamily.PocketTTS,
|
|
344
|
+
provider: ModelProvider.Kyutai,
|
|
345
|
+
parameters: '44.6M',
|
|
346
|
+
quantization: '4bit',
|
|
347
|
+
displayName: 'PocketTTS (4-bit)',
|
|
348
|
+
downloadSize: 80000000,
|
|
349
|
+
type: 'tts'
|
|
350
|
+
}, {
|
|
351
|
+
id: MLXModel.GLM_ASR_Nano_4bit,
|
|
352
|
+
family: ModelFamily.GLMASR,
|
|
353
|
+
provider: ModelProvider.Alibaba,
|
|
354
|
+
parameters: '1B',
|
|
355
|
+
quantization: '4bit',
|
|
356
|
+
displayName: 'GLM-ASR Nano (4-bit)',
|
|
357
|
+
downloadSize: 600000000,
|
|
358
|
+
type: 'stt'
|
|
359
|
+
}];
|
|
360
|
+
//# sourceMappingURL=models.js.map
|