@modular-prompt/driver 0.12.0 → 0.13.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/dist/anthropic/anthropic-driver.d.ts +38 -8
- package/dist/anthropic/anthropic-driver.d.ts.map +1 -1
- package/dist/anthropic/anthropic-driver.js +180 -164
- package/dist/anthropic/anthropic-driver.js.map +1 -1
- package/dist/cache-controller.d.ts +28 -0
- package/dist/cache-controller.d.ts.map +1 -0
- package/dist/cache-controller.js +2 -0
- package/dist/cache-controller.js.map +1 -0
- package/dist/cache-utils.d.ts +20 -0
- package/dist/cache-utils.d.ts.map +1 -0
- package/dist/cache-utils.js +71 -0
- package/dist/cache-utils.js.map +1 -0
- package/dist/content-utils.d.ts.map +1 -1
- package/dist/content-utils.js +20 -0
- package/dist/content-utils.js.map +1 -1
- package/dist/driver-registry/config-based-factory.d.ts.map +1 -1
- package/dist/driver-registry/config-based-factory.js +7 -0
- package/dist/driver-registry/config-based-factory.js.map +1 -1
- package/dist/driver-registry/factory-helper.d.ts.map +1 -1
- package/dist/driver-registry/factory-helper.js +7 -4
- package/dist/driver-registry/factory-helper.js.map +1 -1
- package/dist/driver-registry/types.d.ts +6 -0
- package/dist/driver-registry/types.d.ts.map +1 -1
- package/dist/formatter/converter.js +1 -1
- package/dist/formatter/converter.js.map +1 -1
- package/dist/google-genai/element-converter.d.ts +11 -0
- package/dist/google-genai/element-converter.d.ts.map +1 -0
- package/dist/google-genai/element-converter.js +126 -0
- package/dist/google-genai/element-converter.js.map +1 -0
- package/dist/google-genai/google-genai-cache-controller.d.ts +24 -0
- package/dist/google-genai/google-genai-cache-controller.d.ts.map +1 -0
- package/dist/google-genai/google-genai-cache-controller.js +127 -0
- package/dist/google-genai/google-genai-cache-controller.js.map +1 -0
- package/dist/google-genai/google-genai-driver.d.ts +5 -29
- package/dist/google-genai/google-genai-driver.d.ts.map +1 -1
- package/dist/google-genai/google-genai-driver.js +92 -255
- package/dist/google-genai/google-genai-driver.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/mlx-ml/mlx-cache-controller.d.ts +66 -0
- package/dist/mlx-ml/mlx-cache-controller.d.ts.map +1 -0
- package/dist/mlx-ml/mlx-cache-controller.js +600 -0
- package/dist/mlx-ml/mlx-cache-controller.js.map +1 -0
- package/dist/mlx-ml/mlx-driver.d.ts +12 -7
- package/dist/mlx-ml/mlx-driver.d.ts.map +1 -1
- package/dist/mlx-ml/mlx-driver.js +192 -124
- package/dist/mlx-ml/mlx-driver.js.map +1 -1
- package/dist/mlx-ml/mlx-message-utils.d.ts +9 -0
- package/dist/mlx-ml/mlx-message-utils.d.ts.map +1 -0
- package/dist/mlx-ml/mlx-message-utils.js +71 -0
- package/dist/mlx-ml/mlx-message-utils.js.map +1 -0
- package/dist/mlx-ml/process/index.d.ts +7 -3
- package/dist/mlx-ml/process/index.d.ts.map +1 -1
- package/dist/mlx-ml/process/index.js +22 -7
- package/dist/mlx-ml/process/index.js.map +1 -1
- package/dist/mlx-ml/process/model-handlers.d.ts +4 -59
- package/dist/mlx-ml/process/model-handlers.d.ts.map +1 -1
- package/dist/mlx-ml/process/model-handlers.js +15 -14
- package/dist/mlx-ml/process/model-handlers.js.map +1 -1
- package/dist/mlx-ml/process/model-specific.d.ts +7 -0
- package/dist/mlx-ml/process/model-specific.d.ts.map +1 -1
- package/dist/mlx-ml/process/model-specific.js +3 -0
- package/dist/mlx-ml/process/model-specific.js.map +1 -1
- package/dist/mlx-ml/process/process-communication.d.ts +3 -0
- package/dist/mlx-ml/process/process-communication.d.ts.map +1 -1
- package/dist/mlx-ml/process/process-communication.js +13 -0
- package/dist/mlx-ml/process/process-communication.js.map +1 -1
- package/dist/mlx-ml/process/queue.d.ts +5 -2
- package/dist/mlx-ml/process/queue.d.ts.map +1 -1
- package/dist/mlx-ml/process/queue.js +101 -14
- package/dist/mlx-ml/process/queue.js.map +1 -1
- package/dist/mlx-ml/process/response-processor.d.ts +10 -0
- package/dist/mlx-ml/process/response-processor.d.ts.map +1 -1
- package/dist/mlx-ml/process/response-processor.js +23 -1
- package/dist/mlx-ml/process/response-processor.js.map +1 -1
- package/dist/mlx-ml/process/types.d.ts +50 -4
- package/dist/mlx-ml/process/types.d.ts.map +1 -1
- package/dist/mlx-ml/tool-call-parser.d.ts.map +1 -1
- package/dist/mlx-ml/tool-call-parser.js +44 -25
- package/dist/mlx-ml/tool-call-parser.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -4
- package/src/mlx-ml/python/__main__.py +41 -449
- package/src/mlx-ml/python/backends/__init__.py +3 -0
- package/src/mlx-ml/python/backends/base.py +84 -0
- package/src/mlx-ml/python/backends/mlx_lm.py +202 -0
- package/src/mlx-ml/python/backends/mlx_vlm.py +99 -0
- package/src/mlx-ml/python/handlers/__init__.py +6 -0
- package/src/mlx-ml/python/handlers/cache.py +81 -0
- package/src/mlx-ml/python/handlers/capabilities.py +6 -0
- package/src/mlx-ml/python/handlers/chat.py +221 -0
- package/src/mlx-ml/python/handlers/completion.py +36 -0
- package/src/mlx-ml/python/handlers/format_test.py +70 -0
- package/src/mlx-ml/python/handlers/tokenize.py +63 -0
- package/src/mlx-ml/python/pyproject.toml +13 -3
- package/src/mlx-ml/python/server.py +126 -0
- package/src/mlx-ml/python/tests/__init__.py +0 -0
- package/src/mlx-ml/python/utils/__init__.py +0 -0
- package/src/mlx-ml/python/utils/prompt_builder.py +54 -0
- package/src/mlx-ml/python/{token_utils.py → utils/token_utils.py} +1 -2
- package/src/mlx-ml/python/uv.lock +266 -41
- /package/src/mlx-ml/python/{example_basic.py → examples/example_basic.py} +0 -0
- /package/src/mlx-ml/python/{example_tool_call.py → examples/example_tool_call.py} +0 -0
- /package/src/mlx-ml/python/{chat_template_constraints.py → utils/chat_template_constraints.py} +0 -0
- /package/src/mlx-ml/python/{vlm_utils.py → utils/vlm_utils.py} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mlx-message-utils.js","sourceRoot":"","sources":["../../src/mlx-ml/mlx-message-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,12 @@
|
|
|
5
5
|
* 機能をモジュール化し、役割を分離
|
|
6
6
|
*/
|
|
7
7
|
import { Readable } from 'stream';
|
|
8
|
-
import type { MlxMlModelOptions, MlxMessage, MlxRuntimeInfo, MlxFormatTestResult, MlxToolDefinition } from './types.js';
|
|
9
|
-
export type { MlxMlModelOptions, MlxMessage, MlxRuntimeInfo, MlxFormatTestResult, MlxToolDefinition };
|
|
8
|
+
import type { MlxMlModelOptions, MlxMessage, MlxRuntimeInfo, MlxFormatTestResult, MlxTokenizeResult, MlxCachePrefillResult, MlxToolDefinition } from './types.js';
|
|
9
|
+
export type { MlxMlModelOptions, MlxMessage, MlxRuntimeInfo, MlxFormatTestResult, MlxTokenizeResult, MlxCachePrefillResult, MlxToolDefinition };
|
|
10
10
|
export interface MlxProcessOptions {
|
|
11
11
|
textOnly?: boolean;
|
|
12
|
+
drafterModel?: string;
|
|
13
|
+
draftBlockSize?: number;
|
|
12
14
|
}
|
|
13
15
|
export declare class MlxProcess {
|
|
14
16
|
modelName: string;
|
|
@@ -23,7 +25,9 @@ export declare class MlxProcess {
|
|
|
23
25
|
formatTest(messages: MlxMessage[], options?: {
|
|
24
26
|
primer?: string;
|
|
25
27
|
}): Promise<MlxFormatTestResult>;
|
|
26
|
-
|
|
28
|
+
tokenize(messages: MlxMessage[], tools?: MlxToolDefinition[], reasoningEffort?: 'low' | 'medium' | 'high'): Promise<MlxTokenizeResult>;
|
|
29
|
+
cachePrefill(cachePath: string, messages: MlxMessage[], baseCachePath?: string, trimToTokens?: number, prefixOffsets?: number[], prefixHashes?: string[], tools?: MlxToolDefinition[], reasoningEffort?: 'low' | 'medium' | 'high'): Promise<MlxCachePrefillResult>;
|
|
30
|
+
chat(messages: MlxMessage[], primer?: string, options?: MlxMlModelOptions, tools?: MlxToolDefinition[], images?: string[], maxImageSize?: number, reasoningEffort?: 'low' | 'medium' | 'high', cachePath?: string, cacheTrimTokens?: number): Promise<Readable>;
|
|
27
31
|
completion(prompt: string, options?: MlxMlModelOptions, images?: string[], maxImageSize?: number): Promise<Readable>;
|
|
28
32
|
exit(): Promise<void>;
|
|
29
33
|
getStatus(): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mlx-ml/process/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mlx-ml/process/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAOpB,YAAY,EACV,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EAClB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,UAAU;IACrB,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAuB;gBAE9B,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB;IA4B1D;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKlC,eAAe,IAAI,OAAO,CAAC,cAAc,CAAC;IAK1C,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAK/F,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,CAAC,EAAE,iBAAiB,EAAE,EAAE,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAKtI,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,iBAAiB,EAAE,EAAE,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAKnQ,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,iBAAiB,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAK/P,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKpH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,SAAS;;;;;;CAQV"}
|
|
@@ -4,8 +4,10 @@
|
|
|
4
4
|
* mlx-ml.tsドライバーからアクセスされるメイン API
|
|
5
5
|
* 機能をモジュール化し、役割を分離
|
|
6
6
|
*/
|
|
7
|
+
import { Logger } from '@modular-prompt/utils';
|
|
7
8
|
import { QueueManager } from './queue.js';
|
|
8
9
|
import { ProcessCommunication } from './process-communication.js';
|
|
10
|
+
const logger = new Logger({ prefix: 'MLX', context: 'process' });
|
|
9
11
|
export class MlxProcess {
|
|
10
12
|
modelName;
|
|
11
13
|
queueManager;
|
|
@@ -15,7 +17,14 @@ export class MlxProcess {
|
|
|
15
17
|
// コールバック設定
|
|
16
18
|
const processCallbacks = {
|
|
17
19
|
onJsonResponse: (jsonData) => this.queueManager.handleJsonResponse(jsonData),
|
|
18
|
-
onRequestCompleted: () => this.queueManager.onRequestCompleted()
|
|
20
|
+
onRequestCompleted: () => this.queueManager.onRequestCompleted(),
|
|
21
|
+
onProcessExit: (code, signal) => {
|
|
22
|
+
if (code !== 0) {
|
|
23
|
+
const error = new Error(`MLX process exited unexpectedly (code=${code}, signal=${signal})`);
|
|
24
|
+
logger.error(error.message);
|
|
25
|
+
this.queueManager.rejectAll(error);
|
|
26
|
+
}
|
|
27
|
+
},
|
|
19
28
|
};
|
|
20
29
|
const queueCallbacks = {
|
|
21
30
|
sendToProcess: (data) => this.processComm.sendToProcess(data),
|
|
@@ -39,14 +48,20 @@ export class MlxProcess {
|
|
|
39
48
|
async formatTest(messages, options) {
|
|
40
49
|
return this.queueManager.addFormatTestRequest(messages, options);
|
|
41
50
|
}
|
|
42
|
-
// API v2.0
|
|
43
|
-
async
|
|
44
|
-
|
|
45
|
-
return this.queueManager.addChatRequest(messages, primer, options, tools, images, maxImageSize, reasoningEffort);
|
|
51
|
+
// API v2.0 Tokenize
|
|
52
|
+
async tokenize(messages, tools, reasoningEffort) {
|
|
53
|
+
return this.queueManager.addTokenizeRequest(messages, tools, reasoningEffort);
|
|
46
54
|
}
|
|
47
|
-
//
|
|
55
|
+
// Cache operations
|
|
56
|
+
async cachePrefill(cachePath, messages, baseCachePath, trimToTokens, prefixOffsets, prefixHashes, tools, reasoningEffort) {
|
|
57
|
+
return this.queueManager.addCachePrefillRequest(cachePath, messages, baseCachePath, trimToTokens, prefixOffsets, prefixHashes, tools, reasoningEffort);
|
|
58
|
+
}
|
|
59
|
+
// API v2.0 Chat
|
|
60
|
+
async chat(messages, primer, options, tools, images, maxImageSize, reasoningEffort, cachePath, cacheTrimTokens) {
|
|
61
|
+
return this.queueManager.addChatRequest(messages, primer, options, tools, images, maxImageSize, reasoningEffort, cachePath, cacheTrimTokens);
|
|
62
|
+
}
|
|
63
|
+
// API v2.0 Completion
|
|
48
64
|
async completion(prompt, options, images, maxImageSize) {
|
|
49
|
-
// completion APIを直接使用(前処理はドライバーで実施済み)
|
|
50
65
|
return this.queueManager.addCompletionRequest(prompt, options, images, maxImageSize);
|
|
51
66
|
}
|
|
52
67
|
async exit() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mlx-ml/process/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mlx-ml/process/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,63 +9,6 @@ import type { ResponseProcessor } from './response-processor.js';
|
|
|
9
9
|
* システムメッセージをマージ(末尾の改行をtrim)
|
|
10
10
|
*/
|
|
11
11
|
export declare function mergeSystemMessages(msgs: MlxMessage[]): MlxMessage[];
|
|
12
|
-
/**
|
|
13
|
-
* Tanuki-8B-dpo-v1用のChat処理
|
|
14
|
-
*/
|
|
15
|
-
export declare function processTanukiChat(messages: MlxMessage[]): MlxMessage[];
|
|
16
|
-
/**
|
|
17
|
-
* CodeLlama用のChat処理
|
|
18
|
-
* userメッセージ補完は applyChatSpecificProcessing で汎用的に処理
|
|
19
|
-
*/
|
|
20
|
-
export declare function processCodeLlamaChat(messages: MlxMessage[]): MlxMessage[];
|
|
21
|
-
/**
|
|
22
|
-
* Gemma-3用のChat処理
|
|
23
|
-
* userメッセージ補完は applyChatSpecificProcessing で汎用的に処理
|
|
24
|
-
*/
|
|
25
|
-
export declare function processGemmaChat(messages: MlxMessage[]): MlxMessage[];
|
|
26
|
-
/**
|
|
27
|
-
* Gemma-4用のChat処理
|
|
28
|
-
* userメッセージ補完は applyChatSpecificProcessing で汎用的に処理
|
|
29
|
-
*/
|
|
30
|
-
export declare function processGemma4Chat(messages: MlxMessage[]): MlxMessage[];
|
|
31
|
-
export declare function processGemma4Completion(prompt: string): string;
|
|
32
|
-
/**
|
|
33
|
-
* llm-jp-3.1用のCompletion処理
|
|
34
|
-
* chat_templateに厳密に準拠した形式
|
|
35
|
-
* Note: llm-jp-3.1はforce-completion設定のため、chat APIは使用されない
|
|
36
|
-
*/
|
|
37
|
-
export declare function processLlmJpCompletion(prompt: string): string;
|
|
38
|
-
/**
|
|
39
|
-
* Tanuki-8B用のCompletion処理
|
|
40
|
-
*/
|
|
41
|
-
export declare function processTanukiCompletion(prompt: string): string;
|
|
42
|
-
/**
|
|
43
|
-
* Gemma-3用のCompletion処理
|
|
44
|
-
*/
|
|
45
|
-
export declare function processGemmaCompletion(prompt: string): string;
|
|
46
|
-
/**
|
|
47
|
-
* ELYZA (Llama 2ベース) 用のCompletion処理
|
|
48
|
-
*
|
|
49
|
-
* ELYZAはLlama 2のinstruction formatを使用:
|
|
50
|
-
* <s>[INST] <<SYS>>
|
|
51
|
-
* システムプロンプト
|
|
52
|
-
* <</SYS>>
|
|
53
|
-
*
|
|
54
|
-
* ユーザープロンプト [/INST]
|
|
55
|
-
*
|
|
56
|
-
* Note: <<SYS>>, [INST]などはspecial tokensではなく、複数トークンに分割される
|
|
57
|
-
*/
|
|
58
|
-
export declare function processElyzaCompletion(prompt: string): string;
|
|
59
|
-
/**
|
|
60
|
-
* LFM用のChat処理
|
|
61
|
-
* userメッセージ補完は applyChatSpecificProcessing で汎用的に処理
|
|
62
|
-
*/
|
|
63
|
-
export declare function processLfmChat(messages: MlxMessage[]): MlxMessage[];
|
|
64
|
-
/**
|
|
65
|
-
* Qwen用のChat処理
|
|
66
|
-
* userメッセージ補完は applyChatSpecificProcessing で汎用的に処理
|
|
67
|
-
*/
|
|
68
|
-
export declare function processQwenChat(messages: MlxMessage[]): MlxMessage[];
|
|
69
12
|
/**
|
|
70
13
|
* モデル名に基づいてChat処理を選択
|
|
71
14
|
*/
|
|
@@ -81,7 +24,9 @@ export declare function selectCompletionProcessor(modelName: string): ((prompt:
|
|
|
81
24
|
* レスポンス後処理を選択
|
|
82
25
|
*
|
|
83
26
|
* tool_parser_type ベースの判定を優先し、モデル名はフォールバック。
|
|
84
|
-
* null
|
|
27
|
+
* 常にResponseProcessorを返す(nullは返さない)。
|
|
85
28
|
*/
|
|
86
|
-
export declare function selectResponseProcessor(modelName: string, runtimeInfo: MlxRuntimeInfo | null
|
|
29
|
+
export declare function selectResponseProcessor(modelName: string, runtimeInfo: MlxRuntimeInfo | null, options?: {
|
|
30
|
+
enableToolParsing?: boolean;
|
|
31
|
+
}): ResponseProcessor;
|
|
87
32
|
//# sourceMappingURL=model-handlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-handlers.d.ts","sourceRoot":"","sources":["../../../src/mlx-ml/process/model-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"model-handlers.d.ts","sourceRoot":"","sources":["../../../src/mlx-ml/process/model-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAIjE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAwBpE;AA4KD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,CAAC,GAAG,IAAI,CAyBxG;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,CAahG;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,cAAc,GAAG,IAAI,EAClC,OAAO,CAAC,EAAE;IAAE,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAAE,GACxC,iBAAiB,CAWnB"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* 各モデル特有のメッセージ変換やプロンプト生成処理を管理
|
|
5
5
|
*/
|
|
6
|
+
import { createDefaultProcessor } from './response-processor.js';
|
|
6
7
|
import { parseHarmonyResponse } from './harmony-parser.js';
|
|
7
8
|
/**
|
|
8
9
|
* システムメッセージをマージ(末尾の改行をtrim)
|
|
@@ -56,7 +57,7 @@ function mergeSystemMessagesRaw(msgs) {
|
|
|
56
57
|
/**
|
|
57
58
|
* Tanuki-8B-dpo-v1用のChat処理
|
|
58
59
|
*/
|
|
59
|
-
|
|
60
|
+
function processTanukiChat(messages) {
|
|
60
61
|
// まずsystemメッセージをマージ(改行を保持)
|
|
61
62
|
const mergedMessages = mergeSystemMessagesRaw(messages);
|
|
62
63
|
const result = [];
|
|
@@ -87,21 +88,21 @@ export function processTanukiChat(messages) {
|
|
|
87
88
|
* CodeLlama用のChat処理
|
|
88
89
|
* userメッセージ補完は applyChatSpecificProcessing で汎用的に処理
|
|
89
90
|
*/
|
|
90
|
-
|
|
91
|
+
function processCodeLlamaChat(messages) {
|
|
91
92
|
return mergeSystemMessages(messages);
|
|
92
93
|
}
|
|
93
94
|
/**
|
|
94
95
|
* Gemma-3用のChat処理
|
|
95
96
|
* userメッセージ補完は applyChatSpecificProcessing で汎用的に処理
|
|
96
97
|
*/
|
|
97
|
-
|
|
98
|
+
function processGemmaChat(messages) {
|
|
98
99
|
return mergeSystemMessages(messages);
|
|
99
100
|
}
|
|
100
101
|
/**
|
|
101
102
|
* Gemma-4用のChat処理
|
|
102
103
|
* userメッセージ補完は applyChatSpecificProcessing で汎用的に処理
|
|
103
104
|
*/
|
|
104
|
-
|
|
105
|
+
function processGemma4Chat(messages) {
|
|
105
106
|
const msgs = [
|
|
106
107
|
{
|
|
107
108
|
role: 'system',
|
|
@@ -111,7 +112,7 @@ export function processGemma4Chat(messages) {
|
|
|
111
112
|
];
|
|
112
113
|
return msgs;
|
|
113
114
|
}
|
|
114
|
-
|
|
115
|
+
function processGemma4Completion(prompt) {
|
|
115
116
|
return [
|
|
116
117
|
'You are a helpful assistant.',
|
|
117
118
|
prompt,
|
|
@@ -122,7 +123,7 @@ export function processGemma4Completion(prompt) {
|
|
|
122
123
|
* chat_templateに厳密に準拠した形式
|
|
123
124
|
* Note: llm-jp-3.1はforce-completion設定のため、chat APIは使用されない
|
|
124
125
|
*/
|
|
125
|
-
|
|
126
|
+
function processLlmJpCompletion(prompt) {
|
|
126
127
|
// llm-jpは複数言語の混ぜ書きに弱い傾向があるため、特定の言語を優先しないよう明示的に指示
|
|
127
128
|
const llmJpSpecificInstruction = '指示は英語・日本語の混ぜ書きになっているが、どちらの言語も同等の指示として十分に理解すること。\n出力は与えられたタスクに対してふさわしい言語を選択する。\n\n';
|
|
128
129
|
// chat_templateのsystemメッセージと同じ固定文字列(良好な回答を得るために必要な固定プロンプト)
|
|
@@ -135,14 +136,14 @@ export function processLlmJpCompletion(prompt) {
|
|
|
135
136
|
/**
|
|
136
137
|
* Tanuki-8B用のCompletion処理
|
|
137
138
|
*/
|
|
138
|
-
|
|
139
|
+
function processTanukiCompletion(prompt) {
|
|
139
140
|
// completion APIではブロック化トークンを使用可能
|
|
140
141
|
return `### システム:\n${prompt}\n\n### 応答:\n`;
|
|
141
142
|
}
|
|
142
143
|
/**
|
|
143
144
|
* Gemma-3用のCompletion処理
|
|
144
145
|
*/
|
|
145
|
-
|
|
146
|
+
function processGemmaCompletion(prompt) {
|
|
146
147
|
// Gemma-3はchat形式に依存しないcompletion処理が可能
|
|
147
148
|
return `<start_of_turn>user\n${prompt}<end_of_turn>\n<start_of_turn>model\n`;
|
|
148
149
|
}
|
|
@@ -158,7 +159,7 @@ export function processGemmaCompletion(prompt) {
|
|
|
158
159
|
*
|
|
159
160
|
* Note: <<SYS>>, [INST]などはspecial tokensではなく、複数トークンに分割される
|
|
160
161
|
*/
|
|
161
|
-
|
|
162
|
+
function processElyzaCompletion(prompt) {
|
|
162
163
|
const B_INST = '[INST]';
|
|
163
164
|
const E_INST = '[/INST]';
|
|
164
165
|
const B_SYS = '<<SYS>>\n';
|
|
@@ -172,14 +173,14 @@ export function processElyzaCompletion(prompt) {
|
|
|
172
173
|
* LFM用のChat処理
|
|
173
174
|
* userメッセージ補完は applyChatSpecificProcessing で汎用的に処理
|
|
174
175
|
*/
|
|
175
|
-
|
|
176
|
+
function processLfmChat(messages) {
|
|
176
177
|
return mergeSystemMessages(messages);
|
|
177
178
|
}
|
|
178
179
|
/**
|
|
179
180
|
* Qwen用のChat処理
|
|
180
181
|
* userメッセージ補完は applyChatSpecificProcessing で汎用的に処理
|
|
181
182
|
*/
|
|
182
|
-
|
|
183
|
+
function processQwenChat(messages) {
|
|
183
184
|
return mergeSystemMessages(messages);
|
|
184
185
|
}
|
|
185
186
|
/**
|
|
@@ -238,9 +239,9 @@ export function selectCompletionProcessor(modelName) {
|
|
|
238
239
|
* レスポンス後処理を選択
|
|
239
240
|
*
|
|
240
241
|
* tool_parser_type ベースの判定を優先し、モデル名はフォールバック。
|
|
241
|
-
* null
|
|
242
|
+
* 常にResponseProcessorを返す(nullは返さない)。
|
|
242
243
|
*/
|
|
243
|
-
export function selectResponseProcessor(modelName, runtimeInfo) {
|
|
244
|
+
export function selectResponseProcessor(modelName, runtimeInfo, options) {
|
|
244
245
|
const parserType = runtimeInfo?.features?.chat_template?.tool_call_format?.tool_parser_type;
|
|
245
246
|
if (parserType === 'harmony') {
|
|
246
247
|
return parseHarmonyResponse;
|
|
@@ -248,6 +249,6 @@ export function selectResponseProcessor(modelName, runtimeInfo) {
|
|
|
248
249
|
if (modelName.includes('llm-jp-4')) {
|
|
249
250
|
return parseHarmonyResponse;
|
|
250
251
|
}
|
|
251
|
-
return
|
|
252
|
+
return createDefaultProcessor(runtimeInfo, options);
|
|
252
253
|
}
|
|
253
254
|
//# sourceMappingURL=model-handlers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-handlers.js","sourceRoot":"","sources":["../../../src/mlx-ml/process/model-handlers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAkB;IACpD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,MAAM,YAAY,GAAiB,EAAE,CAAC;IAEtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACpC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,8BAA8B;gBAC9B,WAAW,CAAC,IAAI,CACd,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAoC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3G,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxF,OAAO,CAAC,aAAa,EAAE,GAAG,YAAY,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,IAAkB;IAChD,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,MAAM,YAAY,GAAiB,EAAE,CAAC;IAEtC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1B,cAAc,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAsB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACpK,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,aAAa,GAAe;YAChC,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;SACrC,CAAC;QACF,OAAO,CAAC,aAAa,EAAE,GAAG,YAAY,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"model-handlers.js","sourceRoot":"","sources":["../../../src/mlx-ml/process/model-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,12 @@ export interface ModelSpecificProcessor {
|
|
|
31
31
|
* Completion API用のモデル固有プロセッサが存在するか
|
|
32
32
|
*/
|
|
33
33
|
hasCompletionProcessor(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Chat API用のモデル固有プロセッサが存在するか
|
|
36
|
+
* true の場合、chatProcessor はメッセージ全体の文脈に依存する変換を行うため
|
|
37
|
+
* サブセットへの適用は prefix 安定性を保証しない
|
|
38
|
+
*/
|
|
39
|
+
hasChatProcessor(): boolean;
|
|
34
40
|
/**
|
|
35
41
|
* runtimeInfo取得後に制約・モデル情報を反映
|
|
36
42
|
*/
|
|
@@ -63,6 +69,7 @@ export declare class DefaultModelSpecificProcessor implements ModelSpecificProce
|
|
|
63
69
|
* Completion API用のモデル固有プロセッサが存在するか
|
|
64
70
|
*/
|
|
65
71
|
hasCompletionProcessor(): boolean;
|
|
72
|
+
hasChatProcessor(): boolean;
|
|
66
73
|
/**
|
|
67
74
|
* Completion API用のモデル固有処理
|
|
68
75
|
* モデルごとにブロック化トークンやプロンプトフォーマットを適用
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-specific.d.ts","sourceRoot":"","sources":["../../../src/mlx-ml/process/model-specific.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG7D,KAAK,gBAAgB,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC;AAE5D;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,eAAe,EAAE,OAAO,EACxB,iBAAiB,EAAE,OAAO,GACzB,MAAM,GAAG,YAAY,CAevB;AAED,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,2BAA2B,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC;IAElE;;;OAGG;IACH,iCAAiC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAE1D;;OAEG;IACH,sBAAsB,IAAI,OAAO,CAAC;IAElC;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE;QAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,CAAA;KAAE,GAAG,IAAI,CAAC;CACrG;AAGD,qBAAa,6BAA8B,YAAW,sBAAsB;IAI9D,OAAO,CAAC,SAAS;IAH7B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,SAAS,CAA2B;gBAExB,SAAS,EAAE,MAAM;IAGrC,iBAAiB,CAAC,OAAO,EAAE;QAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,CAAA;KAAE,GAAG,IAAI;IAKnG;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;;OAGG;IACH,2BAA2B,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE;IAwBjE;;OAEG;IACH,sBAAsB,IAAI,OAAO;IAIjC;;;OAGG;IACH,iCAAiC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAI1D;AAGD,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,GAChB,sBAAsB,CAGxB"}
|
|
1
|
+
{"version":3,"file":"model-specific.d.ts","sourceRoot":"","sources":["../../../src/mlx-ml/process/model-specific.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG7D,KAAK,gBAAgB,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC;AAE5D;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,eAAe,EAAE,OAAO,EACxB,iBAAiB,EAAE,OAAO,GACzB,MAAM,GAAG,YAAY,CAevB;AAED,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,2BAA2B,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC;IAElE;;;OAGG;IACH,iCAAiC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAE1D;;OAEG;IACH,sBAAsB,IAAI,OAAO,CAAC;IAElC;;;;OAIG;IACH,gBAAgB,IAAI,OAAO,CAAC;IAE5B;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE;QAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,CAAA;KAAE,GAAG,IAAI,CAAC;CACrG;AAGD,qBAAa,6BAA8B,YAAW,sBAAsB;IAI9D,OAAO,CAAC,SAAS;IAH7B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,SAAS,CAA2B;gBAExB,SAAS,EAAE,MAAM;IAGrC,iBAAiB,CAAC,OAAO,EAAE;QAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;QAAC,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,CAAA;KAAE,GAAG,IAAI;IAKnG;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;;OAGG;IACH,2BAA2B,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,UAAU,EAAE;IAwBjE;;OAEG;IACH,sBAAsB,IAAI,OAAO;IAIjC,gBAAgB,IAAI,OAAO;IAI3B;;;OAGG;IACH,iCAAiC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAI1D;AAGD,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,GAChB,sBAAsB,CAGxB"}
|
|
@@ -87,6 +87,9 @@ export class DefaultModelSpecificProcessor {
|
|
|
87
87
|
hasCompletionProcessor() {
|
|
88
88
|
return selectCompletionProcessor(this.modelName) !== null;
|
|
89
89
|
}
|
|
90
|
+
hasChatProcessor() {
|
|
91
|
+
return selectChatProcessor(this.modelName) !== null;
|
|
92
|
+
}
|
|
90
93
|
/**
|
|
91
94
|
* Completion API用のモデル固有処理
|
|
92
95
|
* モデルごとにブロック化トークンやプロンプトフォーマットを適用
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-specific.js","sourceRoot":"","sources":["../../../src/mlx-ml/process/model-specific.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAI1G;;;;;;;;GAQG;AACH,MAAM,UAAU,SAAS,CACvB,QAAgB,EAChB,IAAwB,EACxB,eAAwB,EACxB,iBAA0B;IAE1B,IAAI,QAAQ,KAAK,YAAY;QAAE,OAAO,MAAM,CAAC;IAE7C,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;QACpC,yBAAyB;QACzB,IAAI,CAAC,iBAAiB,IAAI,eAAe;YAAE,OAAO,MAAM,CAAC;QACzD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,uCAAuC;IACvC,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,YAAY,CAAC;IAC7C,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IAEnC,+CAA+C;IAC/C,OAAO,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC;AACjD,CAAC;
|
|
1
|
+
{"version":3,"file":"model-specific.js","sourceRoot":"","sources":["../../../src/mlx-ml/process/model-specific.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,12 @@ import { Readable } from 'stream';
|
|
|
7
7
|
export interface ProcessCommunicationCallbacks {
|
|
8
8
|
onJsonResponse: (jsonData: string) => void;
|
|
9
9
|
onRequestCompleted: () => void;
|
|
10
|
+
onProcessExit: (code: number | null, signal: string | null) => void;
|
|
10
11
|
}
|
|
11
12
|
export interface ProcessCommunicationOptions {
|
|
12
13
|
textOnly?: boolean;
|
|
14
|
+
drafterModel?: string;
|
|
15
|
+
draftBlockSize?: number;
|
|
13
16
|
}
|
|
14
17
|
export declare class ProcessCommunication {
|
|
15
18
|
private process;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-communication.d.ts","sourceRoot":"","sources":["../../../src/mlx-ml/process/process-communication.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAoBlC,MAAM,WAAW,6BAA6B;IAC5C,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,kBAAkB,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"process-communication.d.ts","sourceRoot":"","sources":["../../../src/mlx-ml/process/process-communication.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAoBlC,MAAM,WAAW,6BAA6B;IAC5C,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACrE;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,SAAS,CAAgC;gBAErC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,6BAA6B,EAAE,OAAO,CAAC,EAAE,2BAA2B;IA6B9G,OAAO,CAAC,oBAAoB;IAwB5B;;;;OAIG;IACH,OAAO,CAAC,WAAW;IA2CnB,eAAe,IAAI,QAAQ;IAO3B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIjC,iBAAiB,IAAI,OAAO;IAI5B,eAAe,IAAI,OAAO;IAIpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAiB5B"}
|
|
@@ -35,6 +35,12 @@ export class ProcessCommunication {
|
|
|
35
35
|
if (options?.textOnly) {
|
|
36
36
|
args.push('--text-only');
|
|
37
37
|
}
|
|
38
|
+
if (options?.drafterModel) {
|
|
39
|
+
args.push('--drafter', options.drafterModel);
|
|
40
|
+
}
|
|
41
|
+
if (options?.draftBlockSize !== undefined) {
|
|
42
|
+
args.push('--draft-block-size', options.draftBlockSize.toString());
|
|
43
|
+
}
|
|
38
44
|
this.process = spawn('uv', args, {
|
|
39
45
|
cwd: mlxDriverDir
|
|
40
46
|
});
|
|
@@ -50,6 +56,13 @@ export class ProcessCommunication {
|
|
|
50
56
|
this.process.on('error', (err) => {
|
|
51
57
|
logger.error('Child process error:', err);
|
|
52
58
|
});
|
|
59
|
+
this.process.on('exit', (code, signal) => {
|
|
60
|
+
if (this.currentStream) {
|
|
61
|
+
this.currentStream.destroy(new Error(`MLX process exited unexpectedly (code=${code}, signal=${signal})`));
|
|
62
|
+
this.currentStream = null;
|
|
63
|
+
}
|
|
64
|
+
this.callbacks.onProcessExit(code, signal);
|
|
65
|
+
});
|
|
53
66
|
}
|
|
54
67
|
/**
|
|
55
68
|
* stdoutから受信したデータを処理する
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-communication.js","sourceRoot":"","sources":["../../../src/mlx-ml/process/process-communication.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAkC,KAAK,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;AAEjE,kCAAkC;AAClC,yFAAyF;AACzF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAC9B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5C,IAAI,EAAE,IAAI,EAAE,IAAI,CAAE,6DAA6D;CAChF,CAAC;AAEF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAC5B,WAAW,EACX,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAC1B,CAAC;
|
|
1
|
+
{"version":3,"file":"process-communication.js","sourceRoot":"","sources":["../../../src/mlx-ml/process/process-communication.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* リクエストキューの管理とプロセッシングロジックを提供
|
|
5
5
|
*/
|
|
6
6
|
import { Readable } from 'stream';
|
|
7
|
-
import type { MlxMessage, MlxMlModelOptions, MlxRuntimeInfo, MlxFormatTestResult, MlxToolDefinition } from './types.js';
|
|
7
|
+
import type { MlxMessage, MlxMlModelOptions, MlxRuntimeInfo, MlxFormatTestResult, MlxTokenizeResult, MlxCachePrefillResult, MlxToolDefinition } from './types.js';
|
|
8
8
|
export interface QueueManagerCallbacks {
|
|
9
9
|
sendToProcess: (data: string) => void;
|
|
10
10
|
createNewStream: () => Readable;
|
|
@@ -18,13 +18,16 @@ export declare class QueueManager {
|
|
|
18
18
|
addFormatTestRequest(messages: MlxMessage[], options?: {
|
|
19
19
|
primer?: string;
|
|
20
20
|
}): Promise<MlxFormatTestResult>;
|
|
21
|
-
|
|
21
|
+
addTokenizeRequest(messages: MlxMessage[], tools?: MlxToolDefinition[], reasoningEffort?: 'low' | 'medium' | 'high'): Promise<MlxTokenizeResult>;
|
|
22
|
+
addChatRequest(messages: MlxMessage[], primer?: string, options?: MlxMlModelOptions, tools?: MlxToolDefinition[], images?: string[], maxImageSize?: number, reasoningEffort?: 'low' | 'medium' | 'high', cachePath?: string, cacheTrimTokens?: number): Promise<Readable>;
|
|
23
|
+
addCachePrefillRequest(cachePath: string, messages: MlxMessage[], baseCachePath?: string, trimToTokens?: number, prefixOffsets?: number[], prefixHashes?: string[], tools?: MlxToolDefinition[], reasoningEffort?: 'low' | 'medium' | 'high'): Promise<MlxCachePrefillResult>;
|
|
22
24
|
addCompletionRequest(prompt: string, options?: MlxMlModelOptions, images?: string[], maxImageSize?: number): Promise<Readable>;
|
|
23
25
|
processNext(): void;
|
|
24
26
|
handleJsonResponse(jsonData: string): void;
|
|
25
27
|
onRequestCompleted(): void;
|
|
26
28
|
get length(): number;
|
|
27
29
|
get isEmpty(): boolean;
|
|
30
|
+
rejectAll(error: Error): void;
|
|
28
31
|
clear(): void;
|
|
29
32
|
}
|
|
30
33
|
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/mlx-ml/process/queue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../src/mlx-ml/process/queue.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EAaV,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,eAAe,EAAE,MAAM,QAAQ,CAAC;CACjC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAwB;gBAE7B,SAAS,EAAE,qBAAqB;IAI5C,sBAAsB,IAAI,OAAO,CAAC,cAAc,CAAC;IAajD,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiBzG,kBAAkB,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,KAAK,CAAC,EAAE,iBAAiB,EAAE,EAAE,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkBhJ,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,iBAAiB,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IA0BzQ,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,iBAAiB,EAAE,EAAE,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAsB7Q,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAsB9H,WAAW;IAqBX,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAkE1C,kBAAkB,IAAI,IAAI;IAK1B,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAQ7B,KAAK,IAAI,IAAI;CAId"}
|