@modular-prompt/driver 0.4.5
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/LICENSE +21 -0
- package/README.md +597 -0
- package/dist/anthropic/anthropic-driver.d.ts +47 -0
- package/dist/anthropic/anthropic-driver.d.ts.map +1 -0
- package/dist/anthropic/anthropic-driver.js +217 -0
- package/dist/anthropic/anthropic-driver.js.map +1 -0
- package/dist/driver-registry/ai-service.d.ts +43 -0
- package/dist/driver-registry/ai-service.d.ts.map +1 -0
- package/dist/driver-registry/ai-service.js +77 -0
- package/dist/driver-registry/ai-service.js.map +1 -0
- package/dist/driver-registry/config-based-factory.d.ts +64 -0
- package/dist/driver-registry/config-based-factory.d.ts.map +1 -0
- package/dist/driver-registry/config-based-factory.js +90 -0
- package/dist/driver-registry/config-based-factory.js.map +1 -0
- package/dist/driver-registry/factory-helper.d.ts +49 -0
- package/dist/driver-registry/factory-helper.d.ts.map +1 -0
- package/dist/driver-registry/factory-helper.js +109 -0
- package/dist/driver-registry/factory-helper.js.map +1 -0
- package/dist/driver-registry/index.d.ts +9 -0
- package/dist/driver-registry/index.d.ts.map +1 -0
- package/dist/driver-registry/index.js +8 -0
- package/dist/driver-registry/index.js.map +1 -0
- package/dist/driver-registry/registry.d.ts +50 -0
- package/dist/driver-registry/registry.d.ts.map +1 -0
- package/dist/driver-registry/registry.js +208 -0
- package/dist/driver-registry/registry.js.map +1 -0
- package/dist/driver-registry/types.d.ts +108 -0
- package/dist/driver-registry/types.d.ts.map +1 -0
- package/dist/driver-registry/types.js +6 -0
- package/dist/driver-registry/types.js.map +1 -0
- package/dist/echo-driver.d.ts +88 -0
- package/dist/echo-driver.d.ts.map +1 -0
- package/dist/echo-driver.js +198 -0
- package/dist/echo-driver.js.map +1 -0
- package/dist/formatter/completion-formatter.d.ts +27 -0
- package/dist/formatter/completion-formatter.d.ts.map +1 -0
- package/dist/formatter/completion-formatter.js +84 -0
- package/dist/formatter/completion-formatter.js.map +1 -0
- package/dist/formatter/converter.d.ts +20 -0
- package/dist/formatter/converter.d.ts.map +1 -0
- package/dist/formatter/converter.js +176 -0
- package/dist/formatter/converter.js.map +1 -0
- package/dist/formatter/element-formatters/base.d.ts +34 -0
- package/dist/formatter/element-formatters/base.d.ts.map +1 -0
- package/dist/formatter/element-formatters/base.js +36 -0
- package/dist/formatter/element-formatters/base.js.map +1 -0
- package/dist/formatter/element-formatters/chunk.d.ts +11 -0
- package/dist/formatter/element-formatters/chunk.d.ts.map +1 -0
- package/dist/formatter/element-formatters/chunk.js +12 -0
- package/dist/formatter/element-formatters/chunk.js.map +1 -0
- package/dist/formatter/element-formatters/index.d.ts +14 -0
- package/dist/formatter/element-formatters/index.d.ts.map +1 -0
- package/dist/formatter/element-formatters/index.js +15 -0
- package/dist/formatter/element-formatters/index.js.map +1 -0
- package/dist/formatter/element-formatters/json.d.ts +11 -0
- package/dist/formatter/element-formatters/json.d.ts.map +1 -0
- package/dist/formatter/element-formatters/json.js +27 -0
- package/dist/formatter/element-formatters/json.js.map +1 -0
- package/dist/formatter/element-formatters/material.d.ts +11 -0
- package/dist/formatter/element-formatters/material.d.ts.map +1 -0
- package/dist/formatter/element-formatters/material.js +35 -0
- package/dist/formatter/element-formatters/material.js.map +1 -0
- package/dist/formatter/element-formatters/message.d.ts +13 -0
- package/dist/formatter/element-formatters/message.d.ts.map +1 -0
- package/dist/formatter/element-formatters/message.js +35 -0
- package/dist/formatter/element-formatters/message.js.map +1 -0
- package/dist/formatter/element-formatters/registry.d.ts +29 -0
- package/dist/formatter/element-formatters/registry.d.ts.map +1 -0
- package/dist/formatter/element-formatters/registry.js +82 -0
- package/dist/formatter/element-formatters/registry.js.map +1 -0
- package/dist/formatter/element-formatters/section.d.ts +18 -0
- package/dist/formatter/element-formatters/section.d.ts.map +1 -0
- package/dist/formatter/element-formatters/section.js +46 -0
- package/dist/formatter/element-formatters/section.js.map +1 -0
- package/dist/formatter/element-formatters/string-pattern.d.ts +22 -0
- package/dist/formatter/element-formatters/string-pattern.d.ts.map +1 -0
- package/dist/formatter/element-formatters/string-pattern.js +124 -0
- package/dist/formatter/element-formatters/string-pattern.js.map +1 -0
- package/dist/formatter/element-formatters/text.d.ts +11 -0
- package/dist/formatter/element-formatters/text.d.ts.map +1 -0
- package/dist/formatter/element-formatters/text.js +11 -0
- package/dist/formatter/element-formatters/text.js.map +1 -0
- package/dist/formatter/formatter.d.ts +24 -0
- package/dist/formatter/formatter.d.ts.map +1 -0
- package/dist/formatter/formatter.js +252 -0
- package/dist/formatter/formatter.js.map +1 -0
- package/dist/formatter/types.d.ts +91 -0
- package/dist/formatter/types.d.ts.map +1 -0
- package/dist/formatter/types.js +2 -0
- package/dist/formatter/types.js.map +1 -0
- package/dist/google-genai/google-genai-driver.d.ts +67 -0
- package/dist/google-genai/google-genai-driver.d.ts.map +1 -0
- package/dist/google-genai/google-genai-driver.js +351 -0
- package/dist/google-genai/google-genai-driver.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/mlx-ml/mlx-driver.d.ts +65 -0
- package/dist/mlx-ml/mlx-driver.d.ts.map +1 -0
- package/dist/mlx-ml/mlx-driver.js +235 -0
- package/dist/mlx-ml/mlx-driver.js.map +1 -0
- package/dist/mlx-ml/model-spec/index.d.ts +7 -0
- package/dist/mlx-ml/model-spec/index.d.ts.map +1 -0
- package/dist/mlx-ml/model-spec/index.js +7 -0
- package/dist/mlx-ml/model-spec/index.js.map +1 -0
- package/dist/mlx-ml/model-spec/types.d.ts +30 -0
- package/dist/mlx-ml/model-spec/types.d.ts.map +1 -0
- package/dist/mlx-ml/model-spec/types.js +7 -0
- package/dist/mlx-ml/model-spec/types.js.map +1 -0
- package/dist/mlx-ml/process/index.d.ts +33 -0
- package/dist/mlx-ml/process/index.d.ts.map +1 -0
- package/dist/mlx-ml/process/index.js +65 -0
- package/dist/mlx-ml/process/index.js.map +1 -0
- package/dist/mlx-ml/process/model-handlers.d.ts +58 -0
- package/dist/mlx-ml/process/model-handlers.d.ts.map +1 -0
- package/dist/mlx-ml/process/model-handlers.js +197 -0
- package/dist/mlx-ml/process/model-handlers.js.map +1 -0
- package/dist/mlx-ml/process/model-specific.d.ts +35 -0
- package/dist/mlx-ml/process/model-specific.d.ts.map +1 -0
- package/dist/mlx-ml/process/model-specific.js +35 -0
- package/dist/mlx-ml/process/model-specific.js.map +1 -0
- package/dist/mlx-ml/process/parameter-mapper.d.ts +17 -0
- package/dist/mlx-ml/process/parameter-mapper.d.ts.map +1 -0
- package/dist/mlx-ml/process/parameter-mapper.js +91 -0
- package/dist/mlx-ml/process/parameter-mapper.js.map +1 -0
- package/dist/mlx-ml/process/parameter-validator.d.ts +55 -0
- package/dist/mlx-ml/process/parameter-validator.d.ts.map +1 -0
- package/dist/mlx-ml/process/parameter-validator.js +203 -0
- package/dist/mlx-ml/process/parameter-validator.js.map +1 -0
- package/dist/mlx-ml/process/process-communication.d.ts +25 -0
- package/dist/mlx-ml/process/process-communication.d.ts.map +1 -0
- package/dist/mlx-ml/process/process-communication.js +117 -0
- package/dist/mlx-ml/process/process-communication.js.map +1 -0
- package/dist/mlx-ml/process/queue.d.ts +30 -0
- package/dist/mlx-ml/process/queue.d.ts.map +1 -0
- package/dist/mlx-ml/process/queue.js +147 -0
- package/dist/mlx-ml/process/queue.js.map +1 -0
- package/dist/mlx-ml/process/types.d.ts +97 -0
- package/dist/mlx-ml/process/types.d.ts.map +1 -0
- package/dist/mlx-ml/process/types.js +2 -0
- package/dist/mlx-ml/process/types.js.map +1 -0
- package/dist/mlx-ml/types.d.ts +66 -0
- package/dist/mlx-ml/types.d.ts.map +1 -0
- package/dist/mlx-ml/types.js +7 -0
- package/dist/mlx-ml/types.js.map +1 -0
- package/dist/ollama/ollama-driver.d.ts +15 -0
- package/dist/ollama/ollama-driver.d.ts.map +1 -0
- package/dist/ollama/ollama-driver.js +15 -0
- package/dist/ollama/ollama-driver.js.map +1 -0
- package/dist/openai/openai-driver.d.ts +71 -0
- package/dist/openai/openai-driver.d.ts.map +1 -0
- package/dist/openai/openai-driver.js +230 -0
- package/dist/openai/openai-driver.js.map +1 -0
- package/dist/test-driver.d.ts +78 -0
- package/dist/test-driver.d.ts.map +1 -0
- package/dist/test-driver.js +193 -0
- package/dist/test-driver.js.map +1 -0
- package/dist/types.d.ts +90 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/vertexai/vertexai-driver.d.ts +63 -0
- package/dist/vertexai/vertexai-driver.d.ts.map +1 -0
- package/dist/vertexai/vertexai-driver.js +335 -0
- package/dist/vertexai/vertexai-driver.js.map +1 -0
- package/package.json +61 -0
- package/scripts/download-model.js +40 -0
- package/scripts/setup-mlx.js +53 -0
- package/src/mlx-ml/python/.python-version +1 -0
- package/src/mlx-ml/python/__main__.py +312 -0
- package/src/mlx-ml/python/chat_template_constraints.py +164 -0
- package/src/mlx-ml/python/pyproject.toml +19 -0
- package/src/mlx-ml/python/token_utils.py +262 -0
- package/src/mlx-ml/python/uv.lock +1029 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parameter-validator.js","sourceRoot":"","sources":["../../../src/mlx-ml/process/parameter-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MLX Driver プロセス通信管理
|
|
3
|
+
*
|
|
4
|
+
* Pythonプロセスとの通信、データの送受信、ストリーミング処理を管理
|
|
5
|
+
*/
|
|
6
|
+
import { Readable } from 'stream';
|
|
7
|
+
export interface ProcessCommunicationCallbacks {
|
|
8
|
+
onJsonResponse: (jsonData: string) => void;
|
|
9
|
+
onRequestCompleted: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare class ProcessCommunication {
|
|
12
|
+
private process;
|
|
13
|
+
private decoder;
|
|
14
|
+
private currentStream;
|
|
15
|
+
private jsonBuffer;
|
|
16
|
+
private callbacks;
|
|
17
|
+
constructor(modelName: string, callbacks: ProcessCommunicationCallbacks);
|
|
18
|
+
private setupProcessHandlers;
|
|
19
|
+
createNewStream(): Readable;
|
|
20
|
+
sendToProcess(data: string): void;
|
|
21
|
+
isStreamingActive(): boolean;
|
|
22
|
+
isJsonBuffering(): boolean;
|
|
23
|
+
exit(): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=process-communication.d.ts.map
|
|
@@ -0,0 +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;AAwBlC,MAAM,WAAW,6BAA6B;IAC5C,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,kBAAkB,EAAE,MAAM,IAAI,CAAC;CAChC;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;IAkBvE,OAAO,CAAC,oBAAoB;IA8C5B,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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MLX Driver プロセス通信管理
|
|
3
|
+
*
|
|
4
|
+
* Pythonプロセスとの通信、データの送受信、ストリーミング処理を管理
|
|
5
|
+
*/
|
|
6
|
+
import { spawn } from 'child_process';
|
|
7
|
+
import { Readable } from 'stream';
|
|
8
|
+
import { StringDecoder } from 'string_decoder';
|
|
9
|
+
import path from "path";
|
|
10
|
+
import { fileURLToPath } from "url";
|
|
11
|
+
// Simple logger implementation
|
|
12
|
+
const logger = {
|
|
13
|
+
debug: (...args) => console.debug(...args),
|
|
14
|
+
info: (...args) => console.info(...args),
|
|
15
|
+
warn: (...args) => console.warn(...args),
|
|
16
|
+
error: (...args) => console.error(...args)
|
|
17
|
+
};
|
|
18
|
+
// Get the mlx-ml/python directory
|
|
19
|
+
// From dist/mlx-ml/process/ -> go up 3 levels to package root, then to src/mlx-ml/python
|
|
20
|
+
const packageRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', '..', '..' // dist/mlx-ml/process -> dist/mlx-ml -> dist -> package root
|
|
21
|
+
);
|
|
22
|
+
const mlxDriverDir = path.join(packageRoot, 'src', 'mlx-ml', 'python');
|
|
23
|
+
export class ProcessCommunication {
|
|
24
|
+
process;
|
|
25
|
+
decoder;
|
|
26
|
+
currentStream = null;
|
|
27
|
+
jsonBuffer = '';
|
|
28
|
+
callbacks;
|
|
29
|
+
constructor(modelName, callbacks) {
|
|
30
|
+
this.callbacks = callbacks;
|
|
31
|
+
this.decoder = new StringDecoder('utf8');
|
|
32
|
+
this.process = spawn('uv', [
|
|
33
|
+
'--project',
|
|
34
|
+
mlxDriverDir,
|
|
35
|
+
'run',
|
|
36
|
+
'python',
|
|
37
|
+
'__main__.py',
|
|
38
|
+
modelName
|
|
39
|
+
], {
|
|
40
|
+
cwd: mlxDriverDir
|
|
41
|
+
});
|
|
42
|
+
this.setupProcessHandlers();
|
|
43
|
+
}
|
|
44
|
+
setupProcessHandlers() {
|
|
45
|
+
this.process.stderr.on('data', (data) => {
|
|
46
|
+
logger.debug(data.toString());
|
|
47
|
+
});
|
|
48
|
+
this.process.stdout.on('data', (data) => {
|
|
49
|
+
// ここはnull文字でなくてはならない
|
|
50
|
+
const nullIndex = data.indexOf('\0');
|
|
51
|
+
if (nullIndex !== -1) {
|
|
52
|
+
// null文字が見つかった場合、レスポンス終了
|
|
53
|
+
const chunk = this.decoder.write(data.slice(0, nullIndex));
|
|
54
|
+
this.decoder = new StringDecoder('utf8');
|
|
55
|
+
if (this.currentStream) {
|
|
56
|
+
// ストリーミングレスポンスの場合
|
|
57
|
+
this.currentStream.push(chunk);
|
|
58
|
+
this.currentStream.push(null); // ストリーム終了
|
|
59
|
+
this.currentStream = null;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
// JSONレスポンスの場合
|
|
63
|
+
this.jsonBuffer += chunk;
|
|
64
|
+
this.callbacks.onJsonResponse(this.jsonBuffer);
|
|
65
|
+
this.jsonBuffer = '';
|
|
66
|
+
}
|
|
67
|
+
this.callbacks.onRequestCompleted();
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// null文字がない場合、データを蓄積
|
|
71
|
+
const chunk = this.decoder.write(data);
|
|
72
|
+
if (this.currentStream) {
|
|
73
|
+
// ストリーミング中
|
|
74
|
+
this.currentStream.push(chunk);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
// JSONレスポンス蓄積中
|
|
78
|
+
this.jsonBuffer += chunk;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
this.process.on('error', (err) => {
|
|
83
|
+
logger.error('Child process error:', err);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
createNewStream() {
|
|
87
|
+
this.currentStream = new Readable({
|
|
88
|
+
read() { } // 空のreadメソッド
|
|
89
|
+
});
|
|
90
|
+
return this.currentStream;
|
|
91
|
+
}
|
|
92
|
+
sendToProcess(data) {
|
|
93
|
+
this.process.stdin.write(data);
|
|
94
|
+
}
|
|
95
|
+
isStreamingActive() {
|
|
96
|
+
return this.currentStream !== null;
|
|
97
|
+
}
|
|
98
|
+
isJsonBuffering() {
|
|
99
|
+
return this.jsonBuffer.length > 0;
|
|
100
|
+
}
|
|
101
|
+
async exit() {
|
|
102
|
+
return new Promise((resolve) => {
|
|
103
|
+
const timeout = setTimeout(() => {
|
|
104
|
+
// タイムアウト後は強制終了
|
|
105
|
+
this.process.kill('SIGTERM');
|
|
106
|
+
resolve();
|
|
107
|
+
}, 5000); // 5秒でタイムアウト
|
|
108
|
+
this.process.once('exit', () => {
|
|
109
|
+
clearTimeout(timeout);
|
|
110
|
+
resolve();
|
|
111
|
+
});
|
|
112
|
+
// stdinを閉じてプロセスに終了を通知
|
|
113
|
+
this.process.stdin.end();
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=process-communication.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-communication.js","sourceRoot":"","sources":["../../../src/mlx-ml/process/process-communication.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MLX Driver キュー管理システム
|
|
3
|
+
*
|
|
4
|
+
* リクエストキューの管理とプロセッシングロジックを提供
|
|
5
|
+
*/
|
|
6
|
+
import { Readable } from 'stream';
|
|
7
|
+
import type { MlxMessage, MlxMlModelOptions, MlxRuntimeInfo, MlxFormatTestResult } from './types.js';
|
|
8
|
+
export interface QueueManagerCallbacks {
|
|
9
|
+
sendToProcess: (data: string) => void;
|
|
10
|
+
createNewStream: () => Readable;
|
|
11
|
+
}
|
|
12
|
+
export declare class QueueManager {
|
|
13
|
+
private queue;
|
|
14
|
+
private isProcessing;
|
|
15
|
+
private callbacks;
|
|
16
|
+
constructor(callbacks: QueueManagerCallbacks);
|
|
17
|
+
addCapabilitiesRequest(): Promise<MlxRuntimeInfo>;
|
|
18
|
+
addFormatTestRequest(messages: MlxMessage[], options?: {
|
|
19
|
+
primer?: string;
|
|
20
|
+
}): Promise<MlxFormatTestResult>;
|
|
21
|
+
addChatRequest(messages: MlxMessage[], primer?: string, options?: MlxMlModelOptions): Promise<Readable>;
|
|
22
|
+
addCompletionRequest(prompt: string, options?: MlxMlModelOptions): Promise<Readable>;
|
|
23
|
+
processNext(): void;
|
|
24
|
+
handleJsonResponse(jsonData: string): void;
|
|
25
|
+
onRequestCompleted(): void;
|
|
26
|
+
get length(): number;
|
|
27
|
+
get isEmpty(): boolean;
|
|
28
|
+
clear(): void;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=queue.d.ts.map
|
|
@@ -0,0 +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,EASV,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACpB,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;IAYjD,oBAAoB,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAgBzG,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoBvG,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAoBpF,WAAW;IAqBX,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAkC1C,kBAAkB,IAAI,IAAI;IAK1B,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MLX Driver キュー管理システム
|
|
3
|
+
*
|
|
4
|
+
* リクエストキューの管理とプロセッシングロジックを提供
|
|
5
|
+
*/
|
|
6
|
+
import { mapOptionsToPython } from './parameter-mapper.js';
|
|
7
|
+
export class QueueManager {
|
|
8
|
+
queue = [];
|
|
9
|
+
isProcessing = false;
|
|
10
|
+
callbacks;
|
|
11
|
+
constructor(callbacks) {
|
|
12
|
+
this.callbacks = callbacks;
|
|
13
|
+
}
|
|
14
|
+
addCapabilitiesRequest() {
|
|
15
|
+
return new Promise((resolve) => {
|
|
16
|
+
const request = { method: 'capabilities' };
|
|
17
|
+
this.queue.push({
|
|
18
|
+
request,
|
|
19
|
+
resolve,
|
|
20
|
+
expectJsonResponse: true
|
|
21
|
+
});
|
|
22
|
+
this.processNext();
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
addFormatTestRequest(messages, options) {
|
|
26
|
+
return new Promise((resolve) => {
|
|
27
|
+
const request = {
|
|
28
|
+
method: 'format_test',
|
|
29
|
+
messages,
|
|
30
|
+
options
|
|
31
|
+
};
|
|
32
|
+
this.queue.push({
|
|
33
|
+
request,
|
|
34
|
+
resolve,
|
|
35
|
+
expectJsonResponse: true
|
|
36
|
+
});
|
|
37
|
+
this.processNext();
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
addChatRequest(messages, primer, options) {
|
|
41
|
+
return new Promise((resolve, reject) => {
|
|
42
|
+
try {
|
|
43
|
+
const request = {
|
|
44
|
+
method: 'chat',
|
|
45
|
+
messages,
|
|
46
|
+
primer,
|
|
47
|
+
options: mapOptionsToPython(options, true) // strict mode: true
|
|
48
|
+
};
|
|
49
|
+
this.queue.push({
|
|
50
|
+
request,
|
|
51
|
+
resolve
|
|
52
|
+
});
|
|
53
|
+
this.processNext();
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
reject(error);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
addCompletionRequest(prompt, options) {
|
|
61
|
+
return new Promise((resolve, reject) => {
|
|
62
|
+
try {
|
|
63
|
+
const request = {
|
|
64
|
+
method: 'completion',
|
|
65
|
+
prompt,
|
|
66
|
+
options: mapOptionsToPython(options, true) // strict mode: true
|
|
67
|
+
};
|
|
68
|
+
this.queue.push({
|
|
69
|
+
request,
|
|
70
|
+
resolve
|
|
71
|
+
});
|
|
72
|
+
this.processNext();
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
reject(error);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
processNext() {
|
|
80
|
+
if (this.isProcessing || this.queue.length === 0) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
this.isProcessing = true;
|
|
84
|
+
const queueItem = this.queue[0]; // まだshiftしない
|
|
85
|
+
const { request, expectJsonResponse } = queueItem;
|
|
86
|
+
// ストリーミングレスポンスの場合のみcurrentStreamを設定
|
|
87
|
+
if (!expectJsonResponse) {
|
|
88
|
+
const stream = this.callbacks.createNewStream();
|
|
89
|
+
queueItem.resolve(stream);
|
|
90
|
+
this.queue.shift(); // ここでshiftする
|
|
91
|
+
}
|
|
92
|
+
// リクエストを送信
|
|
93
|
+
const input = JSON.stringify(request);
|
|
94
|
+
this.callbacks.sendToProcess(input + '\n');
|
|
95
|
+
}
|
|
96
|
+
handleJsonResponse(jsonData) {
|
|
97
|
+
if (this.queue.length > 0) {
|
|
98
|
+
const queueItem = this.queue.shift();
|
|
99
|
+
if (queueItem?.expectJsonResponse) {
|
|
100
|
+
try {
|
|
101
|
+
const jsonResponse = JSON.parse(jsonData);
|
|
102
|
+
if (queueItem.request.method === 'capabilities') {
|
|
103
|
+
queueItem.resolve(jsonResponse);
|
|
104
|
+
}
|
|
105
|
+
else if (queueItem.request.method === 'format_test') {
|
|
106
|
+
queueItem.resolve(jsonResponse);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
// エラー時のフォールバック処理
|
|
111
|
+
if (queueItem.request.method === 'capabilities') {
|
|
112
|
+
queueItem.resolve({
|
|
113
|
+
methods: [],
|
|
114
|
+
special_tokens: {},
|
|
115
|
+
features: { apply_chat_template: false }
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
else if (queueItem.request.method === 'format_test') {
|
|
119
|
+
queueItem.resolve({
|
|
120
|
+
formatted_prompt: null,
|
|
121
|
+
template_applied: false,
|
|
122
|
+
model_specific_processing: null,
|
|
123
|
+
error: e instanceof Error ? e.message : 'Unknown error'
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
this.isProcessing = false;
|
|
130
|
+
this.processNext(); // 次のリクエストを処理
|
|
131
|
+
}
|
|
132
|
+
onRequestCompleted() {
|
|
133
|
+
this.isProcessing = false;
|
|
134
|
+
this.processNext(); // 次のリクエストを処理
|
|
135
|
+
}
|
|
136
|
+
get length() {
|
|
137
|
+
return this.queue.length;
|
|
138
|
+
}
|
|
139
|
+
get isEmpty() {
|
|
140
|
+
return this.queue.length === 0;
|
|
141
|
+
}
|
|
142
|
+
clear() {
|
|
143
|
+
this.queue = [];
|
|
144
|
+
this.isProcessing = false;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../src/mlx-ml/process/queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MLX Driver API v2.0 型定義
|
|
3
|
+
*/
|
|
4
|
+
import type { MlxMlModelOptions } from '../types.js';
|
|
5
|
+
import type { SpecialToken, SpecialTokenPair } from '../../formatter/types.js';
|
|
6
|
+
export type { MlxMlModelOptions };
|
|
7
|
+
export interface MlxMessage {
|
|
8
|
+
role: 'user' | 'assistant' | 'system';
|
|
9
|
+
content: string;
|
|
10
|
+
}
|
|
11
|
+
export interface MlxBaseRequest {
|
|
12
|
+
method: 'capabilities' | 'format_test' | 'chat' | 'completion';
|
|
13
|
+
}
|
|
14
|
+
export interface MlxCapabilitiesRequest extends MlxBaseRequest {
|
|
15
|
+
method: 'capabilities';
|
|
16
|
+
}
|
|
17
|
+
export interface MlxFormatTestRequest extends MlxBaseRequest {
|
|
18
|
+
method: 'format_test';
|
|
19
|
+
messages: MlxMessage[];
|
|
20
|
+
options?: {
|
|
21
|
+
primer?: string;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export interface MlxChatRequest extends MlxBaseRequest {
|
|
25
|
+
method: 'chat';
|
|
26
|
+
messages: MlxMessage[];
|
|
27
|
+
primer?: string;
|
|
28
|
+
options?: MlxMlModelOptions;
|
|
29
|
+
}
|
|
30
|
+
export interface MlxCompletionRequest extends MlxBaseRequest {
|
|
31
|
+
method: 'completion';
|
|
32
|
+
prompt: string;
|
|
33
|
+
options?: MlxMlModelOptions;
|
|
34
|
+
}
|
|
35
|
+
export type MlxRequest = MlxCapabilitiesRequest | MlxFormatTestRequest | MlxChatRequest | MlxCompletionRequest;
|
|
36
|
+
export interface ChatTemplateInfo {
|
|
37
|
+
template_string?: string;
|
|
38
|
+
supported_roles: string[];
|
|
39
|
+
preview?: string;
|
|
40
|
+
constraints: Record<string, unknown>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* MLX Runtime Information (from Python process)
|
|
44
|
+
*
|
|
45
|
+
* Pythonプロセスから取得する生の情報(snake_case)
|
|
46
|
+
*/
|
|
47
|
+
export interface MlxRuntimeInfo {
|
|
48
|
+
methods: string[];
|
|
49
|
+
special_tokens: Record<string, SpecialToken | SpecialTokenPair>;
|
|
50
|
+
features: {
|
|
51
|
+
apply_chat_template: boolean;
|
|
52
|
+
vocab_size?: number;
|
|
53
|
+
model_max_length?: number;
|
|
54
|
+
chat_template?: ChatTemplateInfo;
|
|
55
|
+
};
|
|
56
|
+
chat_restrictions?: {
|
|
57
|
+
single_system_at_start?: boolean;
|
|
58
|
+
max_system_messages?: number;
|
|
59
|
+
alternating_turns?: boolean;
|
|
60
|
+
requires_user_last?: boolean;
|
|
61
|
+
allow_empty_messages?: boolean;
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
export interface MlxFormatTestResult {
|
|
65
|
+
formatted_prompt: string | null;
|
|
66
|
+
template_applied: boolean;
|
|
67
|
+
model_specific_processing: MlxMessage[] | null;
|
|
68
|
+
error: string | null;
|
|
69
|
+
}
|
|
70
|
+
export interface LegacyMlxRequest {
|
|
71
|
+
messages: MlxMessage[];
|
|
72
|
+
prompt?: string;
|
|
73
|
+
primer?: string;
|
|
74
|
+
options?: MlxMlModelOptions;
|
|
75
|
+
}
|
|
76
|
+
export interface BaseQueueItem {
|
|
77
|
+
request: MlxRequest | LegacyMlxRequest;
|
|
78
|
+
expectJsonResponse?: boolean;
|
|
79
|
+
}
|
|
80
|
+
export interface CapabilitiesQueueItem extends BaseQueueItem {
|
|
81
|
+
request: MlxCapabilitiesRequest;
|
|
82
|
+
resolve: (value: MlxRuntimeInfo) => void;
|
|
83
|
+
expectJsonResponse: true;
|
|
84
|
+
}
|
|
85
|
+
export interface FormatTestQueueItem extends BaseQueueItem {
|
|
86
|
+
request: MlxFormatTestRequest;
|
|
87
|
+
resolve: (value: MlxFormatTestResult) => void;
|
|
88
|
+
expectJsonResponse: true;
|
|
89
|
+
}
|
|
90
|
+
export interface StreamingQueueItem extends BaseQueueItem {
|
|
91
|
+
request: MlxChatRequest | MlxCompletionRequest | LegacyMlxRequest;
|
|
92
|
+
resolve: (value: Readable) => void;
|
|
93
|
+
expectJsonResponse?: false;
|
|
94
|
+
}
|
|
95
|
+
export type QueueItem = CapabilitiesQueueItem | FormatTestQueueItem | StreamingQueueItem;
|
|
96
|
+
import { Readable } from 'stream';
|
|
97
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/mlx-ml/process/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mlx-ml/process/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MLX Driver Public Types
|
|
3
|
+
*
|
|
4
|
+
* 外部に公開する型定義
|
|
5
|
+
*/
|
|
6
|
+
import type { SpecialToken, SpecialTokenPair } from '../formatter/types.js';
|
|
7
|
+
import type { ChatRestrictions, ApiStrategy } from './model-spec/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* MLX message format
|
|
10
|
+
*/
|
|
11
|
+
export interface MlxMessage {
|
|
12
|
+
role: 'system' | 'user' | 'assistant';
|
|
13
|
+
content: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* MLX model options (キャメルケース形式)
|
|
17
|
+
* Python側へはmapOptionsToPythonで変換される
|
|
18
|
+
*/
|
|
19
|
+
export interface MlxMlModelOptions {
|
|
20
|
+
maxTokens?: number;
|
|
21
|
+
temperature?: number;
|
|
22
|
+
topP?: number;
|
|
23
|
+
topK?: number;
|
|
24
|
+
repetitionPenalty?: number;
|
|
25
|
+
repetitionContextSize?: number;
|
|
26
|
+
[key: string]: number | undefined;
|
|
27
|
+
}
|
|
28
|
+
export type { ChatRestrictions, ApiStrategy };
|
|
29
|
+
/**
|
|
30
|
+
* チャットテンプレート情報
|
|
31
|
+
*/
|
|
32
|
+
export interface ChatTemplateInfo {
|
|
33
|
+
templateString?: string;
|
|
34
|
+
supportedRoles: string[];
|
|
35
|
+
preview?: string;
|
|
36
|
+
constraints: Record<string, unknown>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* モデルの機能情報
|
|
40
|
+
*/
|
|
41
|
+
export interface ModelFeatures {
|
|
42
|
+
/** チャットテンプレートを持っているか */
|
|
43
|
+
hasChatTemplate: boolean;
|
|
44
|
+
/** 語彙サイズ */
|
|
45
|
+
vocabSize?: number;
|
|
46
|
+
/** モデルの最大長 */
|
|
47
|
+
modelMaxLength?: number;
|
|
48
|
+
/** チャットテンプレート情報 */
|
|
49
|
+
chatTemplate?: ChatTemplateInfo;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* MLXモデルの能力情報(公開API用)
|
|
53
|
+
*
|
|
54
|
+
* Pythonプロセスから取得した情報をcamelCaseに変換したもの
|
|
55
|
+
*/
|
|
56
|
+
export interface MlxModelCapabilities {
|
|
57
|
+
/** 利用可能なメソッド一覧 */
|
|
58
|
+
methods: string[];
|
|
59
|
+
/** 特殊トークン */
|
|
60
|
+
specialTokens: Record<string, SpecialToken | SpecialTokenPair>;
|
|
61
|
+
/** モデルの機能 */
|
|
62
|
+
features: ModelFeatures;
|
|
63
|
+
/** チャットの制約(Pythonから取得 + 静的知識) */
|
|
64
|
+
chatRestrictions?: ChatRestrictions;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mlx-ml/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAGD,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,wBAAwB;IACxB,eAAe,EAAE,OAAO,CAAC;IAEzB,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,mBAAmB;IACnB,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,kBAAkB;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,aAAa;IACb,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAAC,CAAC;IAE/D,aAAa;IACb,QAAQ,EAAE,aAAa,CAAC;IAExB,iCAAiC;IACjC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mlx-ml/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { OpenAIDriver, OpenAIDriverConfig } from '../openai/openai-driver.js';
|
|
2
|
+
/**
|
|
3
|
+
* Ollama driver configuration
|
|
4
|
+
*/
|
|
5
|
+
export interface OllamaDriverConfig extends Omit<OpenAIDriverConfig, 'apiKey' | 'organization'> {
|
|
6
|
+
baseURL?: string;
|
|
7
|
+
model?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Ollama driver (OpenAI-compatible API)
|
|
11
|
+
*/
|
|
12
|
+
export declare class OllamaDriver extends OpenAIDriver {
|
|
13
|
+
constructor(config?: OllamaDriverConfig);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=ollama-driver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama-driver.d.ts","sourceRoot":"","sources":["../../src/ollama/ollama-driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,cAAc,CAAC;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,YAAY;gBAChC,MAAM,GAAE,kBAAuB;CAQ5C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { OpenAIDriver } from '../openai/openai-driver.js';
|
|
2
|
+
/**
|
|
3
|
+
* Ollama driver (OpenAI-compatible API)
|
|
4
|
+
*/
|
|
5
|
+
export class OllamaDriver extends OpenAIDriver {
|
|
6
|
+
constructor(config = {}) {
|
|
7
|
+
super({
|
|
8
|
+
...config,
|
|
9
|
+
apiKey: 'ollama', // Ollama doesn't need an API key
|
|
10
|
+
baseURL: config.baseURL || 'http://localhost:11434/v1',
|
|
11
|
+
model: config.model || 'llama3.2'
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=ollama-driver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ollama-driver.js","sourceRoot":"","sources":["../../src/ollama/ollama-driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAsB,MAAM,4BAA4B,CAAC;AAU9E;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,YAAY;IAC5C,YAAY,SAA6B,EAAE;QACzC,KAAK,CAAC;YACJ,GAAG,MAAM;YACT,MAAM,EAAE,QAAQ,EAAE,iCAAiC;YACnD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,2BAA2B;YACtD,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,UAAU;SAClC,CAAC,CAAC;IACL,CAAC;CACF"}
|