@modular-prompt/driver 0.14.0 → 0.16.0
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/README.md +90 -5
- package/dist/driver-registry/ai-service.d.ts +23 -1
- package/dist/driver-registry/ai-service.d.ts.map +1 -1
- package/dist/driver-registry/ai-service.js +44 -10
- package/dist/driver-registry/ai-service.js.map +1 -1
- package/dist/driver-registry/config-based-factory.d.ts.map +1 -1
- package/dist/driver-registry/config-based-factory.js +20 -3
- package/dist/driver-registry/config-based-factory.js.map +1 -1
- package/dist/driver-registry/factory-helper.d.ts +2 -0
- package/dist/driver-registry/factory-helper.d.ts.map +1 -1
- package/dist/driver-registry/factory-helper.js +22 -3
- package/dist/driver-registry/factory-helper.js.map +1 -1
- package/dist/driver-registry/index.d.ts +2 -2
- package/dist/driver-registry/index.d.ts.map +1 -1
- package/dist/driver-registry/index.js +1 -1
- package/dist/driver-registry/index.js.map +1 -1
- package/dist/driver-registry/registry.d.ts.map +1 -1
- package/dist/driver-registry/registry.js +3 -1
- package/dist/driver-registry/registry.js.map +1 -1
- package/dist/driver-registry/types.d.ts +11 -2
- package/dist/driver-registry/types.d.ts.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/local-inference/adapters.d.ts +66 -0
- package/dist/local-inference/adapters.d.ts.map +1 -0
- package/dist/local-inference/adapters.js +2 -0
- package/dist/local-inference/adapters.js.map +1 -0
- package/dist/local-inference/driver.d.ts +51 -0
- package/dist/local-inference/driver.d.ts.map +1 -0
- package/dist/local-inference/driver.js +309 -0
- package/dist/local-inference/driver.js.map +1 -0
- package/dist/local-inference/index.d.ts +22 -0
- package/dist/local-inference/index.d.ts.map +1 -0
- package/dist/local-inference/index.js +17 -0
- package/dist/local-inference/index.js.map +1 -0
- package/dist/local-inference/process-client.d.ts +50 -0
- package/dist/local-inference/process-client.d.ts.map +1 -0
- package/dist/local-inference/process-client.js +92 -0
- package/dist/local-inference/process-client.js.map +1 -0
- package/dist/local-inference/process-communication.d.ts +41 -0
- package/dist/local-inference/process-communication.d.ts.map +1 -0
- package/dist/{mlx-ml/process → local-inference}/process-communication.js +25 -61
- package/dist/local-inference/process-communication.js.map +1 -0
- package/dist/local-inference/process-port.d.ts +12 -0
- package/dist/local-inference/process-port.d.ts.map +1 -0
- package/dist/local-inference/process-port.js +2 -0
- package/dist/local-inference/process-port.js.map +1 -0
- package/dist/local-inference/prompt-utils.d.ts +6 -0
- package/dist/local-inference/prompt-utils.d.ts.map +1 -0
- package/dist/local-inference/prompt-utils.js +17 -0
- package/dist/local-inference/prompt-utils.js.map +1 -0
- package/dist/local-inference/protocol.d.ts +192 -0
- package/dist/local-inference/protocol.d.ts.map +1 -0
- package/dist/local-inference/protocol.js +2 -0
- package/dist/local-inference/protocol.js.map +1 -0
- package/dist/local-inference/queue-types.d.ts +54 -0
- package/dist/local-inference/queue-types.d.ts.map +1 -0
- package/dist/local-inference/queue-types.js +2 -0
- package/dist/local-inference/queue-types.js.map +1 -0
- package/dist/local-inference/request-queue.d.ts +36 -0
- package/dist/local-inference/request-queue.d.ts.map +1 -0
- package/dist/{mlx-ml/process/queue.js → local-inference/request-queue.js} +83 -56
- package/dist/local-inference/request-queue.js.map +1 -0
- package/dist/local-inference/stream-utils.d.ts +19 -0
- package/dist/local-inference/stream-utils.d.ts.map +1 -0
- package/dist/local-inference/stream-utils.js +76 -0
- package/dist/local-inference/stream-utils.js.map +1 -0
- package/dist/mlx-ml/mlx-cache-controller.d.ts.map +1 -1
- package/dist/mlx-ml/mlx-cache-controller.js +2 -1
- package/dist/mlx-ml/mlx-cache-controller.js.map +1 -1
- package/dist/mlx-ml/mlx-cache-support.d.ts +23 -0
- package/dist/mlx-ml/mlx-cache-support.d.ts.map +1 -0
- package/dist/mlx-ml/mlx-cache-support.js +45 -0
- package/dist/mlx-ml/mlx-cache-support.js.map +1 -0
- package/dist/mlx-ml/mlx-driver.d.ts +20 -59
- package/dist/mlx-ml/mlx-driver.d.ts.map +1 -1
- package/dist/mlx-ml/mlx-driver.js +86 -460
- package/dist/mlx-ml/mlx-driver.js.map +1 -1
- package/dist/mlx-ml/mlx-local-inference-adapters.d.ts +3 -0
- package/dist/mlx-ml/mlx-local-inference-adapters.d.ts.map +1 -0
- package/dist/mlx-ml/mlx-local-inference-adapters.js +19 -0
- package/dist/mlx-ml/mlx-local-inference-adapters.js.map +1 -0
- package/dist/mlx-ml/mlx-options.d.ts +19 -0
- package/dist/mlx-ml/mlx-options.d.ts.map +1 -0
- package/dist/mlx-ml/mlx-options.js +30 -0
- package/dist/mlx-ml/mlx-options.js.map +1 -0
- package/dist/mlx-ml/process/index.d.ts +10 -8
- package/dist/mlx-ml/process/index.d.ts.map +1 -1
- package/dist/mlx-ml/process/index.js +73 -54
- package/dist/mlx-ml/process/index.js.map +1 -1
- package/dist/mlx-ml/process/model-specific.d.ts +2 -1
- package/dist/mlx-ml/process/model-specific.d.ts.map +1 -1
- package/dist/mlx-ml/process/model-specific.js.map +1 -1
- package/dist/mlx-ml/process/prompt-builder.d.ts +11 -0
- package/dist/mlx-ml/process/prompt-builder.d.ts.map +1 -0
- package/dist/mlx-ml/process/prompt-builder.js +51 -0
- package/dist/mlx-ml/process/prompt-builder.js.map +1 -0
- package/dist/mlx-ml/process/types.d.ts +15 -183
- package/dist/mlx-ml/process/types.d.ts.map +1 -1
- package/dist/mlx-ml/types.d.ts +2 -45
- package/dist/mlx-ml/types.d.ts.map +1 -1
- package/dist/models-config/index.d.ts +8 -0
- package/dist/models-config/index.d.ts.map +1 -0
- package/dist/models-config/index.js +7 -0
- package/dist/models-config/index.js.map +1 -0
- package/dist/models-config/loader.d.ts +20 -0
- package/dist/models-config/loader.d.ts.map +1 -0
- package/dist/models-config/loader.js +85 -0
- package/dist/models-config/loader.js.map +1 -0
- package/dist/models-config/paths.d.ts +15 -0
- package/dist/models-config/paths.d.ts.map +1 -0
- package/dist/models-config/paths.js +26 -0
- package/dist/models-config/paths.js.map +1 -0
- package/dist/models-config/resolve.d.ts +57 -0
- package/dist/models-config/resolve.d.ts.map +1 -0
- package/dist/models-config/resolve.js +208 -0
- package/dist/models-config/resolve.js.map +1 -0
- package/dist/models-config/types.d.ts +62 -0
- package/dist/models-config/types.d.ts.map +1 -0
- package/dist/models-config/types.js +5 -0
- package/dist/models-config/types.js.map +1 -0
- package/dist/pytorch/process/index.d.ts +35 -0
- package/dist/pytorch/process/index.d.ts.map +1 -0
- package/dist/pytorch/process/index.js +69 -0
- package/dist/pytorch/process/index.js.map +1 -0
- package/dist/pytorch/pytorch-driver.d.ts +35 -0
- package/dist/pytorch/pytorch-driver.d.ts.map +1 -0
- package/dist/pytorch/pytorch-driver.js +48 -0
- package/dist/pytorch/pytorch-driver.js.map +1 -0
- package/dist/pytorch/pytorch-local-inference-adapters.d.ts +3 -0
- package/dist/pytorch/pytorch-local-inference-adapters.d.ts.map +1 -0
- package/dist/pytorch/pytorch-local-inference-adapters.js +19 -0
- package/dist/pytorch/pytorch-local-inference-adapters.js.map +1 -0
- package/dist/pytorch/pytorch-options.d.ts +8 -0
- package/dist/pytorch/pytorch-options.d.ts.map +1 -0
- package/dist/pytorch/pytorch-options.js +21 -0
- package/dist/pytorch/pytorch-options.js.map +1 -0
- package/dist/query-logger.js +1 -1
- package/dist/query-logger.js.map +1 -1
- package/dist/runtime/check.d.ts +10 -0
- package/dist/runtime/check.d.ts.map +1 -0
- package/dist/runtime/check.js +25 -0
- package/dist/runtime/check.js.map +1 -0
- package/dist/runtime/index.d.ts +5 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +5 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/manifest-core.d.mts +27 -0
- package/dist/runtime/manifest-core.d.mts.map +1 -0
- package/dist/runtime/manifest-core.mjs +68 -0
- package/dist/runtime/manifest-core.mjs.map +1 -0
- package/dist/runtime/manifest.d.ts +18 -0
- package/dist/runtime/manifest.d.ts.map +1 -0
- package/dist/runtime/manifest.js +9 -0
- package/dist/runtime/manifest.js.map +1 -0
- package/dist/runtime/paths-core.d.mts +17 -0
- package/dist/runtime/paths-core.d.mts.map +1 -0
- package/dist/runtime/paths-core.mjs +67 -0
- package/dist/runtime/paths-core.mjs.map +1 -0
- package/dist/runtime/paths.d.ts +12 -0
- package/dist/runtime/paths.d.ts.map +1 -0
- package/dist/runtime/paths.js +17 -0
- package/dist/runtime/paths.js.map +1 -0
- package/dist/runtime/setup-commands-core.d.mts +13 -0
- package/dist/runtime/setup-commands-core.d.mts.map +1 -0
- package/dist/runtime/setup-commands-core.mjs +14 -0
- package/dist/runtime/setup-commands-core.mjs.map +1 -0
- package/dist/runtime/setup-commands.d.ts +2 -0
- package/dist/runtime/setup-commands.d.ts.map +1 -0
- package/dist/runtime/setup-commands.js +2 -0
- package/dist/runtime/setup-commands.js.map +1 -0
- package/dist/types.d.ts +11 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +13 -7
- package/scripts/download-model.js +26 -9
- package/scripts/runtime-cli.js +320 -0
- package/src/mlx-ml/python/__main__.py +43 -4
- package/src/mlx-ml/python/backends/cache_archive.py +41 -0
- package/src/mlx-ml/python/backends/mlx_lm.py +17 -1
- package/src/mlx-ml/python/handlers/__init__.py +2 -1
- package/src/mlx-ml/python/handlers/completion.py +3 -27
- package/src/mlx-ml/python/handlers/{chat.py → generate.py} +33 -106
- package/src/mlx-ml/python/handlers/render.py +40 -0
- package/src/mlx-ml/python/pyproject.toml +11 -4
- package/src/mlx-ml/python/server.py +28 -8
- package/src/mlx-ml/python/utils/template_render.py +80 -0
- package/src/mlx-ml/python/utils/token_utils.py +2 -2
- package/src/mlx-ml/python/uv.lock +544 -689
- package/src/pytorch/python/__main__.py +19 -0
- package/src/pytorch/python/backends/__init__.py +3 -0
- package/src/pytorch/python/backends/base.py +84 -0
- package/src/pytorch/python/backends/transformers_lm.py +127 -0
- package/src/pytorch/python/handlers/__init__.py +6 -0
- package/src/pytorch/python/handlers/cancel.py +53 -0
- package/src/pytorch/python/handlers/capabilities.py +6 -0
- package/src/pytorch/python/handlers/completion.py +15 -0
- package/src/pytorch/python/handlers/format_test.py +70 -0
- package/src/pytorch/python/handlers/generate.py +68 -0
- package/src/pytorch/python/handlers/render.py +40 -0
- package/src/pytorch/python/handlers/tokenize.py +63 -0
- package/src/pytorch/python/pyproject.toml +36 -0
- package/src/pytorch/python/server.py +140 -0
- package/src/pytorch/python/utils/__init__.py +0 -0
- package/src/pytorch/python/utils/chat_template_constraints.py +164 -0
- package/src/pytorch/python/utils/prompt_builder.py +54 -0
- package/src/pytorch/python/utils/template_render.py +80 -0
- package/src/pytorch/python/utils/token_utils.py +376 -0
- package/src/pytorch/python/uv.lock +694 -0
- package/dist/mlx-ml/process/process-communication.d.ts +0 -45
- package/dist/mlx-ml/process/process-communication.d.ts.map +0 -1
- package/dist/mlx-ml/process/process-communication.js.map +0 -1
- package/dist/mlx-ml/process/queue.d.ts +0 -35
- package/dist/mlx-ml/process/queue.d.ts.map +0 -1
- package/dist/mlx-ml/process/queue.js.map +0 -1
- package/scripts/setup-mlx.js +0 -53
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* models.yaml のマージ・解決
|
|
3
|
+
*/
|
|
4
|
+
import { loadModelsConfigFile } from './loader.js';
|
|
5
|
+
import { getModelsConfigPath, getUserModelsConfigPath } from './paths.js';
|
|
6
|
+
function shallowMergeRecords(base, overlay) {
|
|
7
|
+
if (!base && !overlay) {
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
return { ...(base ?? {}), ...(overlay ?? {}) };
|
|
11
|
+
}
|
|
12
|
+
function mergeModelsSection(base, overlay, mode) {
|
|
13
|
+
if (!base && !overlay) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
if (mode === 'override' && overlay) {
|
|
17
|
+
return { ...overlay };
|
|
18
|
+
}
|
|
19
|
+
return { ...(base ?? {}), ...(overlay ?? {}) };
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 2 つの ModelsConfig を shallow merge する(overlay 優先)
|
|
23
|
+
*/
|
|
24
|
+
export function mergeModelsConfig(base, overlay, mode = 'merge') {
|
|
25
|
+
const merged = {};
|
|
26
|
+
merged.drivers = shallowMergeRecords(base?.drivers, overlay?.drivers);
|
|
27
|
+
merged.defaultOptions = shallowMergeRecords(base?.defaultOptions, overlay?.defaultOptions);
|
|
28
|
+
const baseModels = base?.models;
|
|
29
|
+
const overlayModels = overlay?.models;
|
|
30
|
+
merged.models = mergeModelsSection(baseModels, overlayModels, mode);
|
|
31
|
+
return merged;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* ユーザーレベルの models.yaml を読み込む(存在しない場合は空)
|
|
35
|
+
*/
|
|
36
|
+
export function loadUserModelsConfig(profile) {
|
|
37
|
+
const config = loadModelsConfigFile(getUserModelsConfigPath()) ?? {};
|
|
38
|
+
const resolvedProfile = resolveModelsProfile(profile);
|
|
39
|
+
if (!resolvedProfile || resolvedProfile === 'default') {
|
|
40
|
+
return config;
|
|
41
|
+
}
|
|
42
|
+
return mergeModelsConfig(config, loadModelsConfigFile(getModelsConfigPath(resolvedProfile)), 'merge');
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* 明示 profile、環境変数、実行コンテキストの順に user profile を解決する。
|
|
46
|
+
* Vitest / NODE_ENV=test では testing profile を自動的に追加する。
|
|
47
|
+
*/
|
|
48
|
+
function resolveModelsProfile(profile) {
|
|
49
|
+
if (profile !== undefined) {
|
|
50
|
+
return profile;
|
|
51
|
+
}
|
|
52
|
+
if (process.env.MODULAR_PROMPT_MODELS_PROFILE) {
|
|
53
|
+
return process.env.MODULAR_PROMPT_MODELS_PROFILE;
|
|
54
|
+
}
|
|
55
|
+
if (process.env.NODE_ENV === 'test' || Boolean(process.env.VITEST)) {
|
|
56
|
+
return 'testing';
|
|
57
|
+
}
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* base / user / overlay を解決する
|
|
62
|
+
*
|
|
63
|
+
* マージ優先(下ほど高): base → user(source=merge のとき)→ overlay
|
|
64
|
+
*/
|
|
65
|
+
export function resolveModelsConfig(options) {
|
|
66
|
+
if (!options) {
|
|
67
|
+
return loadUserModelsConfig();
|
|
68
|
+
}
|
|
69
|
+
const source = options.source ?? 'merge';
|
|
70
|
+
const mode = options.mode ?? 'merge';
|
|
71
|
+
let config = options.base ? { ...options.base } : {};
|
|
72
|
+
if (source === 'merge') {
|
|
73
|
+
config = mergeModelsConfig(config, loadUserModelsConfig(options.profile), mode);
|
|
74
|
+
}
|
|
75
|
+
if (options.overlay) {
|
|
76
|
+
config = mergeModelsConfig(config, options.overlay, mode);
|
|
77
|
+
}
|
|
78
|
+
return config;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* ModelsConfig を ApplicationConfig に変換する
|
|
82
|
+
*/
|
|
83
|
+
export function toApplicationConfig(config) {
|
|
84
|
+
const models = config.models
|
|
85
|
+
? Object.values(config.models).map(entryToModelSpec)
|
|
86
|
+
: undefined;
|
|
87
|
+
return {
|
|
88
|
+
models,
|
|
89
|
+
drivers: config.drivers,
|
|
90
|
+
defaultOptions: config.defaultOptions,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* ModelSpecEntry を ModelSpec に変換(runtime は metadata に保持)
|
|
95
|
+
*/
|
|
96
|
+
export function entryToModelSpec(entry) {
|
|
97
|
+
const metadata = { ...(entry.metadata ?? {}) };
|
|
98
|
+
if (entry.runtime) {
|
|
99
|
+
metadata.runtime = entry.runtime;
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
model: entry.model,
|
|
103
|
+
provider: entry.provider,
|
|
104
|
+
capabilities: entry.capabilities ?? [],
|
|
105
|
+
maxInputTokens: entry.maxInputTokens,
|
|
106
|
+
maxOutputTokens: entry.maxOutputTokens,
|
|
107
|
+
maxTotalTokens: entry.maxTotalTokens,
|
|
108
|
+
tokensPerMinute: entry.tokensPerMinute,
|
|
109
|
+
requestsPerMinute: entry.requestsPerMinute,
|
|
110
|
+
cost: entry.cost,
|
|
111
|
+
priority: entry.priority,
|
|
112
|
+
disabled: entry.disabled,
|
|
113
|
+
defaultOptions: entry.defaultOptions,
|
|
114
|
+
driverOptions: entry.driverOptions,
|
|
115
|
+
metadata: Object.keys(metadata).length > 0 ? metadata : undefined,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* alias から ModelSpec を解決する
|
|
120
|
+
*/
|
|
121
|
+
export function resolveModelAlias(alias, config) {
|
|
122
|
+
const entry = config.models?.[alias];
|
|
123
|
+
if (!entry) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
return entryToModelSpec(entry);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* モデル名を alias または生の model 名として解決する
|
|
130
|
+
*/
|
|
131
|
+
export function resolveModelName(name, config, inferProvider) {
|
|
132
|
+
const byAlias = resolveModelAlias(name, config);
|
|
133
|
+
if (byAlias) {
|
|
134
|
+
return byAlias;
|
|
135
|
+
}
|
|
136
|
+
return {
|
|
137
|
+
model: name,
|
|
138
|
+
provider: inferProvider(name),
|
|
139
|
+
capabilities: [],
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* merged models からデフォルト ModelSpec を導出する
|
|
144
|
+
*
|
|
145
|
+
* 1. alias `default` があればそれを使用
|
|
146
|
+
* 2. なければ models の先頭エントリ(best-effort)
|
|
147
|
+
*/
|
|
148
|
+
export function resolveDefaultModelFromConfig(config) {
|
|
149
|
+
if (config.models?.default) {
|
|
150
|
+
return entryToModelSpec(config.models.default);
|
|
151
|
+
}
|
|
152
|
+
const entries = Object.entries(config.models ?? {});
|
|
153
|
+
if (entries.length === 0) {
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
const [, first] = entries[0];
|
|
157
|
+
return entryToModelSpec(first);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* ModelReferenceInput を ModelSpec に解決する
|
|
161
|
+
*/
|
|
162
|
+
export function resolveModelReference(ref, config) {
|
|
163
|
+
if (ref.ref) {
|
|
164
|
+
const spec = resolveModelAlias(ref.ref, config);
|
|
165
|
+
if (!spec) {
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
if (ref.provider) {
|
|
169
|
+
spec.provider = ref.provider;
|
|
170
|
+
}
|
|
171
|
+
if (ref.model) {
|
|
172
|
+
spec.model = ref.model;
|
|
173
|
+
}
|
|
174
|
+
return spec;
|
|
175
|
+
}
|
|
176
|
+
if (ref.provider && ref.model) {
|
|
177
|
+
return {
|
|
178
|
+
model: ref.model,
|
|
179
|
+
provider: ref.provider,
|
|
180
|
+
capabilities: [],
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* inline 設定(experiment YAML 等)を resolved config にマージして ApplicationConfig を構築
|
|
187
|
+
*/
|
|
188
|
+
export function buildApplicationConfig(resolved, inline, inlineMode) {
|
|
189
|
+
const merged = inline
|
|
190
|
+
? mergeModelsConfig(resolved, inline, inlineMode ?? 'merge')
|
|
191
|
+
: resolved;
|
|
192
|
+
return toApplicationConfig(merged);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* ModelsConfig の全モデルを DriverRegistry に登録する
|
|
196
|
+
*/
|
|
197
|
+
export function registerModelsFromConfig(registry, config) {
|
|
198
|
+
if (!config.models) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
for (const entry of Object.values(config.models)) {
|
|
202
|
+
if (entry.disabled) {
|
|
203
|
+
continue;
|
|
204
|
+
}
|
|
205
|
+
registry.registerModel(entryToModelSpec(entry));
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=resolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/models-config/resolve.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ~/.modular-prompt/models.yaml スキーマ型
|
|
3
|
+
*/
|
|
4
|
+
import type { ApplicationConfig } from '../driver-registry/config-based-factory.js';
|
|
5
|
+
import type { DriverCapability, DriverProvider, ModelSpec } from '../driver-registry/types.js';
|
|
6
|
+
/** models セクションのマージモード */
|
|
7
|
+
export type ModelsMergeMode = 'merge' | 'override';
|
|
8
|
+
/**
|
|
9
|
+
* user models.yaml の読み込み方
|
|
10
|
+
* - merge: user yaml を読み込み base / overlay とマージ(デフォルト)
|
|
11
|
+
* - overlay: user yaml を無視し base / overlay のみ使用
|
|
12
|
+
*/
|
|
13
|
+
export type ModelsConfigSource = 'merge' | 'overlay';
|
|
14
|
+
/** 利用側が明示投入する overlay とマージモード */
|
|
15
|
+
export interface ModelsConfigOptions {
|
|
16
|
+
/**
|
|
17
|
+
* user yaml の読み込み方(デフォルト: merge)
|
|
18
|
+
* overlay を指定したとき、user 全域 config を無視する場合は overlay を使う
|
|
19
|
+
*/
|
|
20
|
+
source?: ModelsConfigSource;
|
|
21
|
+
/** 追加で読み込む user profile(例: `testing` → models.testing.yaml) */
|
|
22
|
+
profile?: string;
|
|
23
|
+
/** アプリ同梱など、user より下のレイヤー */
|
|
24
|
+
base?: ModelsConfig;
|
|
25
|
+
/** 利用側 overlay(profile.modelsConfig 等) */
|
|
26
|
+
overlay?: ModelsConfig;
|
|
27
|
+
/** models セクションのマージモード(デフォルト: merge) */
|
|
28
|
+
mode?: ModelsMergeMode;
|
|
29
|
+
}
|
|
30
|
+
/** YAML 上のモデルエントリ(alias は親 Record のキー) */
|
|
31
|
+
export interface ModelSpecEntry {
|
|
32
|
+
model: string;
|
|
33
|
+
provider: DriverProvider | string;
|
|
34
|
+
capabilities?: DriverCapability[];
|
|
35
|
+
runtime?: string;
|
|
36
|
+
maxInputTokens?: number;
|
|
37
|
+
maxOutputTokens?: number;
|
|
38
|
+
maxTotalTokens?: number;
|
|
39
|
+
tokensPerMinute?: number;
|
|
40
|
+
requestsPerMinute?: number;
|
|
41
|
+
cost?: ModelSpec['cost'];
|
|
42
|
+
priority?: number;
|
|
43
|
+
disabled?: boolean;
|
|
44
|
+
defaultOptions?: ModelSpec['defaultOptions'];
|
|
45
|
+
driverOptions?: ModelSpec['driverOptions'];
|
|
46
|
+
metadata?: Record<string, unknown>;
|
|
47
|
+
}
|
|
48
|
+
/** models.yaml のルート構造 */
|
|
49
|
+
export interface ModelsConfig {
|
|
50
|
+
/** alias → ModelSpec エントリ */
|
|
51
|
+
models?: Record<string, ModelSpecEntry>;
|
|
52
|
+
drivers?: ApplicationConfig['drivers'];
|
|
53
|
+
defaultOptions?: ApplicationConfig['defaultOptions'];
|
|
54
|
+
}
|
|
55
|
+
/** workflow / inline からのモデル参照 */
|
|
56
|
+
export interface ModelReferenceInput {
|
|
57
|
+
/** models.yaml の alias */
|
|
58
|
+
ref?: string;
|
|
59
|
+
provider?: string;
|
|
60
|
+
model?: string;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/models-config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE/F,0BAA0B;AAC1B,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,UAAU,CAAC;AAEnD;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,CAAC;AAErD,iCAAiC;AACjC,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,wCAAwC;IACxC,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB;AAED,0CAA0C;AAC1C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,cAAc,GAAG,MAAM,CAAC;IAClC,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,yBAAyB;AACzB,MAAM,WAAW,YAAY;IAC3B,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACvC,cAAc,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;CACtD;AAED,iCAAiC;AACjC,MAAM,WAAW,mBAAmB;IAClC,0BAA0B;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/models-config/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PyTorch Driver 外部インターフェース
|
|
3
|
+
*/
|
|
4
|
+
import { Readable } from 'stream';
|
|
5
|
+
import type { InferenceCapabilities, InferenceFormatTestResult, InferenceMessage, InferenceRenderResult, InferenceTokenizeResult, InferenceToolDefinition } from '../../local-inference/protocol.js';
|
|
6
|
+
export interface PyTorchProcessOptions {
|
|
7
|
+
/** デフォルトの ~/.modular-prompt/runtimes/pytorch/.venv を上書き */
|
|
8
|
+
venvPath?: string;
|
|
9
|
+
/** Python 子プロセスへ渡す PYTORCH_DEVICE(例: cpu, cuda) */
|
|
10
|
+
device?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class PyTorchProcess {
|
|
13
|
+
readonly modelName: string;
|
|
14
|
+
private readonly client;
|
|
15
|
+
constructor(modelName: string, options?: PyTorchProcessOptions);
|
|
16
|
+
ensureInitialized(): Promise<void>;
|
|
17
|
+
getCapabilities(): Promise<InferenceCapabilities>;
|
|
18
|
+
formatTest(messages: InferenceMessage[], options?: {
|
|
19
|
+
primer?: string;
|
|
20
|
+
}): Promise<InferenceFormatTestResult>;
|
|
21
|
+
render(messages: InferenceMessage[], options?: Record<string, unknown> & {
|
|
22
|
+
primer?: string;
|
|
23
|
+
}, tools?: InferenceToolDefinition[], reasoningEffort?: 'low' | 'medium' | 'high'): Promise<InferenceRenderResult>;
|
|
24
|
+
tokenize(messages: InferenceMessage[], tools?: InferenceToolDefinition[], reasoningEffort?: 'low' | 'medium' | 'high'): Promise<InferenceTokenizeResult>;
|
|
25
|
+
generate(prompt: string | number[], options?: Record<string, unknown>, images?: string[], maxImageSize?: number): Promise<Readable>;
|
|
26
|
+
exit(): Promise<void>;
|
|
27
|
+
cancelActiveRequest(): void;
|
|
28
|
+
getStatus(): {
|
|
29
|
+
modelName: string;
|
|
30
|
+
queueLength: number;
|
|
31
|
+
isStreamingActive: boolean;
|
|
32
|
+
isJsonBuffering: boolean;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pytorch/process/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AASlC,OAAO,KAAK,EACV,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,mCAAmC,CAAC;AAO3C,MAAM,WAAW,qBAAqB;IACpC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAcD,qBAAa,cAAc;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;gBAEpC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB;IA2BxD,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC,eAAe,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAIjD,UAAU,CACd,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5B,OAAO,CAAC,yBAAyB,CAAC;IAI/B,MAAM,CACV,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EACvD,KAAK,CAAC,EAAE,uBAAuB,EAAE,EACjC,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAC1C,OAAO,CAAC,qBAAqB,CAAC;IAI3B,QAAQ,CACZ,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,KAAK,CAAC,EAAE,uBAAuB,EAAE,EACjC,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAC1C,OAAO,CAAC,uBAAuB,CAAC;IAI7B,QAAQ,CACZ,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,QAAQ,CAAC;IAId,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,mBAAmB,IAAI,IAAI;IAI3B,SAAS;;;;;;CAGV"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PyTorch Driver 外部インターフェース
|
|
3
|
+
*/
|
|
4
|
+
import { existsSync } from 'fs';
|
|
5
|
+
import { getPytorchPythonDir, getVenvPath, resolvePackageRootFromProcessModule, SETUP_PYTORCH_MONOREPO, } from '../../runtime/index.js';
|
|
6
|
+
import { InferenceProcessClient } from '../../local-inference/process-client.js';
|
|
7
|
+
import { mapOptionsToPython } from '../../mlx-ml/process/parameter-mapper.js';
|
|
8
|
+
const packageRoot = resolvePackageRootFromProcessModule(import.meta.url);
|
|
9
|
+
const pytorchPythonDir = getPytorchPythonDir(packageRoot);
|
|
10
|
+
function resolveVenvPath(options) {
|
|
11
|
+
return (options?.venvPath ??
|
|
12
|
+
process.env.MODULAR_PROMPT_PYTORCH_VENV ??
|
|
13
|
+
getVenvPath('pytorch'));
|
|
14
|
+
}
|
|
15
|
+
function usesDefaultRuntimeVenv(venvPath) {
|
|
16
|
+
return venvPath === getVenvPath('pytorch');
|
|
17
|
+
}
|
|
18
|
+
export class PyTorchProcess {
|
|
19
|
+
modelName;
|
|
20
|
+
client;
|
|
21
|
+
constructor(modelName, options) {
|
|
22
|
+
this.modelName = modelName;
|
|
23
|
+
const venvPath = resolveVenvPath(options);
|
|
24
|
+
if (!existsSync(venvPath)) {
|
|
25
|
+
throw new Error(`PyTorch venv not found at ${venvPath}. ` +
|
|
26
|
+
`Run: ${SETUP_PYTORCH_MONOREPO}`);
|
|
27
|
+
}
|
|
28
|
+
const device = options?.device ?? process.env.PYTORCH_DEVICE;
|
|
29
|
+
const extraEnv = device ? { PYTORCH_DEVICE: device } : undefined;
|
|
30
|
+
this.client = new InferenceProcessClient({
|
|
31
|
+
modelName,
|
|
32
|
+
pythonProjectDir: pytorchPythonDir,
|
|
33
|
+
venvPath,
|
|
34
|
+
runtimeProfile: usesDefaultRuntimeVenv(venvPath) ? 'pytorch' : undefined,
|
|
35
|
+
extraEnv,
|
|
36
|
+
loggerPrefix: 'PyTorch',
|
|
37
|
+
mapSamplingOptions: (opts) => mapOptionsToPython(opts, false),
|
|
38
|
+
processExitErrorMessage: (code, signal) => `PyTorch process exited unexpectedly (code=${code}, signal=${signal})`,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
async ensureInitialized() {
|
|
42
|
+
return this.client.ensureInitialized();
|
|
43
|
+
}
|
|
44
|
+
async getCapabilities() {
|
|
45
|
+
return this.client.getCapabilities();
|
|
46
|
+
}
|
|
47
|
+
async formatTest(messages, options) {
|
|
48
|
+
return this.client.formatTest(messages, options);
|
|
49
|
+
}
|
|
50
|
+
async render(messages, options, tools, reasoningEffort) {
|
|
51
|
+
return this.client.render(messages, options, tools, reasoningEffort);
|
|
52
|
+
}
|
|
53
|
+
async tokenize(messages, tools, reasoningEffort) {
|
|
54
|
+
return this.client.tokenize(messages, tools, reasoningEffort);
|
|
55
|
+
}
|
|
56
|
+
async generate(prompt, options, images, maxImageSize) {
|
|
57
|
+
return this.client.generate(prompt, options, images, maxImageSize);
|
|
58
|
+
}
|
|
59
|
+
async exit() {
|
|
60
|
+
return this.client.exit();
|
|
61
|
+
}
|
|
62
|
+
cancelActiveRequest() {
|
|
63
|
+
this.client.cancelActiveRequest();
|
|
64
|
+
}
|
|
65
|
+
getStatus() {
|
|
66
|
+
return this.client.getStatus();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/pytorch/process/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { LocalInferenceDriver } from '../local-inference/driver.js';
|
|
2
|
+
import type { InferenceCapabilities } from '../local-inference/protocol.js';
|
|
3
|
+
import type { FormatterOptions } from '../formatter/types.js';
|
|
4
|
+
import type { PyTorchQueryOptions } from './pytorch-options.js';
|
|
5
|
+
export interface PyTorchModelCapabilities {
|
|
6
|
+
methods: InferenceCapabilities['methods'];
|
|
7
|
+
specialTokens: InferenceCapabilities['special_tokens'];
|
|
8
|
+
features: {
|
|
9
|
+
hasChatTemplate: boolean;
|
|
10
|
+
vocabSize?: number;
|
|
11
|
+
modelMaxLength?: number;
|
|
12
|
+
chatTemplate?: InferenceCapabilities['features']['chat_template'];
|
|
13
|
+
};
|
|
14
|
+
chatRestrictions?: InferenceCapabilities['chat_restrictions'];
|
|
15
|
+
}
|
|
16
|
+
export interface PyTorchDriverConfig {
|
|
17
|
+
model: string;
|
|
18
|
+
defaultOptions?: Partial<PyTorchQueryOptions>;
|
|
19
|
+
formatterOptions?: FormatterOptions;
|
|
20
|
+
/** 外部 venv パス(未指定時は ~/.modular-prompt/runtimes/pytorch/.venv) */
|
|
21
|
+
venvPath?: string;
|
|
22
|
+
/** PYTORCH_DEVICE(例: cpu, cuda)。未指定時は Python 側で cpu */
|
|
23
|
+
device?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Transformers + PyTorch バックエンド(LIP)。
|
|
27
|
+
* 共通ロジックは LocalInferenceDriver に委譲する。
|
|
28
|
+
*/
|
|
29
|
+
export declare class PyTorchDriver extends LocalInferenceDriver {
|
|
30
|
+
constructor(config: PyTorchDriverConfig);
|
|
31
|
+
get defaultOptions(): Partial<PyTorchQueryOptions>;
|
|
32
|
+
set defaultOptions(value: Partial<PyTorchQueryOptions>);
|
|
33
|
+
getCapabilities(): Promise<PyTorchModelCapabilities>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=pytorch-driver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pytorch-driver.d.ts","sourceRoot":"","sources":["../../src/pytorch/pytorch-driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAIhE,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAC1C,aAAa,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IACvD,QAAQ,EAAE;QACR,eAAe,EAAE,OAAO,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC;KACnE,CAAC;IACF,gBAAgB,CAAC,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,oBAAoB;gBACzC,MAAM,EAAE,mBAAmB;IAgBvC,IAAI,cAAc,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAEjD;IAED,IAAI,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,EAErD;IAEK,eAAe,IAAI,OAAO,CAAC,wBAAwB,CAAC;CAoB3D"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { LocalInferenceDriver } from '../local-inference/driver.js';
|
|
2
|
+
import { PyTorchProcess } from './process/index.js';
|
|
3
|
+
import { pytorchLocalInferenceAdapters } from './pytorch-local-inference-adapters.js';
|
|
4
|
+
/**
|
|
5
|
+
* Transformers + PyTorch バックエンド(LIP)。
|
|
6
|
+
* 共通ロジックは LocalInferenceDriver に委譲する。
|
|
7
|
+
*/
|
|
8
|
+
export class PyTorchDriver extends LocalInferenceDriver {
|
|
9
|
+
constructor(config) {
|
|
10
|
+
const process = new PyTorchProcess(config.model, {
|
|
11
|
+
venvPath: config.venvPath,
|
|
12
|
+
device: config.device,
|
|
13
|
+
});
|
|
14
|
+
super({
|
|
15
|
+
model: config.model,
|
|
16
|
+
process,
|
|
17
|
+
adapters: pytorchLocalInferenceAdapters,
|
|
18
|
+
formatterOptions: config.formatterOptions,
|
|
19
|
+
defaultOptions: config.defaultOptions,
|
|
20
|
+
loggerPrefix: 'PyTorch',
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
get defaultOptions() {
|
|
24
|
+
return super.defaultOptions;
|
|
25
|
+
}
|
|
26
|
+
set defaultOptions(value) {
|
|
27
|
+
super.defaultOptions = value ?? {};
|
|
28
|
+
}
|
|
29
|
+
async getCapabilities() {
|
|
30
|
+
await this.ensureInitialized();
|
|
31
|
+
const runtimeInfo = this.getRuntimeInfo();
|
|
32
|
+
if (!runtimeInfo) {
|
|
33
|
+
throw new Error('Failed to retrieve model capabilities');
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
methods: runtimeInfo.methods,
|
|
37
|
+
specialTokens: runtimeInfo.special_tokens,
|
|
38
|
+
features: {
|
|
39
|
+
hasChatTemplate: runtimeInfo.features.apply_chat_template,
|
|
40
|
+
vocabSize: runtimeInfo.features.vocab_size,
|
|
41
|
+
modelMaxLength: runtimeInfo.features.model_max_length,
|
|
42
|
+
chatTemplate: runtimeInfo.features.chat_template,
|
|
43
|
+
},
|
|
44
|
+
chatRestrictions: runtimeInfo.chat_restrictions,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=pytorch-driver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pytorch-driver.js","sourceRoot":"","sources":["../../src/pytorch/pytorch-driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAIpE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAwBtF;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,oBAAoB;IACrD,YAAY,MAA2B;QACrC,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE;YAC/C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,KAAK,CAAC;YACJ,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO;YACP,QAAQ,EAAE,6BAA6B;YACvC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,KAAK,CAAC,cAA8C,CAAC;IAC9D,CAAC;IAED,IAAI,cAAc,CAAC,KAAmC;QACpD,KAAK,CAAC,cAAc,GAAG,KAAK,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/B,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO;YACL,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,aAAa,EAAE,WAAW,CAAC,cAAc;YACzC,QAAQ,EAAE;gBACR,eAAe,EAAE,WAAW,CAAC,QAAQ,CAAC,mBAAmB;gBACzD,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,UAAU;gBAC1C,cAAc,EAAE,WAAW,CAAC,QAAQ,CAAC,gBAAgB;gBACrD,YAAY,EAAE,WAAW,CAAC,QAAQ,CAAC,aAAa;aACjD;YACD,gBAAgB,EAAE,WAAW,CAAC,iBAAiB;SAChD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pytorch-local-inference-adapters.d.ts","sourceRoot":"","sources":["../../src/pytorch/pytorch-local-inference-adapters.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAE7E,eAAO,MAAM,6BAA6B,EAAE,sBAa3C,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { mergePyTorchQueryOptions, toPyTorchSamplingOptions } from './pytorch-options.js';
|
|
2
|
+
import { createModelSpecificProcessor, selectApi } from '../mlx-ml/process/model-specific.js';
|
|
3
|
+
import { selectResponseProcessor } from '../mlx-ml/process/model-handlers.js';
|
|
4
|
+
import { generateMergedPrompt } from '../mlx-ml/process/prompt-builder.js';
|
|
5
|
+
import { formatToolDefinitionsAsText } from '../mlx-ml/tool-call-parser/index.js';
|
|
6
|
+
import { convertMessages, convertToolDefinitions, extractImagePaths, } from '../mlx-ml/mlx-message-utils.js';
|
|
7
|
+
export const pytorchLocalInferenceAdapters = {
|
|
8
|
+
mergeQueryOptions: (defaults, options) => mergePyTorchQueryOptions(defaults, options),
|
|
9
|
+
toSamplingOptions: (merged) => toPyTorchSamplingOptions(merged),
|
|
10
|
+
createModelProcessor: (model) => createModelSpecificProcessor(model),
|
|
11
|
+
selectResponseProcessor: (model, runtimeInfo, opts) => selectResponseProcessor(model, runtimeInfo, opts),
|
|
12
|
+
convertToolDefinitions,
|
|
13
|
+
convertMessages,
|
|
14
|
+
extractImagePaths,
|
|
15
|
+
formatToolDefinitionsAsText,
|
|
16
|
+
generateMergedPrompt,
|
|
17
|
+
selectApi,
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=pytorch-local-inference-adapters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pytorch-local-inference-adapters.js","sourceRoot":"","sources":["../../src/pytorch/pytorch-local-inference-adapters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,4BAA4B,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAC9F,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AAGxC,MAAM,CAAC,MAAM,6BAA6B,GAA2B;IACnE,iBAAiB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CACvC,wBAAwB,CAAC,QAAQ,EAAE,OAAO,CAA4B;IACxE,iBAAiB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC;IAC/D,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,4BAA4B,CAAC,KAAK,CAAC;IACpE,uBAAuB,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CACpD,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC;IACnD,sBAAsB;IACtB,eAAe;IACf,iBAAiB;IACjB,2BAA2B;IAC3B,oBAAoB;IACpB,SAAS;CACV,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { QueryOptions } from '../types.js';
|
|
2
|
+
/** PyTorch ドライバーのクエリオプション(MLX と同型のサンプリング) */
|
|
3
|
+
export type PyTorchQueryOptions = QueryOptions & {
|
|
4
|
+
trustRemoteCode?: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare function mergePyTorchQueryOptions(defaults?: Partial<PyTorchQueryOptions>, overrides?: QueryOptions): PyTorchQueryOptions;
|
|
7
|
+
export declare function toPyTorchSamplingOptions(merged: Partial<PyTorchQueryOptions>): Record<string, unknown>;
|
|
8
|
+
//# sourceMappingURL=pytorch-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pytorch-options.d.ts","sourceRoot":"","sources":["../../src/pytorch/pytorch-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,6CAA6C;AAC7C,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG;IAC/C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAUF,wBAAgB,wBAAwB,CACtC,QAAQ,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,EACvC,SAAS,CAAC,EAAE,YAAY,GACvB,mBAAmB,CAErB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,GACnC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASzB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const PYTORCH_SAMPLING_KEYS = [
|
|
2
|
+
'maxTokens',
|
|
3
|
+
'temperature',
|
|
4
|
+
'topP',
|
|
5
|
+
'topK',
|
|
6
|
+
'trustRemoteCode',
|
|
7
|
+
];
|
|
8
|
+
export function mergePyTorchQueryOptions(defaults, overrides) {
|
|
9
|
+
return { ...defaults, ...overrides };
|
|
10
|
+
}
|
|
11
|
+
export function toPyTorchSamplingOptions(merged) {
|
|
12
|
+
const result = {};
|
|
13
|
+
for (const key of PYTORCH_SAMPLING_KEYS) {
|
|
14
|
+
const value = merged[key];
|
|
15
|
+
if (value !== undefined) {
|
|
16
|
+
result[key] = value;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=pytorch-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pytorch-options.js","sourceRoot":"","sources":["../../src/pytorch/pytorch-options.ts"],"names":[],"mappings":"AAOA,MAAM,qBAAqB,GAAG;IAC5B,WAAW;IACX,aAAa;IACb,MAAM;IACN,MAAM;IACN,iBAAiB;CACT,CAAC;AAEX,MAAM,UAAU,wBAAwB,CACtC,QAAuC,EACvC,SAAwB;IAExB,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,SAAS,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAAoC;IAEpC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/query-logger.js
CHANGED
|
@@ -55,7 +55,7 @@ export class QueryLogger {
|
|
|
55
55
|
since: this.startTime,
|
|
56
56
|
filterByContext: true,
|
|
57
57
|
});
|
|
58
|
-
const errors = logEntries.filter(e => e.level === 'error');
|
|
58
|
+
const errors = logEntries.filter((e) => e.level === 'error');
|
|
59
59
|
return {
|
|
60
60
|
logEntries: logEntries.length > 0 ? logEntries : undefined,
|
|
61
61
|
errors: errors.length > 0 ? errors : undefined,
|
package/dist/query-logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-logger.js","sourceRoot":"","sources":["../src/query-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,uBAAuB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,WAAW;IACL,MAAM,CAAS;IACxB,SAAS,CAAO;IAExB,YAAY,MAAc,EAAE,UAAkB,QAAQ;QACpD,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;YACvB,MAAM;YACN,OAAO;YACP,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,yCAAyC;IACzC,IAAI,CAAC,OAAiC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,EAAE,CAAC;YACZ,sBAAsB;YACtB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;YACnC,MAAM,OAAO,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;YACrD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,mDAAmD;IACnD,OAAO;QACL,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3C,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"query-logger.js","sourceRoot":"","sources":["../src/query-logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,uBAAuB,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,WAAW;IACL,MAAM,CAAS;IACxB,SAAS,CAAO;IAExB,YAAY,MAAc,EAAE,UAAkB,QAAQ;QACpD,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;YACvB,MAAM;YACN,OAAO;YACP,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,yCAAyC;IACzC,IAAI,CAAC,OAAiC;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,EAAE,CAAC;YACZ,sBAAsB;YACtB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;YACnC,MAAM,OAAO,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;YACrD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7C,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,0BAA0B;IAC1B,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,mDAAmD;IACnD,OAAO;QACL,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3C,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;QAEvE,OAAO;YACL,UAAU,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC1D,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SAC/C,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { RuntimeProfile } from './paths.js';
|
|
2
|
+
import { isRuntimeReady } from './paths.js';
|
|
3
|
+
export declare class RuntimeNotReadyError extends Error {
|
|
4
|
+
readonly profile: RuntimeProfile;
|
|
5
|
+
readonly setupCommand: string;
|
|
6
|
+
constructor(profile: RuntimeProfile);
|
|
7
|
+
}
|
|
8
|
+
export { isRuntimeReady };
|
|
9
|
+
export declare function assertRuntimeReady(profile: RuntimeProfile): void;
|
|
10
|
+
//# sourceMappingURL=check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/runtime/check.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAe,cAAc,EAAE,MAAM,YAAY,CAAC;AAOzD,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;gBAElB,OAAO,EAAE,cAAc;CAepC;AAED,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAIhE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { getVenvPath, isRuntimeReady } from './paths.js';
|
|
2
|
+
import { SETUP_MLX_MONOREPO, SETUP_PYTORCH_MONOREPO, SETUP_MLX_CLI, } from './setup-commands.js';
|
|
3
|
+
export class RuntimeNotReadyError extends Error {
|
|
4
|
+
profile;
|
|
5
|
+
setupCommand;
|
|
6
|
+
constructor(profile) {
|
|
7
|
+
const setupCommand = profile === 'mlx'
|
|
8
|
+
? SETUP_MLX_MONOREPO
|
|
9
|
+
: profile === 'pytorch'
|
|
10
|
+
? SETUP_PYTORCH_MONOREPO
|
|
11
|
+
: SETUP_MLX_CLI.replace(' setup mlx', ` setup ${profile}`);
|
|
12
|
+
super(`${profile} runtime is not set up at ${getVenvPath(profile)}. ` +
|
|
13
|
+
`Run: ${setupCommand}`);
|
|
14
|
+
this.name = 'RuntimeNotReadyError';
|
|
15
|
+
this.profile = profile;
|
|
16
|
+
this.setupCommand = setupCommand;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export { isRuntimeReady };
|
|
20
|
+
export function assertRuntimeReady(profile) {
|
|
21
|
+
if (!isRuntimeReady(profile)) {
|
|
22
|
+
throw new RuntimeNotReadyError(profile);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=check.js.map
|