@modular-prompt/driver 0.16.0 → 0.17.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 +93 -10
- package/dist/cache-controller.d.ts +4 -0
- package/dist/cache-controller.d.ts.map +1 -1
- package/dist/driver-registry/config-based-factory.d.ts.map +1 -1
- package/dist/driver-registry/config-based-factory.js +6 -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 +9 -2
- package/dist/driver-registry/factory-helper.js.map +1 -1
- package/dist/driver-registry/index.d.ts +1 -1
- package/dist/driver-registry/index.d.ts.map +1 -1
- package/dist/driver-registry/types.d.ts +15 -1
- package/dist/driver-registry/types.d.ts.map +1 -1
- package/dist/formatter/converter.d.ts.map +1 -1
- package/dist/formatter/converter.js +31 -2
- package/dist/formatter/converter.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/local-inference/adapters.d.ts +6 -0
- package/dist/local-inference/adapters.d.ts.map +1 -1
- package/dist/local-inference/driver.d.ts.map +1 -1
- package/dist/local-inference/driver.js +45 -24
- package/dist/local-inference/driver.js.map +1 -1
- package/dist/local-inference/process-client.d.ts +4 -2
- package/dist/local-inference/process-client.d.ts.map +1 -1
- package/dist/local-inference/process-client.js +24 -8
- package/dist/local-inference/process-client.js.map +1 -1
- package/dist/local-inference/process-communication.d.ts +9 -2
- package/dist/local-inference/process-communication.d.ts.map +1 -1
- package/dist/local-inference/process-communication.js +37 -5
- package/dist/local-inference/process-communication.js.map +1 -1
- package/dist/local-inference/protocol.d.ts +4 -0
- package/dist/local-inference/protocol.d.ts.map +1 -1
- package/dist/local-inference/request-queue.d.ts +1 -1
- package/dist/local-inference/request-queue.d.ts.map +1 -1
- package/dist/local-inference/request-queue.js +26 -7
- package/dist/local-inference/request-queue.js.map +1 -1
- package/dist/local-inference/stream-utils.d.ts +6 -0
- package/dist/local-inference/stream-utils.d.ts.map +1 -1
- package/dist/local-inference/stream-utils.js.map +1 -1
- package/dist/mlx-ml/mlx-cache-controller.d.ts +9 -0
- package/dist/mlx-ml/mlx-cache-controller.d.ts.map +1 -1
- package/dist/mlx-ml/mlx-cache-controller.js +158 -33
- package/dist/mlx-ml/mlx-cache-controller.js.map +1 -1
- package/dist/mlx-ml/mlx-cache-support.d.ts +2 -2
- package/dist/mlx-ml/mlx-cache-support.d.ts.map +1 -1
- package/dist/mlx-ml/mlx-cache-support.js +8 -3
- package/dist/mlx-ml/mlx-cache-support.js.map +1 -1
- package/dist/mlx-ml/mlx-driver.d.ts +0 -1
- package/dist/mlx-ml/mlx-driver.d.ts.map +1 -1
- package/dist/mlx-ml/mlx-driver.js +1 -8
- package/dist/mlx-ml/mlx-driver.js.map +1 -1
- package/dist/mlx-ml/process/index.d.ts +1 -1
- package/dist/mlx-ml/process/index.d.ts.map +1 -1
- package/dist/mlx-ml/process/index.js +2 -2
- package/dist/mlx-ml/process/index.js.map +1 -1
- package/dist/models-config/index.d.ts +1 -1
- package/dist/models-config/index.d.ts.map +1 -1
- package/dist/models-config/index.js +1 -1
- package/dist/models-config/index.js.map +1 -1
- package/dist/models-config/resolve.d.ts +9 -1
- package/dist/models-config/resolve.d.ts.map +1 -1
- package/dist/models-config/resolve.js +94 -2
- package/dist/models-config/resolve.js.map +1 -1
- package/dist/models-config/types.d.ts +3 -1
- package/dist/models-config/types.d.ts.map +1 -1
- package/dist/pytorch/process/index.d.ts +4 -2
- package/dist/pytorch/process/index.d.ts.map +1 -1
- package/dist/pytorch/process/index.js +24 -7
- package/dist/pytorch/process/index.js.map +1 -1
- package/dist/pytorch/pytorch-cache-controller.d.ts +84 -0
- package/dist/pytorch/pytorch-cache-controller.d.ts.map +1 -0
- package/dist/pytorch/pytorch-cache-controller.js +742 -0
- package/dist/pytorch/pytorch-cache-controller.js.map +1 -0
- package/dist/pytorch/pytorch-cache-support.d.ts +23 -0
- package/dist/pytorch/pytorch-cache-support.d.ts.map +1 -0
- package/dist/pytorch/pytorch-cache-support.js +47 -0
- package/dist/pytorch/pytorch-cache-support.js.map +1 -0
- package/dist/pytorch/pytorch-driver.d.ts +8 -1
- package/dist/pytorch/pytorch-driver.d.ts.map +1 -1
- package/dist/pytorch/pytorch-driver.js +40 -0
- package/dist/pytorch/pytorch-driver.js.map +1 -1
- package/dist/runtime/check.d.ts.map +1 -1
- package/dist/runtime/check.js +8 -6
- package/dist/runtime/check.js.map +1 -1
- package/dist/runtime/index.d.ts +2 -2
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +2 -2
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/manifest-core.d.mts +1 -0
- package/dist/runtime/manifest-core.mjs +1 -0
- package/dist/runtime/manifest-core.mjs.map +1 -1
- package/dist/runtime/manifest.d.ts +2 -0
- package/dist/runtime/manifest.d.ts.map +1 -1
- package/dist/runtime/manifest.js.map +1 -1
- package/dist/runtime/paths-core.d.mts +15 -1
- package/dist/runtime/paths-core.d.mts.map +1 -1
- package/dist/runtime/paths-core.mjs +50 -5
- package/dist/runtime/paths-core.mjs.map +1 -1
- package/dist/runtime/paths.d.ts +2 -2
- package/dist/runtime/paths.d.ts.map +1 -1
- package/dist/runtime/paths.js +2 -2
- package/dist/runtime/paths.js.map +1 -1
- package/dist/runtime/pytorch-template-core.d.mts +11 -0
- package/dist/runtime/pytorch-template-core.d.mts.map +1 -0
- package/dist/runtime/pytorch-template-core.mjs +54 -0
- package/dist/runtime/pytorch-template-core.mjs.map +1 -0
- package/dist/runtime/setup-commands-core.d.mts +3 -0
- package/dist/runtime/setup-commands-core.d.mts.map +1 -1
- package/dist/runtime/setup-commands-core.mjs +4 -0
- package/dist/runtime/setup-commands-core.mjs.map +1 -1
- package/dist/runtime/setup-commands.d.ts +1 -1
- package/dist/runtime/setup-commands.d.ts.map +1 -1
- package/dist/runtime/setup-commands.js +1 -1
- package/dist/runtime/setup-commands.js.map +1 -1
- package/docs/DRIVER_API.md +455 -0
- package/docs/LOCAL_MODEL_SETUP.md +765 -0
- package/docs/mlx-api-selection.md +301 -0
- package/package.json +9 -5
- package/scripts/runtime-cli.bin.test.ts +142 -0
- package/scripts/runtime-cli.js +305 -35
- package/scripts/runtime-cli.test.ts +163 -0
- package/src/mlx-ml/python/__main__.py +1 -1
- package/src/mlx-ml/python/backends/base.py +88 -18
- package/src/mlx-ml/python/backends/mlx_lm.py +28 -3
- package/src/mlx-ml/python/backends/mlx_vlm.py +679 -2
- package/src/mlx-ml/python/handlers/cache.py +4 -0
- package/src/mlx-ml/python/handlers/generate.py +33 -10
- package/src/mlx-ml/python/handlers/tokenize.py +1 -4
- package/src/mlx-ml/python/pyproject.toml +1 -1
- package/src/mlx-ml/python/server.py +2 -0
- package/src/mlx-ml/python/uv.lock +8 -8
- package/src/pytorch/templates/cpu-minimal/backends/base.py +139 -0
- package/src/pytorch/templates/cpu-minimal/backends/transformers_lm.py +1167 -0
- package/src/pytorch/{python → templates/cpu-minimal}/handlers/__init__.py +1 -0
- package/src/pytorch/templates/cpu-minimal/handlers/cache.py +88 -0
- package/src/pytorch/templates/cpu-minimal/handlers/generate.py +157 -0
- package/src/pytorch/{python → templates/cpu-minimal}/pyproject.toml +2 -2
- package/src/pytorch/{python → templates/cpu-minimal}/server.py +20 -2
- package/src/pytorch/templates/cpu-minimal/tests/test_cache_handler.py +284 -0
- package/src/pytorch/templates/cpu-minimal/tests/test_capabilities.py +14 -0
- package/src/pytorch/templates/cpu-minimal/tests/test_server.py +141 -0
- package/src/pytorch/templates/cpu-minimal/tests/test_transformers_errors.py +89 -0
- package/src/pytorch/templates/cpu-minimal/tests/test_transformers_lm_cache.py +554 -0
- package/src/pytorch/templates/cpu-minimal/utils/__init__.py +0 -0
- package/src/pytorch/{python → templates/cpu-minimal}/utils/token_utils.py +2 -2
- package/src/pytorch/templates/cpu-minimal/utils/transformers_errors.py +54 -0
- package/src/pytorch/{python → templates/cpu-minimal}/uv.lock +149 -109
- package/src/pytorch/templates/cuda/__main__.py +19 -0
- package/src/pytorch/templates/cuda/backends/__init__.py +3 -0
- package/src/pytorch/{python → templates/cuda}/backends/base.py +54 -6
- package/src/pytorch/templates/cuda/backends/transformers_lm.py +379 -0
- package/src/pytorch/templates/cuda/handlers/__init__.py +7 -0
- package/src/pytorch/templates/cuda/handlers/cache.py +93 -0
- package/src/pytorch/templates/cuda/handlers/cancel.py +53 -0
- package/src/pytorch/templates/cuda/handlers/capabilities.py +6 -0
- package/src/pytorch/templates/cuda/handlers/completion.py +15 -0
- package/src/pytorch/templates/cuda/handlers/format_test.py +70 -0
- package/src/pytorch/templates/cuda/handlers/generate.py +152 -0
- package/src/pytorch/templates/cuda/handlers/render.py +40 -0
- package/src/pytorch/templates/cuda/handlers/tokenize.py +63 -0
- package/src/pytorch/templates/cuda/pyproject.toml +37 -0
- package/src/pytorch/templates/cuda/server.py +158 -0
- package/src/pytorch/templates/cuda/tests/__init__.py +0 -0
- package/src/pytorch/templates/cuda/tests/test_cache_handler.py +207 -0
- package/src/pytorch/templates/cuda/tests/test_capabilities.py +14 -0
- package/src/pytorch/templates/cuda/tests/test_server.py +145 -0
- package/src/pytorch/templates/cuda/tests/test_transformers_errors.py +89 -0
- package/src/pytorch/templates/cuda/tests/test_transformers_lm_cache.py +288 -0
- package/src/pytorch/templates/cuda/utils/__init__.py +0 -0
- package/src/pytorch/templates/cuda/utils/chat_template_constraints.py +164 -0
- package/src/pytorch/templates/cuda/utils/prompt_builder.py +54 -0
- package/src/pytorch/templates/cuda/utils/template_render.py +80 -0
- package/src/pytorch/templates/cuda/utils/token_utils.py +376 -0
- package/src/pytorch/templates/cuda/utils/transformers_errors.py +54 -0
- package/src/pytorch/templates/cuda/uv.lock +734 -0
- package/src/pytorch/python/backends/transformers_lm.py +0 -127
- package/src/pytorch/python/handlers/generate.py +0 -68
- /package/src/pytorch/{python → templates/cpu-minimal}/__main__.py +0 -0
- /package/src/pytorch/{python → templates/cpu-minimal}/backends/__init__.py +0 -0
- /package/src/pytorch/{python → templates/cpu-minimal}/handlers/cancel.py +0 -0
- /package/src/pytorch/{python → templates/cpu-minimal}/handlers/capabilities.py +0 -0
- /package/src/pytorch/{python → templates/cpu-minimal}/handlers/completion.py +0 -0
- /package/src/pytorch/{python → templates/cpu-minimal}/handlers/format_test.py +0 -0
- /package/src/pytorch/{python → templates/cpu-minimal}/handlers/render.py +0 -0
- /package/src/pytorch/{python → templates/cpu-minimal}/handlers/tokenize.py +0 -0
- /package/src/pytorch/{python/utils → templates/cpu-minimal/tests}/__init__.py +0 -0
- /package/src/pytorch/{python → templates/cpu-minimal}/utils/chat_template_constraints.py +0 -0
- /package/src/pytorch/{python → templates/cpu-minimal}/utils/prompt_builder.py +0 -0
- /package/src/pytorch/{python → templates/cpu-minimal}/utils/template_render.py +0 -0
package/README.md
CHANGED
|
@@ -52,7 +52,7 @@ if (result.logEntries) {
|
|
|
52
52
|
}
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
詳細は [Driver APIリファレンス](
|
|
55
|
+
詳細は [Driver APIリファレンス](./docs/DRIVER_API.md) を参照してください。
|
|
56
56
|
|
|
57
57
|
## 利用可能なドライバー
|
|
58
58
|
|
|
@@ -71,6 +71,71 @@ if (result.logEntries) {
|
|
|
71
71
|
|
|
72
72
|
各ドライバーの詳細な設定・オプションは `skills/driver-usage/SKILL.md` を参照。
|
|
73
73
|
|
|
74
|
+
### PyTorchProcess の KV キャッシュ
|
|
75
|
+
|
|
76
|
+
`PyTorchProcess` の低レベル API では、Transformers の text-only LM に対して、KV キャッシュを prefill して suffix を生成できます。`memory://` ref は同一 Python プロセス内だけで有効です。`cpu-minimal` backend で通常のファイルパスを指定すると、PyTorch backend 固有の `pytorch_kv_v1` 形式で KV と `.meta.json` を永続化できます。CUDA backend は process-local cache のみを使用し、cache ファイルを作成しません。
|
|
77
|
+
|
|
78
|
+
`PyTorchDriver` に `PyTorchCacheController` を渡すと、`cache: true` のクエリでキャッシュ可能な instructions/data の prefix を自動的に prefill・再利用できます。固定の `cacheDir` を指定した controller がプロセス再起動後も cache を再利用できるのは `cpu-minimal` backend です。CUDA backend は process-local で、incremental/prefix metadata を拒否し、restart 後は miss になります。`QueryResult.usage` の `cacheReadTokens` / `cacheWriteTokens` には backend が報告した利用量を反映します。固定 `cacheDir` は runtime variant / device ごとに分け、CPU と CUDA で共有しないでください。現在の PyTorch backend では VLM・画像入力の cache は無効です。
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
import {
|
|
82
|
+
PyTorchCacheController,
|
|
83
|
+
PyTorchDriver,
|
|
84
|
+
} from '@modular-prompt/driver';
|
|
85
|
+
|
|
86
|
+
const driver = new PyTorchDriver({
|
|
87
|
+
model: 'your-transformers-model',
|
|
88
|
+
cacheController: new PyTorchCacheController({
|
|
89
|
+
cacheDir: '/path/to/pytorch-cache',
|
|
90
|
+
}),
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
const result = await driver.query(prompt, { cache: true });
|
|
94
|
+
console.log(result.usage?.cacheReadTokens);
|
|
95
|
+
console.log(result.usage?.cacheWriteTokens);
|
|
96
|
+
await driver.close();
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
import { PyTorchProcess } from '@modular-prompt/driver';
|
|
101
|
+
import type { InferenceMessage } from '@modular-prompt/driver';
|
|
102
|
+
|
|
103
|
+
const process = new PyTorchProcess('your-transformers-model');
|
|
104
|
+
const prefixMessages: InferenceMessage[] = [
|
|
105
|
+
{ role: 'system', content: 'You are a helpful assistant.' },
|
|
106
|
+
{ role: 'user', content: 'Keep this conversation context.' },
|
|
107
|
+
];
|
|
108
|
+
const queryMessages: InferenceMessage[] = [
|
|
109
|
+
...prefixMessages,
|
|
110
|
+
{ role: 'user', content: 'Answer the next question.' },
|
|
111
|
+
];
|
|
112
|
+
|
|
113
|
+
try {
|
|
114
|
+
const cache = await process.cachePrefill('memory://conversation-prefix', prefixMessages);
|
|
115
|
+
const rendered = await process.render(queryMessages);
|
|
116
|
+
if (rendered.error || rendered.formatted_prompt == null) {
|
|
117
|
+
throw new Error(rendered.error ?? 'Failed to render the prompt');
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const stream = await process.generate(
|
|
121
|
+
rendered.formatted_prompt,
|
|
122
|
+
{ max_tokens: 64, temperature: 0 },
|
|
123
|
+
undefined,
|
|
124
|
+
undefined,
|
|
125
|
+
cache.cache_path,
|
|
126
|
+
);
|
|
127
|
+
for await (const chunk of stream) {
|
|
128
|
+
process.stdout.write(chunk.toString());
|
|
129
|
+
}
|
|
130
|
+
} finally {
|
|
131
|
+
await process.exit();
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
`cachePrefill()` の結果には prefill した `token_count` と `cache_write_tokens` が含まれ、同じ参照を最初に使う `generate()` の LIP meta にも write 数が一度だけ通知されます。キャッシュを使った生成では `cache_read_tokens` と `cache_write_tokens`、実際に参照を読み込めたかどうかは `cache_loaded` で確認できます。
|
|
136
|
+
|
|
137
|
+
prefill に渡した prompt の token 列は、`generate()` に渡す rendered prompt の先頭と一致している必要があります。`memory://` ref は `PyTorchProcess` または Python 子プロセスの終了・再起動で失われます。`cpu-minimal` のファイル cache は同じ model ID・dtype・device の backend から再利用できますが、CUDA はファイル cache を作成せず restart 後に miss になります。不一致や破損したファイルは cache miss として full prompt の cold path にフォールバックします。`baseCachePath` と `trimToTokens` を指定した `cachePrefill()` では、`cpu-minimal` で base cache を trim して suffix だけを prefill できます。CUDA は incremental prefill をサポートしません。`cacheTrimTokens` を指定した `generate()` の trim は生成用 clone に適用され、同じ cache ref の元 state は保持されます。`PyTorchCacheController` はこの低レベル API を `PromptCacheController` のライフサイクルに接続し、同一 query の prefill 増分を `cacheWriteTokens` として報告します。
|
|
138
|
+
|
|
74
139
|
## 主な機能
|
|
75
140
|
|
|
76
141
|
- **統一インターフェース**: `query()` / `streamQuery()` / `close()` の3メソッド
|
|
@@ -117,7 +182,7 @@ const profileOverlay = {
|
|
|
117
182
|
const ai = AIService.fromMergedConfig(bundled, profileOverlay);
|
|
118
183
|
const models = ai.modelsConfig;
|
|
119
184
|
|
|
120
|
-
const spec = resolveModelName('local-chat', models
|
|
185
|
+
const spec = resolveModelName('local-chat', models);
|
|
121
186
|
const fallback = resolveDefaultModelFromConfig(models);
|
|
122
187
|
const driver = await ai.createDriver(spec);
|
|
123
188
|
```
|
|
@@ -126,7 +191,8 @@ const driver = await ai.createDriver(spec);
|
|
|
126
191
|
- `AIService.fromModelsConfig({ source })` — `source: 'merge'`(デフォルト)で user yaml を読み込み、`source: 'overlay'` で無視
|
|
127
192
|
- `mode: 'merge' | 'override'` — models セクションの浅いマージ / 置換
|
|
128
193
|
- デフォルト model は `models.default` alias、なければ models の先頭エントリから導出
|
|
129
|
-
- `defaults`
|
|
194
|
+
- `defaults` によるモデルの暗黙解決は廃止(YAML に残っていても警告のみ)。`runtime` はモデル決定後の provider 推論に限って利用する
|
|
195
|
+
- 生 model ID は `resolveModelName()` が merged models の model 完全一致エントリ、`runtime` / `metadata.runtime`、既知のモデル名パターンの順で provider を推論する。推論できない場合は `--provider <provider>` などで明示指定する
|
|
130
196
|
|
|
131
197
|
simple-chat では profile の `modelsConfig` に inline の `models` / `drivers` を載せ、`workflow.models.default.ref` で alias 参照できます。`ref` に未知の alias を指定した場合は **エラーで停止**します。
|
|
132
198
|
|
|
@@ -137,7 +203,9 @@ simple-chat では profile の `modelsConfig` に inline の `models` / `drivers
|
|
|
137
203
|
ローカル統合テストや手元試行で使うモデルは、通常設定と分けて
|
|
138
204
|
`~/.modular-prompt/models.testing.yaml` に置けます。`MODULAR_PROMPT_HOME` を設定している場合は、そのディレクトリ配下を使用します。プロジェクト配下の設定ファイルは暗黙探索しません。
|
|
139
205
|
|
|
140
|
-
`models.default` には cache 対応の text-only LM
|
|
206
|
+
`models.default` には cache 対応の text-only LM または cache を使う MLX VLM を指定できます。MLX VLM の cache は `backend: vlm`(または `auto`)で起動し、画像なしリクエストは `mlx-vlm==0.7.0` の `exact_cache_v1`、画像付きリクエストは専用の `vision_cache_v1` namespace としてディスクへ保存されます。画像付き cache は text-only VLM / LM の cache(LM の `.safetensors.zip` を含む)とは相互利用できません。
|
|
207
|
+
|
|
208
|
+
MLX VLM の画像入力は local file path のみ対応します。URL / data URI の loader は実装していないため、画像付き cache 経路でも利用できません。
|
|
141
209
|
|
|
142
210
|
```yaml
|
|
143
211
|
models:
|
|
@@ -155,10 +223,10 @@ models:
|
|
|
155
223
|
マージ順は **base → `models.yaml` → `models.testing.yaml` → overlay** です。Vitest 実行中または `NODE_ENV=test` では testing 設定が自動で追加されます。CLI などで明示的に使う場合は次の環境変数を指定します。
|
|
156
224
|
|
|
157
225
|
```bash
|
|
158
|
-
MODULAR_PROMPT_MODELS_PROFILE=testing modular-extract create meeting -m default docs/notes.txt
|
|
226
|
+
MODULAR_PROMPT_MODELS_PROFILE=testing modular-prompt-extract create meeting -m default docs/notes.txt
|
|
159
227
|
```
|
|
160
228
|
|
|
161
|
-
ライブラリからは `resolveModelsConfig({ profile: 'testing' })` または `AIService.fromModelsConfig({ profile: 'testing' })` を使用できます。統合テストはこの設定から MLX/API ドライバーを導出し、設定が無い場合は従来の `test-drivers.yaml` にフォールバックします。サンプルは [
|
|
229
|
+
ライブラリからは `resolveModelsConfig({ profile: 'testing' })` または `AIService.fromModelsConfig({ profile: 'testing' })` を使用できます。統合テストはこの設定から MLX/API ドライバーを導出し、設定が無い場合は従来の `test-drivers.yaml` にフォールバックします。サンプルは [models.testing.yaml.example](https://github.com/otolab/modular-prompt/blob/main/packages/driver/test/integration/models.testing.yaml.example) または同梱 [LOCAL_MODEL_SETUP.md](./docs/LOCAL_MODEL_SETUP.md) を参照してください。
|
|
162
230
|
|
|
163
231
|
|
|
164
232
|
```typescript
|
|
@@ -186,7 +254,7 @@ const final = await result;
|
|
|
186
254
|
- キャンセル前の部分応答は `result.content` に残ります
|
|
187
255
|
- 他ドライバーは `signal` を無視します(未実装)
|
|
188
256
|
|
|
189
|
-
詳細は [Driver APIリファレンス](
|
|
257
|
+
詳細は [Driver APIリファレンス](./docs/DRIVER_API.md#推論キャンセルabortsignal) を参照。
|
|
190
258
|
|
|
191
259
|
## トークン使用量(usage)
|
|
192
260
|
|
|
@@ -197,7 +265,7 @@ for await (const _ of stream) { /* consume */ }
|
|
|
197
265
|
const final = await result;
|
|
198
266
|
if (final.usage) {
|
|
199
267
|
console.log(final.usage.promptTokens, final.usage.completionTokens);
|
|
200
|
-
console.log(final.usage.cacheReadTokens); // MLX + KV キャッシュ時
|
|
268
|
+
console.log(final.usage.cacheReadTokens); // MLX/PyTorch + KV キャッシュ時
|
|
201
269
|
console.log(final.usage.cacheWriteTokens); // 同一クエリ内の新規 prefill 時
|
|
202
270
|
}
|
|
203
271
|
```
|
|
@@ -262,7 +330,7 @@ modular-prompt-runtime setup mlx
|
|
|
262
330
|
VLM(Vision Language Model)対応モデルを画像なしのテキストのみで使用する場合は、`textOnly`オプションを使用します。
|
|
263
331
|
|
|
264
332
|
```typescript
|
|
265
|
-
import { MlxDriver } from '@modular-prompt/driver';
|
|
333
|
+
import { MlxDriver, MlxCacheController } from '@modular-prompt/driver';
|
|
266
334
|
|
|
267
335
|
const driver = new MlxDriver({
|
|
268
336
|
model: 'mlx-community/Qwen2-VL-2B-Instruct-4bit',
|
|
@@ -281,6 +349,21 @@ await driver.close();
|
|
|
281
349
|
|
|
282
350
|
`textOnly: true`を指定すると、VLM対応モデルを`mlx-lm`(高速起動)で起動し、画像処理なしのテキストのみで使用できます。
|
|
283
351
|
|
|
352
|
+
`textOnly: true` は互換性のために VLM モデルを LM backend として起動する指定です。VLM backend 自体を使用して text-only cache を永続化する場合は、`backend: 'vlm'`(省略時の `auto` でも可)を指定し、cache controller を共有します。
|
|
353
|
+
|
|
354
|
+
```typescript
|
|
355
|
+
const cacheController = new MlxCacheController({
|
|
356
|
+
cacheDir: '/path/to/cache',
|
|
357
|
+
});
|
|
358
|
+
const driver = new MlxDriver({
|
|
359
|
+
model: 'mlx-community/Qwen2-VL-2B-Instruct-4bit',
|
|
360
|
+
backend: 'vlm',
|
|
361
|
+
cacheController,
|
|
362
|
+
});
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
VLM の text-only cache は `cacheDir/<key>.vlm.safetensors/exact_<hash>.safetensors`、画像付き cache は `cacheDir/<key>.vlm-vision.safetensors/exact_<hash>.safetensors` に保存されます。実体ごとの `.meta.json` に `token_count` 等を記録し、画像付き sidecar には image hash、resize 条件、`vision_cache_v1` の version も記録します。VLM の incremental prefill と LM archive との互換性は提供しません。画像 feature tensor 自体は process-local の `VisionFeatureCache` に保持し、再起動後は再構築します。Pinned `mlx-vlm==0.7.0` の PIL key は bytes のみですが、MLX backend は mode・寸法・bytes・画像列を含む wrapper key を upstream cache に渡して衝突を防ぎます。
|
|
366
|
+
|
|
284
367
|
#### 特殊トークンの確認
|
|
285
368
|
|
|
286
369
|
モデルがサポートする特殊トークンを確認できます:
|
|
@@ -334,7 +417,7 @@ uv --project . run python __main__.py \
|
|
|
334
417
|
|
|
335
418
|
前提条件: Python 3.10以上、CUDA対応GPU、Linux。
|
|
336
419
|
|
|
337
|
-
詳細は [ローカルモデルセットアップガイド](
|
|
420
|
+
詳細は [ローカルモデルセットアップガイド](./docs/LOCAL_MODEL_SETUP.md) を参照してください。
|
|
338
421
|
|
|
339
422
|
## Skills(Claude Code向け)
|
|
340
423
|
|
|
@@ -6,6 +6,10 @@ export interface CachePrepareParams {
|
|
|
6
6
|
data?: Element[];
|
|
7
7
|
tools?: ToolDefinition[];
|
|
8
8
|
reasoningEffort?: 'low' | 'medium' | 'high';
|
|
9
|
+
/** Image sources belonging to a VLM cacheable prefix. */
|
|
10
|
+
images?: string[];
|
|
11
|
+
/** Image resize limit used when constructing a VLM cache. */
|
|
12
|
+
maxImageSize?: number;
|
|
9
13
|
/** When true, only return existing cache hits — never create new entries */
|
|
10
14
|
readOnly?: boolean;
|
|
11
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-controller.d.ts","sourceRoot":"","sources":["../src/cache-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5C,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,QAAQ,EAAE;QACR,YAAY,EAAE,OAAO,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,WAAW,CAAC,IAAI,IAAI,CAAC;IACrB,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1D,wGAAwG;IACxG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
|
|
1
|
+
{"version":3,"file":"cache-controller.d.ts","sourceRoot":"","sources":["../src/cache-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5C,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,QAAQ,EAAE;QACR,YAAY,EAAE,OAAO,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,WAAW,CAAC,IAAI,IAAI,CAAC;IACrB,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1D,wGAAwG;IACxG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-based-factory.d.ts","sourceRoot":"","sources":["../../src/driver-registry/config-based-factory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"config-based-factory.d.ts","sourceRoot":"","sources":["../../src/driver-registry/config-based-factory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EACV,SAAS,EAIV,MAAM,YAAY,CAAC;AAqBpB;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,cAAc;IACd,OAAO,CAAC,EAAE;QACR,mBAAmB;QACnB,MAAM,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,sBAAsB;QACtB,SAAS,CAAC,EAAE;YACV,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,2BAA2B;YAC3B,MAAM,CAAC,EAAE;gBACP,OAAO,EAAE,MAAM,CAAC;gBAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAClB,WAAW,CAAC,EAAE,MAAM,CAAC;aACtB,CAAC;SACH,CAAC;QACF,iBAAiB;QACjB,QAAQ,CAAC,EAAE;YACT,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,oBAAoB;QACpB,WAAW,CAAC,EAAE;YACZ,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,YAAY;QACZ,GAAG,CAAC,EAAE;YACJ,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,eAAe;QACf,MAAM,CAAC,EAAE;YACP,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,aAAa;QACb,IAAI,CAAC,EAAE;YACL,gDAAgD;YAChD,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;IAEF,iBAAiB;IACjB,cAAc,CAAC,EAAE;QACf,IAAI,CAAC,EAAE,OAAO,aAAa,EAAE,SAAS,CAAC;QACvC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,YAAY;IACZ,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;CACtB;AAGD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,iBAAiB,GACxB,IAAI,CAsHN"}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import { MlxDriver } from '../mlx-ml/mlx-driver.js';
|
|
10
10
|
import { MlxCacheController } from '../mlx-ml/mlx-cache-controller.js';
|
|
11
11
|
import { PyTorchDriver } from '../pytorch/pytorch-driver.js';
|
|
12
|
+
import { PyTorchCacheController } from '../pytorch/pytorch-cache-controller.js';
|
|
12
13
|
import { OpenAIDriver } from '../openai/openai-driver.js';
|
|
13
14
|
import { AnthropicDriver } from '../anthropic/anthropic-driver.js';
|
|
14
15
|
import { VertexAIDriver } from '../vertexai/vertexai-driver.js';
|
|
@@ -52,11 +53,16 @@ export function registerFactories(registry, config) {
|
|
|
52
53
|
// PyTorch Driver Factory
|
|
53
54
|
registry.registerFactory('pytorch', (spec) => {
|
|
54
55
|
const driverOpts = spec.driverOptions;
|
|
56
|
+
const cacheController = driverOpts?.cacheController
|
|
57
|
+
?? (driverOpts?.cacheDir
|
|
58
|
+
? new PyTorchCacheController({ cacheDir: driverOpts.cacheDir })
|
|
59
|
+
: undefined);
|
|
55
60
|
return new PyTorchDriver({
|
|
56
61
|
model: spec.model,
|
|
57
62
|
defaultOptions: mergeDefaults(spec),
|
|
58
63
|
venvPath: driverOpts?.venvPath ?? spec.metadata?.venvPath,
|
|
59
64
|
device: driverOpts?.device ?? spec.metadata?.device,
|
|
65
|
+
cacheController,
|
|
60
66
|
});
|
|
61
67
|
});
|
|
62
68
|
// OpenAI Driver Factory
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-based-factory.js","sourceRoot":"","sources":["../../src/driver-registry/config-based-factory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"config-based-factory.js","sourceRoot":"","sources":["../../src/driver-registry/config-based-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory-helper.d.ts","sourceRoot":"","sources":["../../src/driver-registry/factory-helper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"factory-helper.d.ts","sourceRoot":"","sources":["../../src/driver-registry/factory-helper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EACV,SAAS,EAKV,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAsCpD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE;IACP,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IACnC,eAAe,CAAC,EAAE,OAAO,eAAe,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;IACvC,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;CAChC,GACA,IAAI,CAuHN;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAGN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,QAAQ,GACrC,IAAI,CAGN"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* ドライバファクトリの登録を支援するヘルパー関数
|
|
4
4
|
*/
|
|
5
5
|
import { logger } from '@modular-prompt/utils';
|
|
6
|
+
import { PyTorchCacheController } from '../pytorch/pytorch-cache-controller.js';
|
|
6
7
|
/**
|
|
7
8
|
* defaultOptionsのmaxTokensをModelSpec.maxOutputTokensで制限
|
|
8
9
|
*
|
|
@@ -58,11 +59,17 @@ export function registerStandardDriverFactories(registry, drivers) {
|
|
|
58
59
|
if (drivers.PyTorchDriver) {
|
|
59
60
|
const Driver = drivers.PyTorchDriver;
|
|
60
61
|
registry.registerFactory('pytorch', (spec) => {
|
|
62
|
+
const driverOpts = spec.driverOptions;
|
|
63
|
+
const cacheController = driverOpts?.cacheController
|
|
64
|
+
?? (driverOpts?.cacheDir
|
|
65
|
+
? new PyTorchCacheController({ cacheDir: driverOpts.cacheDir })
|
|
66
|
+
: undefined);
|
|
61
67
|
return new Driver({
|
|
62
68
|
model: spec.model,
|
|
63
69
|
defaultOptions: validateAndClampMaxTokens(spec, spec.defaultOptions),
|
|
64
|
-
venvPath: spec.metadata?.venvPath,
|
|
65
|
-
device: spec.metadata?.device,
|
|
70
|
+
venvPath: driverOpts?.venvPath ?? spec.metadata?.venvPath,
|
|
71
|
+
device: driverOpts?.device ?? spec.metadata?.device,
|
|
72
|
+
cacheController,
|
|
66
73
|
});
|
|
67
74
|
});
|
|
68
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory-helper.js","sourceRoot":"","sources":["../../src/driver-registry/factory-helper.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"factory-helper.js","sourceRoot":"","sources":["../../src/driver-registry/factory-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
export { DriverRegistry } from './registry.js';
|
|
6
6
|
export { registerFactories, type ApplicationConfig } from './config-based-factory.js';
|
|
7
7
|
export { AIService, type SelectionOptions, type AIServiceModelsOptions, } from './ai-service.js';
|
|
8
|
-
export type { DriverProvider, DriverCapability, ModelSpec, DriverFactory, MlxBackendMode, MlxModelDriverOptions, } from './types.js';
|
|
8
|
+
export type { DriverProvider, DriverCapability, ModelSpec, DriverFactory, MlxBackendMode, MlxModelDriverOptions, PyTorchModelDriverOptions, } from './types.js';
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/driver-registry/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,cAAc,EACd,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/driver-registry/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
|
|
@@ -34,8 +34,22 @@ export interface MlxModelDriverOptions {
|
|
|
34
34
|
/** 外部で生成した KV cache controller(runtime から driver と共有する場合。runtime-only) */
|
|
35
35
|
cacheController?: PromptCacheController;
|
|
36
36
|
}
|
|
37
|
+
/** PyTorch ドライバー固有オプション */
|
|
38
|
+
export interface PyTorchModelDriverOptions {
|
|
39
|
+
/** 外部 venv パス */
|
|
40
|
+
venvPath?: string;
|
|
41
|
+
/** PyTorch の実行デバイス(例: cpu, cuda) */
|
|
42
|
+
device?: string;
|
|
43
|
+
/**
|
|
44
|
+
* KV キャッシュディレクトリ。ディスク永続化は `cpu-minimal` runtime のみ。
|
|
45
|
+
* CUDA は process-local(再起動後は再利用されない)。CPU/CUDA や runtime variant/device 間で同じ `cacheDir` を共有しないこと。
|
|
46
|
+
*/
|
|
47
|
+
cacheDir?: string;
|
|
48
|
+
/** 外部で生成した KV cache controller */
|
|
49
|
+
cacheController?: PromptCacheController;
|
|
50
|
+
}
|
|
37
51
|
/** ドライバー固有オプションのunion(将来拡張) */
|
|
38
|
-
export type ModelDriverOptions = MlxModelDriverOptions;
|
|
52
|
+
export type ModelDriverOptions = MlxModelDriverOptions | PyTorchModelDriverOptions;
|
|
39
53
|
/**
|
|
40
54
|
* モデル仕様(code-bugsのModelSpecと同等)
|
|
41
55
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/driver-registry/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,WAAW,GACX,UAAU,GACV,aAAa,GACb,KAAK,GACL,SAAS,GACT,QAAQ,GACR,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACxB,WAAW,GACX,OAAO,GACP,MAAM,GACN,eAAe,GACf,cAAc,GACd,UAAU,GACV,QAAQ,GACR,WAAW,GACX,MAAM,GACN,OAAO,GACP,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,MAAM,GACN,kBAAkB,CAAC;AAEvB,0BAA0B;AAC1B,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,qCAAqC;IACrC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,qBAAqB,CAAC;CACzC;AAED,+BAA+B;AAC/B,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/driver-registry/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/formatter/converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/formatter/converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,cAAc,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AAKlF,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAExF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;CAQjC,CAAC;AAGF;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,gBAAqB,GAC7B,WAAW,EAAE,CAgFf"}
|
|
@@ -141,7 +141,6 @@ function elementToMessages(element, formatter) {
|
|
|
141
141
|
}
|
|
142
142
|
case 'material': {
|
|
143
143
|
// Format material with clear structure
|
|
144
|
-
const materialContent = contentToString(element.content);
|
|
145
144
|
const materialLines = [`Material: ${element.title}`];
|
|
146
145
|
if (element.id) {
|
|
147
146
|
materialLines.push(`ID: ${element.id}`);
|
|
@@ -149,6 +148,23 @@ function elementToMessages(element, formatter) {
|
|
|
149
148
|
if (element.usage != null) {
|
|
150
149
|
materialLines.push(`Usage: ${element.usage} tokens`);
|
|
151
150
|
}
|
|
151
|
+
// Keep image attachments on materials so VLM callers (including the
|
|
152
|
+
// extract runtime) can discover and pass them to mlx-vlm. Text-only
|
|
153
|
+
// material formatting remains byte-for-byte compatible.
|
|
154
|
+
if (hasImageAttachment(element.content)) {
|
|
155
|
+
const imageAttachments = element.content.filter((attachment) => attachment.type === 'image_url' && attachment.image_url?.url != null);
|
|
156
|
+
return [{
|
|
157
|
+
role: 'system',
|
|
158
|
+
content: [
|
|
159
|
+
{
|
|
160
|
+
type: 'text',
|
|
161
|
+
text: `${materialLines.join('\n')}\n\n${contentToString(element.content)}`,
|
|
162
|
+
},
|
|
163
|
+
...imageAttachments,
|
|
164
|
+
],
|
|
165
|
+
}];
|
|
166
|
+
}
|
|
167
|
+
const materialContent = contentToString(element.content);
|
|
152
168
|
materialLines.push('', materialContent);
|
|
153
169
|
return [{
|
|
154
170
|
role: 'system',
|
|
@@ -157,7 +173,6 @@ function elementToMessages(element, formatter) {
|
|
|
157
173
|
}
|
|
158
174
|
case 'chunk': {
|
|
159
175
|
// Format chunk with partOf, index, and total
|
|
160
|
-
const chunkContent = contentToString(element.content);
|
|
161
176
|
// Format header based on available information
|
|
162
177
|
let chunkHeader;
|
|
163
178
|
if (element.index !== undefined && element.total !== undefined) {
|
|
@@ -169,6 +184,17 @@ function elementToMessages(element, formatter) {
|
|
|
169
184
|
else {
|
|
170
185
|
chunkHeader = `Part of ${element.partOf}:`;
|
|
171
186
|
}
|
|
187
|
+
if (hasImageAttachment(element.content)) {
|
|
188
|
+
const imageAttachments = element.content.filter((attachment) => attachment.type === 'image_url' && attachment.image_url?.url != null);
|
|
189
|
+
return [{
|
|
190
|
+
role: 'system',
|
|
191
|
+
content: [
|
|
192
|
+
{ type: 'text', text: `${chunkHeader}\n\n${contentToString(element.content)}` },
|
|
193
|
+
...imageAttachments,
|
|
194
|
+
],
|
|
195
|
+
}];
|
|
196
|
+
}
|
|
197
|
+
const chunkContent = contentToString(element.content);
|
|
172
198
|
return [{
|
|
173
199
|
role: 'system',
|
|
174
200
|
content: `${chunkHeader}\n\n${chunkContent}`
|
|
@@ -192,4 +218,7 @@ function elementToMessages(element, formatter) {
|
|
|
192
218
|
}
|
|
193
219
|
}
|
|
194
220
|
}
|
|
221
|
+
function hasImageAttachment(content) {
|
|
222
|
+
return Array.isArray(content) && content.some((attachment) => attachment.type === 'image_url' && attachment.image_url?.url != null);
|
|
223
|
+
}
|
|
195
224
|
//# sourceMappingURL=converter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../../src/formatter/converter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../../src/formatter/converter.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export type { AIDriver, ChatMessage, StandardChatMessage, AssistantToolCallMessa
|
|
|
3
3
|
export { hasToolCalls, isToolResult } from './types.js';
|
|
4
4
|
export type { PromptCacheController, CachePrepareParams, CacheHandle } from './cache-controller.js';
|
|
5
5
|
export { isElementCacheable, partitionPrompt, type PromptPartition } from './cache-utils.js';
|
|
6
|
+
export { extractImagePaths } from './content-utils.js';
|
|
6
7
|
export { QueryLogger } from './query-logger.js';
|
|
7
8
|
export { TestDriver, type TestDriverOptions, type ResponseProvider } from './test-driver.js';
|
|
8
9
|
export { EchoDriver, type EchoDriverConfig } from './echo-driver.js';
|
|
@@ -18,10 +19,11 @@ export type { MlxMessage, MlxContentPart } from './mlx-ml/types.js';
|
|
|
18
19
|
export type { MlxQueryOptions } from './mlx-ml/mlx-options.js';
|
|
19
20
|
export { PyTorchDriver, type PyTorchDriverConfig, type PyTorchModelCapabilities, } from './pytorch/pytorch-driver.js';
|
|
20
21
|
export { PyTorchProcess, } from './pytorch/process/index.js';
|
|
22
|
+
export { PyTorchCacheController, } from './pytorch/pytorch-cache-controller.js';
|
|
21
23
|
export type { PyTorchQueryOptions } from './pytorch/pytorch-options.js';
|
|
22
24
|
export type { InferenceMethod, InferenceMessage, InferenceCapabilities, InferenceRequest, InferenceChatRequest, InferenceRenderRequest, InferenceRenderResult, InferenceCompletionRequest, InferenceGenerateRequest, InferenceToolDefinition, InferenceFormatTestResult, InferenceTokenizeResult, InferenceCachePrefillResult, } from './local-inference/index.js';
|
|
23
25
|
export { InferenceProcessClient, type InferenceProcessClientConfig, LocalInferenceDriver, type LocalInferenceDriverConfig, type InferenceProcessPort, type LocalInferenceAdapters, type LocalInferenceCacheSupport, createStreamIterable, extractStreamMeta, META_MARKER, hasMessageElement, } from './local-inference/index.js';
|
|
24
|
-
export { MODULAR_PROMPT_DIR, RUNTIME_PROFILES, getModularPromptHome, getRuntimesRoot, getRuntimeDir, getVenvPath, getManifestPath, getMlxPythonDir, getPytorchPythonDir, resolvePackageRoot, resolvePackageRootFromProcessModule, readManifest, writeManifest, RuntimeNotReadyError, isRuntimeReady, assertRuntimeReady, SETUP_MLX_MONOREPO, SETUP_PYTORCH_MONOREPO, SETUP_MLX_CLI, SETUP_PYTORCH_CLI, type RuntimeProfile, type RuntimeManifest, } from './runtime/index.js';
|
|
26
|
+
export { MODULAR_PROMPT_DIR, RUNTIME_PROFILES, getModularPromptHome, getRuntimesRoot, getRuntimeDir, getVenvPath, getManifestPath, getMlxPythonDir, getPytorchRuntimePythonDir, getPytorchPythonDir, getPytorchTemplateDir, PYTORCH_DEFAULT_VARIANT, resolvePackageRoot, resolvePackageRootFromProcessModule, readManifest, writeManifest, RuntimeNotReadyError, isRuntimeReady, assertRuntimeReady, SETUP_MLX_MONOREPO, SETUP_PYTORCH_MONOREPO, SETUP_MLX_CLI, SETUP_PYTORCH_CLI, SYNC_PYTORCH_MONOREPO, SYNC_PYTORCH_CLI, type RuntimeProfile, type RuntimeManifest, } from './runtime/index.js';
|
|
25
27
|
export { VertexAIDriver, type VertexAIDriverConfig, type VertexAIQueryOptions } from './vertexai/vertexai-driver.js';
|
|
26
28
|
export { GoogleGenAIDriver, type GoogleGenAIDriverConfig, type GoogleGenAIQueryOptions } from './google-genai/google-genai-driver.js';
|
|
27
29
|
export { GoogleGenAICacheController, type GoogleGenAICacheControllerConfig } from './google-genai/google-genai-cache-controller.js';
|
|
@@ -29,6 +31,6 @@ export type { FormatterOptions, ElementFormatter } from './formatter/types.js';
|
|
|
29
31
|
export { DefaultFormatter } from './formatter/formatter.js';
|
|
30
32
|
export { formatPromptAsMessages, formatCompletionPrompt, defaultFormatterTexts, ECHO_SPECIAL_TOKENS } from './formatter/converter.js';
|
|
31
33
|
export { AIService, DriverRegistry, registerFactories, type SelectionOptions, type ApplicationConfig, type AIServiceModelsOptions, } from './driver-registry/index.js';
|
|
32
|
-
export type { DriverProvider, DriverCapability, ModelSpec, DriverFactory, MlxBackendMode, MlxModelDriverOptions, } from './driver-registry/index.js';
|
|
33
|
-
export { loadModelsConfigFile, loadUserModelsConfig, resolveModelsConfig, mergeModelsConfig, toApplicationConfig, entryToModelSpec, resolveModelAlias, resolveModelName, resolveDefaultModelFromConfig, resolveModelReference, buildApplicationConfig, registerModelsFromConfig, getModelsConfigPath, getUserModelsConfigPath, getTestingModelsConfigPath, MODELS_CONFIG_FILENAME, TESTING_MODELS_CONFIG_PROFILE, type ModelsMergeMode, type ModelsConfigSource, type ModelsConfigOptions, type ModelSpecEntry, type ModelsConfig, type ModelReferenceInput, } from './models-config/index.js';
|
|
34
|
+
export type { DriverProvider, DriverCapability, ModelSpec, DriverFactory, MlxBackendMode, MlxModelDriverOptions, PyTorchModelDriverOptions, } from './driver-registry/index.js';
|
|
35
|
+
export { loadModelsConfigFile, loadUserModelsConfig, resolveModelsConfig, mergeModelsConfig, toApplicationConfig, entryToModelSpec, resolveModelAlias, inferProvider, resolveModelName, resolveDefaultModelFromConfig, resolveModelReference, buildApplicationConfig, registerModelsFromConfig, getModelsConfigPath, getUserModelsConfigPath, getTestingModelsConfigPath, MODELS_CONFIG_FILENAME, TESTING_MODELS_CONFIG_PROFILE, type ModelsMergeMode, type ModelsConfigSource, type ModelsConfigOptions, type ModelSpecEntry, type ModelsConfig, type ModelReferenceInput, } from './models-config/index.js';
|
|
34
36
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,SAAS,EACT,gBAAgB,EAChB,KAAK,WAAW,GACjB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,QAAQ,EACR,WAAW,EACX,mBAAmB,EACnB,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,IAAI,EACJ,cAAc,EACd,UAAU,EACV,QAAQ,EACR,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGxD,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
export { buildQueryUsage, createAbortedStreamResult, isAborted, watchAbortSignal, } from './query-utils.js';
|
|
3
3
|
export { hasToolCalls, isToolResult } from './types.js';
|
|
4
4
|
export { isElementCacheable, partitionPrompt } from './cache-utils.js';
|
|
5
|
+
export { extractImagePaths } from './content-utils.js';
|
|
5
6
|
// Query Logger
|
|
6
7
|
export { QueryLogger } from './query-logger.js';
|
|
7
8
|
// Test driver
|
|
@@ -25,9 +26,10 @@ export { MlxCacheController, } from './mlx-ml/mlx-cache-controller.js';
|
|
|
25
26
|
// PyTorch driver
|
|
26
27
|
export { PyTorchDriver, } from './pytorch/pytorch-driver.js';
|
|
27
28
|
export { PyTorchProcess, } from './pytorch/process/index.js';
|
|
29
|
+
export { PyTorchCacheController, } from './pytorch/pytorch-cache-controller.js';
|
|
28
30
|
export { InferenceProcessClient, LocalInferenceDriver, createStreamIterable, extractStreamMeta, META_MARKER, hasMessageElement, } from './local-inference/index.js';
|
|
29
|
-
// Python
|
|
30
|
-
export { MODULAR_PROMPT_DIR, RUNTIME_PROFILES, getModularPromptHome, getRuntimesRoot, getRuntimeDir, getVenvPath, getManifestPath, getMlxPythonDir, getPytorchPythonDir, resolvePackageRoot, resolvePackageRootFromProcessModule, readManifest, writeManifest, RuntimeNotReadyError, isRuntimeReady, assertRuntimeReady, SETUP_MLX_MONOREPO, SETUP_PYTORCH_MONOREPO, SETUP_MLX_CLI, SETUP_PYTORCH_CLI, } from './runtime/index.js';
|
|
31
|
+
// Python runtimes under ~/.modular-prompt
|
|
32
|
+
export { MODULAR_PROMPT_DIR, RUNTIME_PROFILES, getModularPromptHome, getRuntimesRoot, getRuntimeDir, getVenvPath, getManifestPath, getMlxPythonDir, getPytorchRuntimePythonDir, getPytorchPythonDir, getPytorchTemplateDir, PYTORCH_DEFAULT_VARIANT, resolvePackageRoot, resolvePackageRootFromProcessModule, readManifest, writeManifest, RuntimeNotReadyError, isRuntimeReady, assertRuntimeReady, SETUP_MLX_MONOREPO, SETUP_PYTORCH_MONOREPO, SETUP_MLX_CLI, SETUP_PYTORCH_CLI, SYNC_PYTORCH_MONOREPO, SYNC_PYTORCH_CLI, } from './runtime/index.js';
|
|
31
33
|
// VertexAI driver
|
|
32
34
|
export { VertexAIDriver } from './vertexai/vertexai-driver.js';
|
|
33
35
|
// GoogleGenAI driver
|
|
@@ -38,5 +40,5 @@ export { formatPromptAsMessages, formatCompletionPrompt, defaultFormatterTexts,
|
|
|
38
40
|
// Driver Registry and AI Service exports
|
|
39
41
|
export { AIService, DriverRegistry, registerFactories, } from './driver-registry/index.js';
|
|
40
42
|
// User models.yaml (+ overlay via models-config API)
|
|
41
|
-
export { loadModelsConfigFile, loadUserModelsConfig, resolveModelsConfig, mergeModelsConfig, toApplicationConfig, entryToModelSpec, resolveModelAlias, resolveModelName, resolveDefaultModelFromConfig, resolveModelReference, buildApplicationConfig, registerModelsFromConfig, getModelsConfigPath, getUserModelsConfigPath, getTestingModelsConfigPath, MODELS_CONFIG_FILENAME, TESTING_MODELS_CONFIG_PROFILE, } from './models-config/index.js';
|
|
43
|
+
export { loadModelsConfigFile, loadUserModelsConfig, resolveModelsConfig, mergeModelsConfig, toApplicationConfig, entryToModelSpec, resolveModelAlias, inferProvider, resolveModelName, resolveDefaultModelFromConfig, resolveModelReference, buildApplicationConfig, registerModelsFromConfig, getModelsConfigPath, getUserModelsConfigPath, getTestingModelsConfigPath, MODELS_CONFIG_FILENAME, TESTING_MODELS_CONFIG_PROFILE, } from './models-config/index.js';
|
|
42
44
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,SAAS,EACT,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAoB1B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AASxD,OAAO,EACL,kBAAkB,EAClB,eAAe,EAEhB,MAAM,kBAAkB,CAAC;AAE1B,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,cAAc;AACd,OAAO,EACL,UAAU,EAGX,MAAM,kBAAkB,CAAC;AAE1B,cAAc;AACd,OAAO,EACL,UAAU,EAEX,MAAM,kBAAkB,CAAC;AAE1B,gBAAgB;AAChB,OAAO,EACL,YAAY,EAGb,MAAM,2BAA2B,CAAC;AAEnC,gBAAgB;AAChB,OAAO,EACL,YAAY,EAEb,MAAM,2BAA2B,CAAC;AAEnC,cAAc;AACd,OAAO,EACL,UAAU,EAEX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAEhC,mBAAmB;AACnB,OAAO,EACL,eAAe,EAIhB,MAAM,iCAAiC,CAAC;AAEzC,gBAAgB;AAChB,OAAO,EACL,SAAS,EAEV,MAAM,wBAAwB,CAAC;AAEhC,+BAA+B;AAC/B,OAAO,EACL,UAAU,EACX,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAW1C,iBAAiB;AACjB,OAAO,EACL,aAAa,GAGd,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,cAAc,GACf,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,10 @@ export interface CachePrepareParams {
|
|
|
39
39
|
data: CompiledPrompt['data'];
|
|
40
40
|
tools?: ToolDefinition[];
|
|
41
41
|
reasoningEffort?: 'low' | 'medium' | 'high';
|
|
42
|
+
/** Image sources belonging to a VLM cacheable prefix. */
|
|
43
|
+
images?: string[];
|
|
44
|
+
/** Image resize limit used when constructing a VLM cache. */
|
|
45
|
+
maxImageSize?: number;
|
|
42
46
|
readOnly?: boolean;
|
|
43
47
|
}
|
|
44
48
|
export interface CachePrepareHandle {
|
|
@@ -47,6 +51,8 @@ export interface CachePrepareHandle {
|
|
|
47
51
|
}
|
|
48
52
|
export interface LocalInferenceCacheSupport {
|
|
49
53
|
bind(process: InferenceProcessPort, formatterOptions: FormatterOptions, preprocess: (messages: InferenceMessage[]) => InferenceMessage[]): Promise<void>;
|
|
54
|
+
/** Configure backend-specific cache storage before bind() is called. */
|
|
55
|
+
setModelKind?(modelKind?: 'lm' | 'vlm'): void;
|
|
50
56
|
shouldDisableForVlm(modelKind?: 'lm' | 'vlm'): boolean;
|
|
51
57
|
recordQuery(): void;
|
|
52
58
|
getGrowthBefore(): number;
|