@modular-prompt/driver 0.14.0 → 0.15.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 +58 -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 +16 -0
- 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 +21 -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 +8 -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-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 +7 -0
- package/dist/models-config/paths.d.ts.map +1 -0
- package/dist/models-config/paths.js +11 -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 +187 -0
- package/dist/models-config/resolve.js.map +1 -0
- package/dist/models-config/types.d.ts +60 -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 +24 -0
- package/dist/runtime/check.js.map +1 -0
- package/dist/runtime/index.d.ts +4 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +4 -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/types.d.ts +11 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +10 -7
- package/scripts/download-model.js +25 -9
- package/scripts/runtime-cli.js +315 -0
- package/src/mlx-ml/python/__main__.py +43 -4
- 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 +3 -2
- 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 +549 -454
- 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
package/dist/index.js
CHANGED
|
@@ -22,6 +22,12 @@ export { MlxDriver } from './mlx-ml/mlx-driver.js';
|
|
|
22
22
|
// MLX ML low-level process API
|
|
23
23
|
export { MlxProcess } from './mlx-ml/process/index.js';
|
|
24
24
|
export { MlxCacheController, } from './mlx-ml/mlx-cache-controller.js';
|
|
25
|
+
// PyTorch driver
|
|
26
|
+
export { PyTorchDriver, } from './pytorch/pytorch-driver.js';
|
|
27
|
+
export { PyTorchProcess, } from './pytorch/process/index.js';
|
|
28
|
+
export { InferenceProcessClient, LocalInferenceDriver, createStreamIterable, extractStreamMeta, META_MARKER, hasMessageElement, } from './local-inference/index.js';
|
|
29
|
+
// Python runtime (MLX venv under ~/.modular-prompt)
|
|
30
|
+
export { MODULAR_PROMPT_DIR, RUNTIME_PROFILES, getModularPromptHome, getRuntimesRoot, getRuntimeDir, getVenvPath, getManifestPath, getMlxPythonDir, getPytorchPythonDir, resolvePackageRoot, resolvePackageRootFromProcessModule, readManifest, writeManifest, RuntimeNotReadyError, isRuntimeReady, assertRuntimeReady, } from './runtime/index.js';
|
|
25
31
|
// VertexAI driver
|
|
26
32
|
export { VertexAIDriver } from './vertexai/vertexai-driver.js';
|
|
27
33
|
// GoogleGenAI driver
|
|
@@ -30,5 +36,7 @@ export { GoogleGenAICacheController } from './google-genai/google-genai-cache-co
|
|
|
30
36
|
export { DefaultFormatter } from './formatter/formatter.js';
|
|
31
37
|
export { formatPromptAsMessages, formatCompletionPrompt, defaultFormatterTexts, ECHO_SPECIAL_TOKENS } from './formatter/converter.js';
|
|
32
38
|
// Driver Registry and AI Service exports
|
|
33
|
-
export { AIService, DriverRegistry, registerFactories } from './driver-registry/index.js';
|
|
39
|
+
export { AIService, DriverRegistry, registerFactories, } from './driver-registry/index.js';
|
|
40
|
+
// User models.yaml (+ overlay via models-config API)
|
|
41
|
+
export { loadModelsConfigFile, loadUserModelsConfig, resolveModelsConfig, mergeModelsConfig, toApplicationConfig, entryToModelSpec, resolveModelAlias, resolveModelName, resolveDefaultModelFromConfig, resolveModelReference, buildApplicationConfig, registerModelsFromConfig, getUserModelsConfigPath, MODELS_CONFIG_FILENAME, } from './models-config/index.js';
|
|
34
42
|
//# 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;
|
|
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;AAqBpC,OAAO,EACL,sBAAsB,EAEtB,oBAAoB,EAKpB,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAEpC,oDAAoD;AACpD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,mCAAmC,EACnC,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,kBAAkB,GAGnB,MAAM,oBAAoB,CAAC;AAE5B,kBAAkB;AAClB,OAAO,EACL,cAAc,EAGf,MAAM,+BAA+B,CAAC;AAEvC,qBAAqB;AACrB,OAAO,EACL,iBAAiB,EAGlB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACL,0BAA0B,EAE3B,MAAM,iDAAiD,CAAC;AAQzD,OAAO,EACL,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,yCAAyC;AACzC,OAAO,EACL,SAAS,EACT,cAAc,EACd,iBAAiB,GAIlB,MAAM,4BAA4B,CAAC;AAWpC,qDAAqD;AACrD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,6BAA6B,EAC7B,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,GAOvB,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { CompiledPrompt } from '@modular-prompt/core';
|
|
2
|
+
import type { ChatMessage, FormatterOptions } from '../formatter/types.js';
|
|
3
|
+
import type { ToolCall, ToolDefinition, ApiStrategy, QueryMode } from '../types.js';
|
|
4
|
+
import type { InferenceCapabilities, InferenceMessage, InferenceToolDefinition, ToolCallFormat } from './protocol.js';
|
|
5
|
+
import type { InferenceProcessPort } from './process-port.js';
|
|
6
|
+
export interface InferenceModelProcessor {
|
|
7
|
+
applyChatSpecificProcessing(messages: InferenceMessage[]): InferenceMessage[];
|
|
8
|
+
applyCompletionSpecificProcessing(prompt: string): string;
|
|
9
|
+
hasCompletionProcessor(): boolean;
|
|
10
|
+
hasChatProcessor(): boolean;
|
|
11
|
+
setRuntimeContext(context: {
|
|
12
|
+
chatRestrictions?: InferenceCapabilities['chat_restrictions'];
|
|
13
|
+
modelKind?: 'lm' | 'vlm';
|
|
14
|
+
}): void;
|
|
15
|
+
}
|
|
16
|
+
export interface InferenceResponseParseResult {
|
|
17
|
+
content: string;
|
|
18
|
+
thinkingContent?: string;
|
|
19
|
+
toolCalls?: ToolCall[];
|
|
20
|
+
}
|
|
21
|
+
export type InferenceResponseProcessor = (content: string) => InferenceResponseParseResult;
|
|
22
|
+
export interface LocalInferenceAdapters {
|
|
23
|
+
mergeQueryOptions(defaults: Record<string, unknown>, options?: Record<string, unknown>): Record<string, unknown>;
|
|
24
|
+
toSamplingOptions(merged: Record<string, unknown>): Record<string, unknown>;
|
|
25
|
+
createModelProcessor(model: string): InferenceModelProcessor;
|
|
26
|
+
selectResponseProcessor(model: string, runtimeInfo: InferenceCapabilities | null, options: {
|
|
27
|
+
enableToolParsing: boolean;
|
|
28
|
+
}): InferenceResponseProcessor;
|
|
29
|
+
convertToolDefinitions(tools: ToolDefinition[]): InferenceToolDefinition[];
|
|
30
|
+
convertMessages(messages: ChatMessage[], vlm: boolean): InferenceMessage[];
|
|
31
|
+
extractImagePaths(content: string | unknown): string[];
|
|
32
|
+
formatToolDefinitionsAsText(tools: ToolDefinition[], specialTokens: InferenceCapabilities['special_tokens'] | undefined, toolCallFormat?: ToolCallFormat): string;
|
|
33
|
+
generateMergedPrompt(messages: InferenceMessage[], specialTokens: InferenceCapabilities['special_tokens']): string;
|
|
34
|
+
selectApi(strategy: ApiStrategy, mode: QueryMode | undefined, hasChatTemplate: boolean, hasCompletionProc: boolean): 'chat' | 'completion';
|
|
35
|
+
}
|
|
36
|
+
export interface CachePrepareParams {
|
|
37
|
+
model: string;
|
|
38
|
+
instructions: CompiledPrompt['instructions'];
|
|
39
|
+
data: CompiledPrompt['data'];
|
|
40
|
+
tools?: ToolDefinition[];
|
|
41
|
+
reasoningEffort?: 'low' | 'medium' | 'high';
|
|
42
|
+
readOnly?: boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface CachePrepareHandle {
|
|
45
|
+
ref?: string;
|
|
46
|
+
trimTokens?: number;
|
|
47
|
+
}
|
|
48
|
+
export interface LocalInferenceCacheSupport {
|
|
49
|
+
bind(process: InferenceProcessPort, formatterOptions: FormatterOptions, preprocess: (messages: InferenceMessage[]) => InferenceMessage[]): Promise<void>;
|
|
50
|
+
shouldDisableForVlm(modelKind?: 'lm' | 'vlm'): boolean;
|
|
51
|
+
recordQuery(): void;
|
|
52
|
+
getGrowthBefore(): number;
|
|
53
|
+
getWriteTokensSince(growthBefore: number): number;
|
|
54
|
+
prepare(params: CachePrepareParams): Promise<CachePrepareHandle>;
|
|
55
|
+
readTokenCount(cachePath: string): number;
|
|
56
|
+
recordPromptTokens(promptTokens: number, cacheTokensUsed: number): void;
|
|
57
|
+
/** 終了時の統計ログ(オプション。MlxDriver は独自ログを使用) */
|
|
58
|
+
logStats(): void;
|
|
59
|
+
close(): Promise<void>;
|
|
60
|
+
}
|
|
61
|
+
export interface CapabilitiesLoadedContext {
|
|
62
|
+
formatterOptions: FormatterOptions;
|
|
63
|
+
modelProcessor: InferenceModelProcessor;
|
|
64
|
+
process: InferenceProcessPort;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=adapters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../../src/local-inference/adapters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/local-inference/adapters.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Readable } from 'stream';
|
|
2
|
+
import type { CompiledPrompt } from '@modular-prompt/core';
|
|
3
|
+
import type { FormatterOptions } from '../formatter/types.js';
|
|
4
|
+
import { QueryLogger } from '../query-logger.js';
|
|
5
|
+
import type { AIDriver, QueryOptions, QueryResult, StreamResult } from '../types.js';
|
|
6
|
+
import type { CapabilitiesLoadedContext, LocalInferenceAdapters, LocalInferenceCacheSupport } from './adapters.js';
|
|
7
|
+
import type { InferenceCapabilities } from './protocol.js';
|
|
8
|
+
import type { InferenceProcessPort } from './process-port.js';
|
|
9
|
+
export interface LocalInferenceDriverConfig {
|
|
10
|
+
model: string;
|
|
11
|
+
process: InferenceProcessPort;
|
|
12
|
+
adapters: LocalInferenceAdapters;
|
|
13
|
+
formatterOptions?: FormatterOptions;
|
|
14
|
+
maxImageSize?: number;
|
|
15
|
+
defaultOptions?: Record<string, unknown>;
|
|
16
|
+
loggerPrefix?: string;
|
|
17
|
+
cache?: LocalInferenceCacheSupport;
|
|
18
|
+
onCapabilitiesLoaded?: (runtimeInfo: InferenceCapabilities, ctx: CapabilitiesLoadedContext) => Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
export declare class LocalInferenceDriver implements AIDriver {
|
|
21
|
+
protected readonly process: InferenceProcessPort;
|
|
22
|
+
protected readonly model: string;
|
|
23
|
+
protected readonly adapters: LocalInferenceAdapters;
|
|
24
|
+
protected readonly formatterOptions: FormatterOptions;
|
|
25
|
+
protected readonly maxImageSize: number;
|
|
26
|
+
private onCapabilitiesLoaded?;
|
|
27
|
+
private cacheSupport?;
|
|
28
|
+
protected runtimeInfo: InferenceCapabilities | null;
|
|
29
|
+
protected modelProcessor: ReturnType<LocalInferenceAdapters['createModelProcessor']>;
|
|
30
|
+
protected queryLogger: QueryLogger;
|
|
31
|
+
private _defaultOptions;
|
|
32
|
+
private capabilitiesLoaded;
|
|
33
|
+
get defaultOptions(): Record<string, unknown>;
|
|
34
|
+
set defaultOptions(value: Record<string, unknown>);
|
|
35
|
+
constructor(config: LocalInferenceDriverConfig);
|
|
36
|
+
protected disableCacheSupport(): void;
|
|
37
|
+
protected ensureInitialized(): Promise<void>;
|
|
38
|
+
protected getRuntimeInfo(): InferenceCapabilities | null;
|
|
39
|
+
protected isVLM(): boolean;
|
|
40
|
+
protected determineApi(options?: QueryOptions): 'chat' | 'completion';
|
|
41
|
+
protected hasNativeToolSupport(): boolean;
|
|
42
|
+
protected executeQuery(prompt: CompiledPrompt, samplingOptions: Record<string, unknown>, options?: Record<string, unknown>): Promise<{
|
|
43
|
+
stream: Readable;
|
|
44
|
+
cacheTokensUsed: number;
|
|
45
|
+
cacheWriteTokens: number;
|
|
46
|
+
}>;
|
|
47
|
+
query(prompt: CompiledPrompt, options?: QueryOptions): Promise<QueryResult>;
|
|
48
|
+
streamQuery(prompt: CompiledPrompt, options?: QueryOptions): Promise<StreamResult>;
|
|
49
|
+
close(): Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=driver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/local-inference/driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import { extractJSON } from '@modular-prompt/utils';
|
|
2
|
+
import { formatPromptAsMessages } from '../formatter/converter.js';
|
|
3
|
+
import { formatCompletionPrompt } from '../formatter/completion-formatter.js';
|
|
4
|
+
import { extractCacheablePrefix } from '../cache-utils.js';
|
|
5
|
+
import { QueryLogger } from '../query-logger.js';
|
|
6
|
+
import { isToolResult } from '../types.js';
|
|
7
|
+
import { buildQueryUsage, createAbortedStreamResult, isAborted, watchAbortSignal, } from '../query-utils.js';
|
|
8
|
+
import { createStreamIterable } from './stream-utils.js';
|
|
9
|
+
export class LocalInferenceDriver {
|
|
10
|
+
process;
|
|
11
|
+
model;
|
|
12
|
+
adapters;
|
|
13
|
+
formatterOptions;
|
|
14
|
+
maxImageSize;
|
|
15
|
+
onCapabilitiesLoaded;
|
|
16
|
+
cacheSupport;
|
|
17
|
+
runtimeInfo = null;
|
|
18
|
+
modelProcessor;
|
|
19
|
+
queryLogger;
|
|
20
|
+
_defaultOptions;
|
|
21
|
+
capabilitiesLoaded = false;
|
|
22
|
+
get defaultOptions() {
|
|
23
|
+
return this._defaultOptions;
|
|
24
|
+
}
|
|
25
|
+
set defaultOptions(value) {
|
|
26
|
+
this._defaultOptions = value ?? {};
|
|
27
|
+
}
|
|
28
|
+
constructor(config) {
|
|
29
|
+
this.model = config.model;
|
|
30
|
+
this.process = config.process;
|
|
31
|
+
this.adapters = config.adapters;
|
|
32
|
+
this._defaultOptions = config.defaultOptions ?? {};
|
|
33
|
+
this.formatterOptions = config.formatterOptions ?? {};
|
|
34
|
+
this.maxImageSize = config.maxImageSize ?? 768;
|
|
35
|
+
this.cacheSupport = config.cache;
|
|
36
|
+
this.onCapabilitiesLoaded = config.onCapabilitiesLoaded;
|
|
37
|
+
this.modelProcessor = config.adapters.createModelProcessor(config.model);
|
|
38
|
+
this.queryLogger = new QueryLogger(config.loggerPrefix ?? 'LIP');
|
|
39
|
+
}
|
|
40
|
+
disableCacheSupport() {
|
|
41
|
+
this.cacheSupport = undefined;
|
|
42
|
+
}
|
|
43
|
+
async ensureInitialized() {
|
|
44
|
+
await this.process.ensureInitialized();
|
|
45
|
+
if (this.capabilitiesLoaded) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
this.runtimeInfo = await this.process.getCapabilities();
|
|
50
|
+
this.capabilitiesLoaded = true;
|
|
51
|
+
if (this.runtimeInfo.special_tokens) {
|
|
52
|
+
this.formatterOptions.specialTokens = this.runtimeInfo.special_tokens;
|
|
53
|
+
}
|
|
54
|
+
this.modelProcessor.setRuntimeContext({
|
|
55
|
+
chatRestrictions: this.runtimeInfo.chat_restrictions,
|
|
56
|
+
modelKind: this.runtimeInfo.model_kind,
|
|
57
|
+
});
|
|
58
|
+
if (this.onCapabilitiesLoaded) {
|
|
59
|
+
await this.onCapabilitiesLoaded(this.runtimeInfo, {
|
|
60
|
+
formatterOptions: this.formatterOptions,
|
|
61
|
+
modelProcessor: this.modelProcessor,
|
|
62
|
+
process: this.process,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
this.queryLogger.log.error('Failed to get runtime info:', error instanceof Error ? error.message : String(error));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
getRuntimeInfo() {
|
|
71
|
+
return this.runtimeInfo;
|
|
72
|
+
}
|
|
73
|
+
isVLM() {
|
|
74
|
+
return this.runtimeInfo?.model_kind === 'vlm';
|
|
75
|
+
}
|
|
76
|
+
determineApi(options) {
|
|
77
|
+
return this.adapters.selectApi(options?.apiStrategy ?? 'auto', options?.mode, !!this.runtimeInfo?.features.apply_chat_template, this.modelProcessor.hasCompletionProcessor());
|
|
78
|
+
}
|
|
79
|
+
hasNativeToolSupport() {
|
|
80
|
+
return !!this.runtimeInfo?.features?.chat_template?.tool_call_format?.call_start;
|
|
81
|
+
}
|
|
82
|
+
async executeQuery(prompt, samplingOptions, options) {
|
|
83
|
+
const api = this.determineApi(options);
|
|
84
|
+
const queryOptions = options;
|
|
85
|
+
const tools = queryOptions?.tools
|
|
86
|
+
? this.adapters.convertToolDefinitions(queryOptions.tools)
|
|
87
|
+
: undefined;
|
|
88
|
+
let augmentedPrompt = prompt;
|
|
89
|
+
if (queryOptions?.tools &&
|
|
90
|
+
queryOptions.tools.length > 0 &&
|
|
91
|
+
(api === 'completion' || !this.hasNativeToolSupport())) {
|
|
92
|
+
const toolsText = this.adapters.formatToolDefinitionsAsText(queryOptions.tools, this.runtimeInfo?.special_tokens, this.runtimeInfo?.features?.chat_template?.tool_call_format);
|
|
93
|
+
augmentedPrompt = {
|
|
94
|
+
...prompt,
|
|
95
|
+
instructions: [...prompt.instructions, { type: 'text', content: toolsText }],
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
this.cacheSupport?.recordQuery();
|
|
99
|
+
if (api === 'completion') {
|
|
100
|
+
let formattedPrompt = formatCompletionPrompt(augmentedPrompt, this.formatterOptions);
|
|
101
|
+
formattedPrompt = this.modelProcessor.applyCompletionSpecificProcessing(formattedPrompt);
|
|
102
|
+
const stream = await this.process.generate(formattedPrompt, samplingOptions);
|
|
103
|
+
return { stream, cacheTokensUsed: 0, cacheWriteTokens: 0 };
|
|
104
|
+
}
|
|
105
|
+
const messages = formatPromptAsMessages(augmentedPrompt, this.formatterOptions);
|
|
106
|
+
const vlm = this.isVLM();
|
|
107
|
+
let inferenceMessages = this.adapters.convertMessages(messages, vlm);
|
|
108
|
+
inferenceMessages = this.modelProcessor.applyChatSpecificProcessing(inferenceMessages);
|
|
109
|
+
const nativeTools = this.hasNativeToolSupport() && tools?.length ? tools : undefined;
|
|
110
|
+
const images = vlm
|
|
111
|
+
? messages.flatMap((m) => 'content' in m && !isToolResult(m)
|
|
112
|
+
? this.adapters.extractImagePaths(m.content)
|
|
113
|
+
: [])
|
|
114
|
+
: [];
|
|
115
|
+
let cachePath;
|
|
116
|
+
let cacheTrimTokens;
|
|
117
|
+
let cacheWriteTokens = 0;
|
|
118
|
+
const cacheGrowthBefore = this.cacheSupport?.getGrowthBefore() ?? 0;
|
|
119
|
+
const trustRemoteCode = samplingOptions.trustRemoteCode;
|
|
120
|
+
const externalHandle = queryOptions?.cacheHandle;
|
|
121
|
+
if (externalHandle?.ref) {
|
|
122
|
+
cachePath = externalHandle.ref;
|
|
123
|
+
cacheTrimTokens = externalHandle.trimTokens;
|
|
124
|
+
}
|
|
125
|
+
else if (this.cacheSupport && queryOptions?.cache !== false && trustRemoteCode === undefined) {
|
|
126
|
+
const prefix = extractCacheablePrefix(augmentedPrompt);
|
|
127
|
+
const hasCacheableContent = prefix.instructions.length > 0 || prefix.data.length > 0;
|
|
128
|
+
if (hasCacheableContent) {
|
|
129
|
+
const cacheStart = performance.now();
|
|
130
|
+
const handle = await this.cacheSupport.prepare({
|
|
131
|
+
model: this.model,
|
|
132
|
+
instructions: prefix.instructions,
|
|
133
|
+
data: prefix.data,
|
|
134
|
+
tools: nativeTools ? queryOptions.tools : undefined,
|
|
135
|
+
reasoningEffort: queryOptions?.reasoningEffort,
|
|
136
|
+
readOnly: queryOptions?.cache === 'read-only',
|
|
137
|
+
});
|
|
138
|
+
cachePath = handle.ref || undefined;
|
|
139
|
+
cacheTrimTokens = handle.trimTokens;
|
|
140
|
+
if (cachePath) {
|
|
141
|
+
this.queryLogger.log.debug(`cache prepare ${(performance.now() - cacheStart).toFixed(0)}ms`, `(${prefix.instructions.length}i+${prefix.data.length}d)`, cacheTrimTokens != null ? `trim=${cacheTrimTokens}` : '');
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if (this.cacheSupport) {
|
|
146
|
+
cacheWriteTokens = this.cacheSupport.getWriteTokensSince(cacheGrowthBefore);
|
|
147
|
+
}
|
|
148
|
+
let formattedPrompt;
|
|
149
|
+
if (this.runtimeInfo?.features.apply_chat_template) {
|
|
150
|
+
const renderResult = await this.process.render(inferenceMessages, samplingOptions, nativeTools, queryOptions?.reasoningEffort);
|
|
151
|
+
if (renderResult.error || renderResult.formatted_prompt == null) {
|
|
152
|
+
throw new Error(renderResult.error ?? 'render failed');
|
|
153
|
+
}
|
|
154
|
+
formattedPrompt = String(renderResult.formatted_prompt);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
formattedPrompt = this.adapters.generateMergedPrompt(inferenceMessages, this.runtimeInfo?.special_tokens ?? {});
|
|
158
|
+
}
|
|
159
|
+
const generateOptions = { ...samplingOptions };
|
|
160
|
+
delete generateOptions.trustRemoteCode;
|
|
161
|
+
const stream = await this.process.generate(formattedPrompt, generateOptions, images.length > 0 ? images : undefined, images.length > 0 ? this.maxImageSize : undefined, cachePath, cacheTrimTokens);
|
|
162
|
+
const cacheTokensUsed = cachePath
|
|
163
|
+
? (cacheTrimTokens ?? (this.cacheSupport ? this.cacheSupport.readTokenCount(cachePath) : 0))
|
|
164
|
+
: 0;
|
|
165
|
+
return { stream, cacheTokensUsed, cacheWriteTokens };
|
|
166
|
+
}
|
|
167
|
+
async query(prompt, options) {
|
|
168
|
+
const { stream, result } = await this.streamQuery(prompt, options);
|
|
169
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
170
|
+
for await (const _chunk of stream) {
|
|
171
|
+
// Consume stream so result resolves
|
|
172
|
+
}
|
|
173
|
+
return result;
|
|
174
|
+
}
|
|
175
|
+
async streamQuery(prompt, options) {
|
|
176
|
+
await this.ensureInitialized();
|
|
177
|
+
const signal = options?.signal;
|
|
178
|
+
if (isAborted(signal)) {
|
|
179
|
+
return createAbortedStreamResult(this.queryLogger.collect());
|
|
180
|
+
}
|
|
181
|
+
let abortRequested = false;
|
|
182
|
+
const cleanupAbort = watchAbortSignal(signal, () => {
|
|
183
|
+
abortRequested = true;
|
|
184
|
+
this.process.cancelActiveRequest();
|
|
185
|
+
});
|
|
186
|
+
const checkAborted = () => abortRequested || isAborted(signal);
|
|
187
|
+
const merged = this.adapters.mergeQueryOptions(this._defaultOptions, options);
|
|
188
|
+
const samplingOptions = this.adapters.toSamplingOptions(merged);
|
|
189
|
+
this.queryLogger.mark(merged);
|
|
190
|
+
const queryStart = performance.now();
|
|
191
|
+
const { stream, cacheTokensUsed, cacheWriteTokens } = await this.executeQuery(prompt, samplingOptions, merged);
|
|
192
|
+
if (checkAborted()) {
|
|
193
|
+
this.process.cancelActiveRequest();
|
|
194
|
+
}
|
|
195
|
+
const streamStart = performance.now();
|
|
196
|
+
this.queryLogger.log.debug(`setup ${(streamStart - queryStart).toFixed(0)}ms`);
|
|
197
|
+
const { iterable, completion } = createStreamIterable(stream, checkAborted);
|
|
198
|
+
const queryLogger = this.queryLogger;
|
|
199
|
+
let firstChunkTime = 0;
|
|
200
|
+
const wrappedIterable = {
|
|
201
|
+
[Symbol.asyncIterator]() {
|
|
202
|
+
const inner = iterable[Symbol.asyncIterator]();
|
|
203
|
+
let firstChunk = true;
|
|
204
|
+
return {
|
|
205
|
+
async next() {
|
|
206
|
+
if (checkAborted()) {
|
|
207
|
+
void inner.return?.();
|
|
208
|
+
return { done: true, value: undefined };
|
|
209
|
+
}
|
|
210
|
+
const result = await inner.next();
|
|
211
|
+
if (!result.done) {
|
|
212
|
+
if (firstChunk) {
|
|
213
|
+
firstChunk = false;
|
|
214
|
+
firstChunkTime = performance.now();
|
|
215
|
+
queryLogger.log.debug(`TTFT ${(firstChunkTime - streamStart).toFixed(0)}ms`);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
const now = performance.now();
|
|
220
|
+
if (firstChunkTime > 0) {
|
|
221
|
+
const genMs = now - firstChunkTime;
|
|
222
|
+
queryLogger.log.debug(`generation ${genMs.toFixed(0)}ms (query total ${(now - queryStart).toFixed(0)}ms)`);
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
queryLogger.log.debug(`query total ${(performance.now() - queryStart).toFixed(0)}ms`);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return result;
|
|
229
|
+
},
|
|
230
|
+
async return(value) {
|
|
231
|
+
cleanupAbort();
|
|
232
|
+
return inner.return?.(value) ?? { done: true, value: undefined };
|
|
233
|
+
},
|
|
234
|
+
async throw(e) {
|
|
235
|
+
cleanupAbort();
|
|
236
|
+
return inner.throw?.(e) ?? { done: true, value: undefined };
|
|
237
|
+
},
|
|
238
|
+
};
|
|
239
|
+
},
|
|
240
|
+
};
|
|
241
|
+
const cache = this.cacheSupport;
|
|
242
|
+
const resultPromise = completion
|
|
243
|
+
.then(({ content, meta, error }) => {
|
|
244
|
+
const aborted = checkAborted();
|
|
245
|
+
if (error && !aborted) {
|
|
246
|
+
this.queryLogger.log.error('Stream error:', error.message);
|
|
247
|
+
throw error;
|
|
248
|
+
}
|
|
249
|
+
if (cache && meta.prompt_tokens != null) {
|
|
250
|
+
cache.recordPromptTokens(meta.prompt_tokens, cacheTokensUsed);
|
|
251
|
+
}
|
|
252
|
+
if (meta.generation_tokens != null && firstChunkTime > 0) {
|
|
253
|
+
const genMs = performance.now() - firstChunkTime;
|
|
254
|
+
const actualTps = ((meta.generation_tokens / genMs) * 1000).toFixed(1);
|
|
255
|
+
this.queryLogger.log.debug(`${meta.generation_tokens} tokens, ${actualTps} tok/s`);
|
|
256
|
+
}
|
|
257
|
+
const hasTools = options?.tools && options.tools.length > 0;
|
|
258
|
+
const responseProcessor = this.adapters.selectResponseProcessor(this.model, this.runtimeInfo, {
|
|
259
|
+
enableToolParsing: !!hasTools,
|
|
260
|
+
});
|
|
261
|
+
const parsed = responseProcessor(content);
|
|
262
|
+
const finalContent = parsed.content;
|
|
263
|
+
const thinkingContent = parsed.thinkingContent;
|
|
264
|
+
const toolCalls = parsed.toolCalls;
|
|
265
|
+
if (thinkingContent) {
|
|
266
|
+
this.queryLogger.log.verbose('Thinking content:', thinkingContent);
|
|
267
|
+
}
|
|
268
|
+
let structuredOutput;
|
|
269
|
+
if (prompt.metadata?.outputSchema && finalContent) {
|
|
270
|
+
const extracted = extractJSON(finalContent, { multiple: false });
|
|
271
|
+
if (extracted.source !== 'none' && extracted.data !== null) {
|
|
272
|
+
structuredOutput = extracted.data;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
const finishReason = aborted
|
|
276
|
+
? 'error'
|
|
277
|
+
: toolCalls
|
|
278
|
+
? 'tool_calls'
|
|
279
|
+
: 'stop';
|
|
280
|
+
return {
|
|
281
|
+
content: finalContent,
|
|
282
|
+
thinkingContent,
|
|
283
|
+
structuredOutput,
|
|
284
|
+
toolCalls,
|
|
285
|
+
finishReason,
|
|
286
|
+
usage: buildQueryUsage({
|
|
287
|
+
promptTokens: meta.prompt_tokens,
|
|
288
|
+
completionTokens: meta.generation_tokens,
|
|
289
|
+
cacheReadTokens: cacheTokensUsed,
|
|
290
|
+
cacheWriteTokens,
|
|
291
|
+
}),
|
|
292
|
+
...this.queryLogger.collect(),
|
|
293
|
+
};
|
|
294
|
+
})
|
|
295
|
+
.finally(() => {
|
|
296
|
+
cleanupAbort();
|
|
297
|
+
});
|
|
298
|
+
return {
|
|
299
|
+
stream: wrappedIterable,
|
|
300
|
+
result: resultPromise,
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
async close() {
|
|
304
|
+
this.cacheSupport?.logStats();
|
|
305
|
+
await this.cacheSupport?.close();
|
|
306
|
+
await this.process.exit();
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
//# sourceMappingURL=driver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver.js","sourceRoot":"","sources":["../../src/local-inference/driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local Inference Protocol — モジュール集約
|
|
3
|
+
*
|
|
4
|
+
* `@modular-prompt/driver` の公開 API は主に `InferenceProcessClient`。
|
|
5
|
+
* 以下の通信層・キュー型はパッケージ内部向け(テスト・将来の PyTorch バックエンド用)。
|
|
6
|
+
*/
|
|
7
|
+
export type { InferenceMethod, InferenceContentPart, InferenceStandardMessage, InferenceAssistantToolCallMessage, InferenceToolResultMessage, InferenceMessage, InferenceToolDefinition, InferenceSamplingOptions, InferenceBaseRequest, InferenceCapabilitiesRequest, InferenceFormatTestRequest, InferenceRenderRequest, InferenceTokenizeRequest, InferenceChatRequest, InferenceCompletionRequest, InferenceGenerateRequest, InferenceCachePrefillRequest, InferenceCachePrefillResult, InferenceRequest, KnownToolParserType, ToolCallFormat, ChatTemplateInfo, InferenceCapabilities, InferenceFormatTestResult, InferenceRenderResult, InferenceTokenizeResult, } from './protocol.js';
|
|
8
|
+
/** @internal キュー実装の内部型 */
|
|
9
|
+
export type { LegacyStreamingRequest, BaseQueueItem, CapabilitiesQueueItem, FormatTestQueueItem, TokenizeQueueItem, CachePrefillQueueItem, StreamingQueueItem, QueueItem, } from './queue-types.js';
|
|
10
|
+
/** @internal stdio 通信(InferenceProcessClient から利用) */
|
|
11
|
+
export { ProcessCommunication, type ProcessCommunicationCallbacks, type ProcessCommunicationConfig, } from './process-communication.js';
|
|
12
|
+
/** @internal JSON-RPC リクエストキュー */
|
|
13
|
+
export { InferenceRequestQueue, type RequestQueueCallbacks, type SamplingOptionsMapper, } from './request-queue.js';
|
|
14
|
+
/** バックエンド非依存の LIP プロセスクライアント(公開 API) */
|
|
15
|
+
export { InferenceProcessClient, type InferenceProcessClientConfig, } from './process-client.js';
|
|
16
|
+
/** バックエンド非依存の LIP ドライバー骨格(公開 API) */
|
|
17
|
+
export { LocalInferenceDriver, type LocalInferenceDriverConfig, } from './driver.js';
|
|
18
|
+
export type { InferenceProcessPort } from './process-port.js';
|
|
19
|
+
export type { LocalInferenceAdapters, LocalInferenceCacheSupport, InferenceModelProcessor, InferenceResponseProcessor, } from './adapters.js';
|
|
20
|
+
export { createStreamIterable, extractStreamMeta, META_MARKER } from './stream-utils.js';
|
|
21
|
+
export { hasMessageElement } from './prompt-utils.js';
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/local-inference/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACxB,iCAAiC,EACjC,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,oBAAoB,EACpB,4BAA4B,EAC5B,0BAA0B,EAC1B,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,4BAA4B,EAC5B,2BAA2B,EAC3B,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAEvB,0BAA0B;AAC1B,YAAY,EACV,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,SAAS,GACV,MAAM,kBAAkB,CAAC;AAE1B,sDAAsD;AACtD,OAAO,EACL,oBAAoB,EACpB,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,GAChC,MAAM,4BAA4B,CAAC;AAEpC,kCAAkC;AAClC,OAAO,EACL,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC;AAE5B,wCAAwC;AACxC,OAAO,EACL,sBAAsB,EACtB,KAAK,4BAA4B,GAClC,MAAM,qBAAqB,CAAC;AAE7B,qCAAqC;AACrC,OAAO,EACL,oBAAoB,EACpB,KAAK,0BAA0B,GAChC,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local Inference Protocol — モジュール集約
|
|
3
|
+
*
|
|
4
|
+
* `@modular-prompt/driver` の公開 API は主に `InferenceProcessClient`。
|
|
5
|
+
* 以下の通信層・キュー型はパッケージ内部向け(テスト・将来の PyTorch バックエンド用)。
|
|
6
|
+
*/
|
|
7
|
+
/** @internal stdio 通信(InferenceProcessClient から利用) */
|
|
8
|
+
export { ProcessCommunication, } from './process-communication.js';
|
|
9
|
+
/** @internal JSON-RPC リクエストキュー */
|
|
10
|
+
export { InferenceRequestQueue, } from './request-queue.js';
|
|
11
|
+
/** バックエンド非依存の LIP プロセスクライアント(公開 API) */
|
|
12
|
+
export { InferenceProcessClient, } from './process-client.js';
|
|
13
|
+
/** バックエンド非依存の LIP ドライバー骨格(公開 API) */
|
|
14
|
+
export { LocalInferenceDriver, } from './driver.js';
|
|
15
|
+
export { createStreamIterable, extractStreamMeta, META_MARKER } from './stream-utils.js';
|
|
16
|
+
export { hasMessageElement } from './prompt-utils.js';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local-inference/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2CH,sDAAsD;AACtD,OAAO,EACL,oBAAoB,GAGrB,MAAM,4BAA4B,CAAC;AAEpC,kCAAkC;AAClC,OAAO,EACL,qBAAqB,GAGtB,MAAM,oBAAoB,CAAC;AAE5B,wCAAwC;AACxC,OAAO,EACL,sBAAsB,GAEvB,MAAM,qBAAqB,CAAC;AAE7B,qCAAqC;AACrC,OAAO,EACL,oBAAoB,GAErB,MAAM,aAAa,CAAC;AAUrB,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local Inference Protocol プロセスクライアント
|
|
3
|
+
*
|
|
4
|
+
* stdio JSON-RPC 通信とリクエストキューを統合する。
|
|
5
|
+
*/
|
|
6
|
+
import { Readable } from 'stream';
|
|
7
|
+
import type { RuntimeProfile } from '../runtime/index.js';
|
|
8
|
+
import type { InferenceCapabilities, InferenceFormatTestResult, InferenceRenderResult, InferenceTokenizeResult, InferenceCachePrefillResult, InferenceMessage, InferenceToolDefinition, InferenceSamplingOptions } from './protocol.js';
|
|
9
|
+
import { type SamplingOptionsMapper } from './request-queue.js';
|
|
10
|
+
export interface InferenceProcessClientConfig {
|
|
11
|
+
modelName: string;
|
|
12
|
+
/** uv --project に渡す Python プロジェクトディレクトリ */
|
|
13
|
+
pythonProjectDir: string;
|
|
14
|
+
/** UV_PROJECT_ENVIRONMENT に設定する venv パス */
|
|
15
|
+
venvPath: string;
|
|
16
|
+
/** 指定時は起動前に runtime venv の存在を確認する */
|
|
17
|
+
runtimeProfile?: RuntimeProfile;
|
|
18
|
+
extraSpawnArgs?: string[];
|
|
19
|
+
extraEnv?: Record<string, string>;
|
|
20
|
+
loggerPrefix?: string;
|
|
21
|
+
mapSamplingOptions?: SamplingOptionsMapper;
|
|
22
|
+
processExitErrorMessage?: (code: number | null, signal: string | null) => string;
|
|
23
|
+
}
|
|
24
|
+
export declare class InferenceProcessClient {
|
|
25
|
+
readonly modelName: string;
|
|
26
|
+
private requestQueue;
|
|
27
|
+
private processComm;
|
|
28
|
+
constructor(config: InferenceProcessClientConfig);
|
|
29
|
+
ensureInitialized(): Promise<void>;
|
|
30
|
+
getCapabilities(): Promise<InferenceCapabilities>;
|
|
31
|
+
formatTest(messages: InferenceMessage[], options?: {
|
|
32
|
+
primer?: string;
|
|
33
|
+
}): Promise<InferenceFormatTestResult>;
|
|
34
|
+
render(messages: InferenceMessage[], options?: InferenceSamplingOptions & {
|
|
35
|
+
primer?: string;
|
|
36
|
+
}, tools?: InferenceToolDefinition[], reasoningEffort?: 'low' | 'medium' | 'high'): Promise<InferenceRenderResult>;
|
|
37
|
+
tokenize(messages: InferenceMessage[], tools?: InferenceToolDefinition[], reasoningEffort?: 'low' | 'medium' | 'high'): Promise<InferenceTokenizeResult>;
|
|
38
|
+
cachePrefill(cachePath: string, messages: InferenceMessage[], baseCachePath?: string, trimToTokens?: number, prefixOffsets?: number[], prefixHashes?: string[], tools?: InferenceToolDefinition[], reasoningEffort?: 'low' | 'medium' | 'high'): Promise<InferenceCachePrefillResult>;
|
|
39
|
+
completion(prompt: string, options?: unknown, images?: string[], maxImageSize?: number): Promise<Readable>;
|
|
40
|
+
generate(prompt: string | number[], options?: unknown, images?: string[], maxImageSize?: number, cachePath?: string, cacheTrimTokens?: number, primer?: string): Promise<Readable>;
|
|
41
|
+
exit(): Promise<void>;
|
|
42
|
+
cancelActiveRequest(): void;
|
|
43
|
+
getStatus(): {
|
|
44
|
+
modelName: string;
|
|
45
|
+
queueLength: number;
|
|
46
|
+
isStreamingActive: boolean;
|
|
47
|
+
isJsonBuffering: boolean;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=process-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-client.d.ts","sourceRoot":"","sources":["../../src/local-inference/process-client.ts"],"names":[],"mappings":"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"}
|