@qvac/sdk 0.9.2 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +42 -95
- package/dist/client/api/cancel.d.ts +1 -1
- package/dist/client/api/cancel.js +1 -1
- package/dist/client/api/completion-stream.d.ts +51 -12
- package/dist/client/api/completion-stream.js +129 -56
- package/dist/client/api/delete-cache.d.ts +1 -0
- package/dist/client/api/delete-cache.js +1 -0
- package/dist/client/api/diffusion.d.ts +17 -2
- package/dist/client/api/diffusion.js +21 -4
- package/dist/client/api/embed.d.ts +4 -0
- package/dist/client/api/finetune.d.ts +21 -0
- package/dist/client/api/get-loaded-model-info.d.ts +25 -0
- package/dist/client/api/get-loaded-model-info.js +36 -0
- package/dist/client/api/get-model-info.d.ts +9 -1
- package/dist/client/api/get-model-info.js +8 -0
- package/dist/client/api/heartbeat.d.ts +2 -2
- package/dist/client/api/heartbeat.js +2 -2
- package/dist/client/api/index.d.ts +3 -1
- package/dist/client/api/index.js +3 -1
- package/dist/client/api/invoke-plugin.d.ts +16 -0
- package/dist/client/api/invoke-plugin.js +16 -0
- package/dist/client/api/load-model.d.ts +36 -3
- package/dist/client/api/load-model.js +31 -10
- package/dist/client/api/provide.d.ts +11 -5
- package/dist/client/api/provide.js +11 -6
- package/dist/client/api/rag.d.ts +9 -0
- package/dist/client/api/rag.js +9 -0
- package/dist/client/api/registry.d.ts +26 -0
- package/dist/client/api/registry.js +26 -0
- package/dist/client/api/resume.d.ts +20 -4
- package/dist/client/api/resume.js +20 -4
- package/dist/client/api/state.d.ts +23 -0
- package/dist/client/api/state.js +29 -0
- package/dist/client/api/stop-provider.d.ts +11 -5
- package/dist/client/api/stop-provider.js +11 -5
- package/dist/client/api/suspend.d.ts +21 -3
- package/dist/client/api/suspend.js +21 -3
- package/dist/client/api/text-to-speech.d.ts +64 -6
- package/dist/client/api/text-to-speech.js +423 -47
- package/dist/client/api/transcribe.d.ts +29 -4
- package/dist/client/api/transcribe.js +86 -28
- package/dist/client/api/translate.d.ts +1 -0
- package/dist/client/api/translate.js +1 -0
- package/dist/client/rpc/bare-client.js +22 -1
- package/dist/client/rpc/expo-rpc-client.d.ts +1 -1
- package/dist/client/rpc/expo-rpc-client.js +96 -4
- package/dist/client/rpc/node-rpc-client.js +36 -0
- package/dist/examples/audio/mic-input.d.ts +9 -0
- package/dist/examples/audio/mic-input.js +111 -0
- package/dist/examples/completion-events.d.ts +18 -0
- package/dist/examples/completion-events.js +79 -0
- package/dist/examples/delegated-inference/composite.js +12 -18
- package/dist/examples/delegated-inference/consumer-profiled.js +4 -11
- package/dist/examples/delegated-inference/consumer.js +8 -13
- package/dist/examples/delegated-inference/provider.js +11 -16
- package/dist/examples/diffusion-flux2-klein-img2img.d.ts +2 -0
- package/dist/examples/diffusion-flux2-klein-img2img.js +60 -0
- package/dist/examples/diffusion-flux2-klein.js +1 -0
- package/dist/examples/diffusion-img2img.d.ts +2 -0
- package/dist/examples/diffusion-img2img.js +49 -0
- package/dist/examples/diffusion-txt2img.js +2 -1
- package/dist/examples/kv-cache-example.js +11 -12
- package/dist/examples/llamacpp-cache.d.ts +2 -0
- package/dist/examples/llamacpp-cache.js +107 -0
- package/dist/examples/llamacpp-dynamic-tools.d.ts +2 -0
- package/dist/examples/llamacpp-dynamic-tools.js +144 -0
- package/dist/examples/llamacpp-structured-output.d.ts +2 -0
- package/dist/examples/llamacpp-structured-output.js +106 -0
- package/dist/examples/plugins.js +4 -4
- package/dist/examples/suspend-resume.js +21 -4
- package/dist/examples/{llamacpp-native-tools.js → tools/llamacpp-native-tools.js} +6 -55
- package/dist/examples/tools/llamacpp-tools-harmony-multiturn.d.ts +2 -0
- package/dist/examples/tools/llamacpp-tools-harmony-multiturn.js +81 -0
- package/dist/examples/tools/llamacpp-tools-pythonic.d.ts +2 -0
- package/dist/examples/tools/llamacpp-tools-pythonic.js +50 -0
- package/dist/examples/tools/shared.d.ts +21 -0
- package/dist/examples/tools/shared.js +42 -0
- package/dist/examples/transcription/parakeet-microphone-record.js +6 -33
- package/dist/examples/transcription/whispercpp-filesystem-streaming.js +7 -5
- package/dist/examples/transcription/whispercpp-filesystem.js +12 -3
- package/dist/examples/transcription/whispercpp-microphone-record.js +6 -29
- package/dist/examples/translation/translation-stream.js +5 -5
- package/dist/examples/tts/llm-to-tts-streaming.d.ts +16 -0
- package/dist/examples/tts/llm-to-tts-streaming.js +143 -0
- package/dist/examples/tts/supertonic-multilingual.js +3 -3
- package/dist/examples/tts/supertonic.js +3 -3
- package/dist/examples/tts/utils.d.ts +11 -1
- package/dist/examples/tts/utils.js +70 -17
- package/dist/examples/voice-assistant/voice-assistant.d.ts +2 -0
- package/dist/examples/voice-assistant/voice-assistant.js +207 -0
- package/dist/expo/plugins/withMobileBundle.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/logging/logger.d.ts +11 -0
- package/dist/logging/logger.js +11 -0
- package/dist/logging/types.d.ts +18 -0
- package/dist/models/registry/models.d.ts +6973 -7457
- package/dist/models/registry/models.js +6889 -6855
- package/dist/models/update-models/codegen.js +84 -23
- package/dist/models/update-models/companions.d.ts +18 -0
- package/dist/models/update-models/companions.js +175 -0
- package/dist/models/update-models/naming.js +0 -25
- package/dist/models/update-models/registry.d.ts +1 -0
- package/dist/models/update-models/registry.js +23 -3
- package/dist/models/update-models/types.d.ts +37 -9
- package/dist/profiling/index.d.ts +49 -0
- package/dist/profiling/index.js +49 -0
- package/dist/schemas/cancel.d.ts +6 -2
- package/dist/schemas/cancel.js +14 -7
- package/dist/schemas/common.d.ts +354 -271
- package/dist/schemas/common.js +26 -5
- package/dist/schemas/completion-event.d.ts +225 -0
- package/dist/schemas/completion-event.js +79 -0
- package/dist/schemas/completion-stream.d.ts +126 -31
- package/dist/schemas/completion-stream.js +138 -36
- package/dist/schemas/delegate.d.ts +0 -2
- package/dist/schemas/delegate.js +25 -6
- package/dist/schemas/download-asset.d.ts +5 -5
- package/dist/schemas/embed.js +21 -9
- package/dist/schemas/engine-addon-map.d.ts +11 -1
- package/dist/schemas/engine-addon-map.js +2 -2
- package/dist/schemas/get-loaded-model-info.d.ts +52 -0
- package/dist/schemas/get-loaded-model-info.js +44 -0
- package/dist/schemas/get-model-info.d.ts +2 -2
- package/dist/schemas/get-model-info.js +103 -32
- package/dist/schemas/heartbeat.d.ts +0 -1
- package/dist/schemas/index.d.ts +4 -1
- package/dist/schemas/index.js +4 -1
- package/dist/schemas/llamacpp-config.d.ts +14 -4
- package/dist/schemas/llamacpp-config.js +5 -0
- package/dist/schemas/load-model.d.ts +3233 -1260
- package/dist/schemas/load-model.js +23 -16
- package/dist/schemas/model-src-utils.d.ts +7 -6
- package/dist/schemas/model-src-utils.js +27 -1
- package/dist/schemas/model-types.d.ts +4 -4
- package/dist/schemas/ocr.d.ts +1 -1
- package/dist/schemas/plugin.d.ts +27 -3
- package/dist/schemas/plugin.js +27 -2
- package/dist/schemas/profiling.js +11 -3
- package/dist/schemas/provide.d.ts +1 -3
- package/dist/schemas/provide.js +0 -3
- package/dist/schemas/rag.d.ts +4 -4
- package/dist/schemas/registry.d.ts +10 -10
- package/dist/schemas/registry.js +36 -14
- package/dist/schemas/reload-config.d.ts +73 -7
- package/dist/schemas/sdcpp-config.d.ts +16 -8
- package/dist/schemas/sdcpp-config.js +118 -25
- package/dist/schemas/sdk-config.d.ts +116 -90
- package/dist/schemas/sdk-config.js +16 -0
- package/dist/schemas/sdk-errors-client.d.ts +3 -0
- package/dist/schemas/sdk-errors-client.js +16 -1
- package/dist/schemas/sdk-errors-server.d.ts +3 -0
- package/dist/schemas/sdk-errors-server.js +23 -0
- package/dist/schemas/state.d.ts +23 -0
- package/dist/schemas/state.js +14 -0
- package/dist/schemas/stop-provide.d.ts +0 -5
- package/dist/schemas/stop-provide.js +2 -6
- package/dist/schemas/text-to-speech.d.ts +93 -27
- package/dist/schemas/text-to-speech.js +27 -0
- package/dist/schemas/tools.d.ts +16 -0
- package/dist/schemas/tools.js +15 -0
- package/dist/schemas/transcription-config.d.ts +8 -8
- package/dist/schemas/transcription.d.ts +33 -0
- package/dist/schemas/transcription.js +9 -0
- package/dist/schemas/translate.js +59 -19
- package/dist/schemas/translation-config.d.ts +157 -133
- package/dist/schemas/translation-config.js +34 -11
- package/dist/server/bare/delegate-rpc-client.d.ts +1 -1
- package/dist/server/bare/delegate-rpc-client.js +131 -122
- package/dist/server/bare/hyperswarm.d.ts +2 -2
- package/dist/server/bare/hyperswarm.js +12 -7
- package/dist/server/bare/ops/cancel.js +7 -0
- package/dist/server/bare/ops/kv-cache-utils.d.ts +7 -10
- package/dist/server/bare/ops/kv-cache-utils.js +31 -40
- package/dist/server/bare/ops/load-model.js +0 -1
- package/dist/server/bare/ops/transcribe.d.ts +11 -4
- package/dist/server/bare/ops/transcribe.js +25 -4
- package/dist/server/bare/ops/translate.js +42 -4
- package/dist/server/bare/ops/unload-model.js +21 -19
- package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.js +1 -2
- package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stream.d.ts +13 -8
- package/dist/server/bare/plugins/llamacpp-completion/ops/completion-stream.js +257 -85
- package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-state.d.ts +101 -0
- package/dist/server/bare/plugins/llamacpp-completion/ops/kv-cache-state.js +135 -0
- package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +80 -22
- package/dist/server/bare/plugins/llamacpp-completion/plugin.js +57 -32
- package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +10 -16
- package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +69 -44
- package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +54 -116
- package/dist/server/bare/plugins/nmtcpp-translation/resolve-vocab.d.ts +32 -0
- package/dist/server/bare/plugins/nmtcpp-translation/resolve-vocab.js +117 -0
- package/dist/server/bare/plugins/onnx-ocr/plugin.d.ts +1 -1
- package/dist/server/bare/plugins/onnx-ocr/plugin.js +1 -2
- package/dist/server/bare/plugins/onnx-tts/ops/text-to-speech-stream.d.ts +7 -0
- package/dist/server/bare/plugins/onnx-tts/ops/text-to-speech-stream.js +116 -0
- package/dist/server/bare/plugins/onnx-tts/ops/text-to-speech.d.ts +2 -3
- package/dist/server/bare/plugins/onnx-tts/ops/text-to-speech.js +71 -9
- package/dist/server/bare/plugins/onnx-tts/plugin.d.ts +41 -13
- package/dist/server/bare/plugins/onnx-tts/plugin.js +48 -3
- package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +15 -7
- package/dist/server/bare/plugins/parakeet-transcription/plugin.js +5 -6
- package/dist/server/bare/plugins/sdcpp-generation/ops/diffusion.js +6 -0
- package/dist/server/bare/plugins/sdcpp-generation/plugin.d.ts +8 -5
- package/dist/server/bare/plugins/sdcpp-generation/plugin.js +13 -13
- package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +17 -1
- package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +40 -17
- package/dist/server/bare/registry/config-registry.js +14 -3
- package/dist/server/bare/registry/model-registry.d.ts +8 -10
- package/dist/server/bare/registry/model-registry.js +17 -12
- package/dist/server/bare/registry/registry-client.js +79 -19
- package/dist/server/bare/runtime-lifecycle.d.ts +2 -1
- package/dist/server/bare/runtime-lifecycle.js +13 -2
- package/dist/server/bare/types/addon-responses.d.ts +8 -3
- package/dist/server/bare/utils/transcribe-metadata.d.ts +21 -0
- package/dist/server/bare/utils/transcribe-metadata.js +28 -0
- package/dist/server/bare/utils/tts-stats.d.ts +22 -0
- package/dist/server/bare/utils/tts-stats.js +10 -0
- package/dist/server/rpc/create-server.d.ts +4 -1
- package/dist/server/rpc/create-server.js +5 -1
- package/dist/server/rpc/delegate-transport.js +36 -29
- package/dist/server/rpc/handle-request.js +28 -3
- package/dist/server/rpc/handler-registry.js +7 -1
- package/dist/server/rpc/handler-utils.d.ts +5 -0
- package/dist/server/rpc/handler-utils.js +22 -0
- package/dist/server/rpc/handlers/cancel-delegated.js +3 -5
- package/dist/server/rpc/handlers/cancelHandler.js +4 -5
- package/dist/server/rpc/handlers/completion-stream-delegated.js +14 -5
- package/dist/server/rpc/handlers/delete-cache.js +8 -3
- package/dist/server/rpc/handlers/download-asset.js +3 -24
- package/dist/server/rpc/handlers/get-loaded-model-info.d.ts +3 -0
- package/dist/server/rpc/handlers/get-loaded-model-info.js +39 -0
- package/dist/server/rpc/handlers/get-model-info.js +93 -84
- package/dist/server/rpc/handlers/heartbeat-delegated.js +2 -2
- package/dist/server/rpc/handlers/index.d.ts +6 -0
- package/dist/server/rpc/handlers/index.js +6 -0
- package/dist/server/rpc/handlers/load-model/download-manager.d.ts +35 -9
- package/dist/server/rpc/handlers/load-model/download-manager.js +142 -38
- package/dist/server/rpc/handlers/load-model/download-stats.d.ts +5 -4
- package/dist/server/rpc/handlers/load-model/download-stats.js +49 -8
- package/dist/server/rpc/handlers/load-model/handler.js +31 -50
- package/dist/server/rpc/handlers/load-model/http.d.ts +2 -2
- package/dist/server/rpc/handlers/load-model/http.js +97 -142
- package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +2 -2
- package/dist/server/rpc/handlers/load-model/hyperdrive.js +55 -74
- package/dist/server/rpc/handlers/load-model/index.d.ts +0 -1
- package/dist/server/rpc/handlers/load-model/index.js +0 -1
- package/dist/server/rpc/handlers/load-model/registry-client-options.d.ts +27 -0
- package/dist/server/rpc/handlers/load-model/registry-client-options.js +19 -0
- package/dist/server/rpc/handlers/load-model/registry-companion-set.d.ts +22 -0
- package/dist/server/rpc/handlers/load-model/registry-companion-set.js +208 -0
- package/dist/server/rpc/handlers/load-model/registry-download-utils.d.ts +24 -0
- package/dist/server/rpc/handlers/load-model/registry-download-utils.js +114 -0
- package/dist/server/rpc/handlers/load-model/registry.d.ts +2 -20
- package/dist/server/rpc/handlers/load-model/registry.js +109 -381
- package/dist/server/rpc/handlers/load-model/resolve-session.d.ts +15 -0
- package/dist/server/rpc/handlers/load-model/resolve-session.js +61 -0
- package/dist/server/rpc/handlers/load-model/resolve.d.ts +3 -3
- package/dist/server/rpc/handlers/load-model/resolve.js +14 -23
- package/dist/server/rpc/handlers/load-model/types.d.ts +11 -4
- package/dist/server/rpc/handlers/load-model/types.js +28 -1
- package/dist/server/rpc/handlers/load-model-delegated.js +2 -4
- package/dist/server/rpc/handlers/plugin-dispatch.js +9 -5
- package/dist/server/rpc/handlers/plugin-invoke.js +1 -1
- package/dist/server/rpc/handlers/provideHandler/connection.js +13 -2
- package/dist/server/rpc/handlers/provideHandler/handler.js +42 -29
- package/dist/server/rpc/handlers/state.d.ts +3 -0
- package/dist/server/rpc/handlers/state.js +7 -0
- package/dist/server/rpc/handlers/stopProvideHandler.d.ts +2 -2
- package/dist/server/rpc/handlers/stopProvideHandler.js +12 -7
- package/dist/server/rpc/handlers/text-to-speech-stream.d.ts +3 -0
- package/dist/server/rpc/handlers/text-to-speech-stream.js +4 -0
- package/dist/server/rpc/handlers/unload-model-delegated.js +3 -3
- package/dist/server/rpc/profiling/operation-metrics.js +20 -0
- package/dist/server/rpc/rpc-utils.js +1 -1
- package/dist/server/rpc/transport-selector.d.ts +3 -0
- package/dist/server/rpc/transport-selector.js +18 -0
- package/dist/server/utils/cache/auto-history.d.ts +4 -0
- package/dist/server/utils/cache/auto-history.js +22 -0
- package/dist/server/utils/{cache.d.ts → cache/paths.d.ts} +22 -5
- package/dist/server/utils/{cache.js → cache/paths.js} +36 -20
- package/dist/server/utils/cache/types.d.ts +8 -0
- package/dist/server/utils/cache/types.js +1 -0
- package/dist/server/utils/checksum.d.ts +2 -2
- package/dist/server/utils/checksum.js +1 -1
- package/dist/server/utils/clear-storage.d.ts +5 -0
- package/dist/server/utils/clear-storage.js +17 -0
- package/dist/server/utils/completion-normalizer.d.ts +17 -0
- package/dist/server/utils/completion-normalizer.js +413 -0
- package/dist/server/utils/expand-gguf-shards.d.ts +3 -0
- package/dist/server/utils/expand-gguf-shards.js +22 -0
- package/dist/server/utils/formatting.js +1 -1
- package/dist/server/utils/index.d.ts +4 -2
- package/dist/server/utils/index.js +4 -2
- package/dist/server/utils/qvac-paths.d.ts +2 -0
- package/dist/server/utils/qvac-paths.js +5 -0
- package/dist/server/utils/response-format.d.ts +3 -0
- package/dist/server/utils/response-format.js +20 -0
- package/dist/server/utils/tool-integration.d.ts +15 -4
- package/dist/server/utils/tool-integration.js +21 -41
- package/dist/server/utils/tools/dialect.d.ts +8 -0
- package/dist/server/utils/tools/dialect.js +14 -0
- package/dist/server/utils/tools/index.d.ts +3 -0
- package/dist/server/utils/tools/index.js +2 -0
- package/dist/server/utils/tools/parser.d.ts +6 -0
- package/dist/server/utils/tools/parser.js +46 -0
- package/dist/server/utils/tools/parsers/harmony.d.ts +4 -0
- package/dist/server/utils/tools/parsers/harmony.js +59 -0
- package/dist/server/utils/tools/parsers/hermes.d.ts +4 -0
- package/dist/server/utils/tools/parsers/hermes.js +100 -0
- package/dist/server/utils/tools/parsers/json.d.ts +6 -0
- package/dist/server/utils/tools/parsers/json.js +115 -0
- package/dist/server/utils/tools/parsers/pythonic.d.ts +4 -0
- package/dist/server/utils/tools/parsers/pythonic.js +267 -0
- package/dist/server/utils/tools/shared.d.ts +18 -0
- package/dist/server/utils/tools/shared.js +54 -0
- package/dist/server/utils/worker-lock.d.ts +3 -0
- package/dist/server/utils/worker-lock.js +67 -0
- package/dist/server/worker-core.d.ts +16 -1
- package/dist/server/worker-core.js +114 -14
- package/dist/utils/aggregate-events.d.ts +16 -0
- package/dist/utils/aggregate-events.js +52 -0
- package/dist/utils/cache-normalize.d.ts +10 -0
- package/dist/utils/cache-normalize.js +23 -0
- package/dist/utils/encoding.d.ts +8 -0
- package/dist/utils/encoding.js +13 -0
- package/dist/utils/errors-client.d.ts +12 -0
- package/dist/utils/errors-client.js +20 -0
- package/dist/utils/errors-server.d.ts +14 -0
- package/dist/utils/errors-server.js +31 -0
- package/dist/utils/load-model-validation.d.ts +7 -0
- package/dist/utils/load-model-validation.js +18 -0
- package/expo/plugins/patches/android-link.mjs +1 -1
- package/expo/plugins/patches/ios-link.mjs +1 -1
- package/package.json +14 -18
- package/dist/examples/translation/translation-opus.d.ts +0 -2
- package/dist/examples/translation/translation-opus.js +0 -33
- package/dist/server/bare/utils/loader-adapter.d.ts +0 -7
- package/dist/server/bare/utils/loader-adapter.js +0 -9
- package/dist/server/utils/model-path.d.ts +0 -5
- package/dist/server/utils/model-path.js +0 -7
- package/dist/server/utils/tool-parser.d.ts +0 -7
- package/dist/server/utils/tool-parser.js +0 -248
- /package/dist/examples/{llamacpp-native-tools.d.ts → tools/llamacpp-native-tools.d.ts} +0 -0
|
@@ -45,6 +45,7 @@ export declare const parakeetPlugin: {
|
|
|
45
45
|
expectedSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
46
46
|
sha256Checksum: import("zod").ZodOptional<import("zod").ZodString>;
|
|
47
47
|
addon: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
48
|
+
embeddings: "embeddings";
|
|
48
49
|
"llamacpp-completion": "llamacpp-completion";
|
|
49
50
|
"whispercpp-transcription": "whispercpp-transcription";
|
|
50
51
|
"llamacpp-embedding": "llamacpp-embedding";
|
|
@@ -55,7 +56,6 @@ export declare const parakeetPlugin: {
|
|
|
55
56
|
"sdcpp-generation": "sdcpp-generation";
|
|
56
57
|
llm: "llm";
|
|
57
58
|
whisper: "whisper";
|
|
58
|
-
embeddings: "embeddings";
|
|
59
59
|
nmt: "nmt";
|
|
60
60
|
parakeet: "parakeet";
|
|
61
61
|
tts: "tts";
|
|
@@ -75,6 +75,7 @@ export declare const parakeetPlugin: {
|
|
|
75
75
|
expectedSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
76
76
|
sha256Checksum: import("zod").ZodOptional<import("zod").ZodString>;
|
|
77
77
|
addon: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
78
|
+
embeddings: "embeddings";
|
|
78
79
|
"llamacpp-completion": "llamacpp-completion";
|
|
79
80
|
"whispercpp-transcription": "whispercpp-transcription";
|
|
80
81
|
"llamacpp-embedding": "llamacpp-embedding";
|
|
@@ -85,7 +86,6 @@ export declare const parakeetPlugin: {
|
|
|
85
86
|
"sdcpp-generation": "sdcpp-generation";
|
|
86
87
|
llm: "llm";
|
|
87
88
|
whisper: "whisper";
|
|
88
|
-
embeddings: "embeddings";
|
|
89
89
|
nmt: "nmt";
|
|
90
90
|
parakeet: "parakeet";
|
|
91
91
|
tts: "tts";
|
|
@@ -105,6 +105,7 @@ export declare const parakeetPlugin: {
|
|
|
105
105
|
expectedSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
106
106
|
sha256Checksum: import("zod").ZodOptional<import("zod").ZodString>;
|
|
107
107
|
addon: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
108
|
+
embeddings: "embeddings";
|
|
108
109
|
"llamacpp-completion": "llamacpp-completion";
|
|
109
110
|
"whispercpp-transcription": "whispercpp-transcription";
|
|
110
111
|
"llamacpp-embedding": "llamacpp-embedding";
|
|
@@ -115,7 +116,6 @@ export declare const parakeetPlugin: {
|
|
|
115
116
|
"sdcpp-generation": "sdcpp-generation";
|
|
116
117
|
llm: "llm";
|
|
117
118
|
whisper: "whisper";
|
|
118
|
-
embeddings: "embeddings";
|
|
119
119
|
nmt: "nmt";
|
|
120
120
|
parakeet: "parakeet";
|
|
121
121
|
tts: "tts";
|
|
@@ -135,6 +135,7 @@ export declare const parakeetPlugin: {
|
|
|
135
135
|
expectedSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
136
136
|
sha256Checksum: import("zod").ZodOptional<import("zod").ZodString>;
|
|
137
137
|
addon: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
138
|
+
embeddings: "embeddings";
|
|
138
139
|
"llamacpp-completion": "llamacpp-completion";
|
|
139
140
|
"whispercpp-transcription": "whispercpp-transcription";
|
|
140
141
|
"llamacpp-embedding": "llamacpp-embedding";
|
|
@@ -145,7 +146,6 @@ export declare const parakeetPlugin: {
|
|
|
145
146
|
"sdcpp-generation": "sdcpp-generation";
|
|
146
147
|
llm: "llm";
|
|
147
148
|
whisper: "whisper";
|
|
148
|
-
embeddings: "embeddings";
|
|
149
149
|
nmt: "nmt";
|
|
150
150
|
parakeet: "parakeet";
|
|
151
151
|
tts: "tts";
|
|
@@ -165,6 +165,7 @@ export declare const parakeetPlugin: {
|
|
|
165
165
|
expectedSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
166
166
|
sha256Checksum: import("zod").ZodOptional<import("zod").ZodString>;
|
|
167
167
|
addon: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
168
|
+
embeddings: "embeddings";
|
|
168
169
|
"llamacpp-completion": "llamacpp-completion";
|
|
169
170
|
"whispercpp-transcription": "whispercpp-transcription";
|
|
170
171
|
"llamacpp-embedding": "llamacpp-embedding";
|
|
@@ -175,7 +176,6 @@ export declare const parakeetPlugin: {
|
|
|
175
176
|
"sdcpp-generation": "sdcpp-generation";
|
|
176
177
|
llm: "llm";
|
|
177
178
|
whisper: "whisper";
|
|
178
|
-
embeddings: "embeddings";
|
|
179
179
|
nmt: "nmt";
|
|
180
180
|
parakeet: "parakeet";
|
|
181
181
|
tts: "tts";
|
|
@@ -195,6 +195,7 @@ export declare const parakeetPlugin: {
|
|
|
195
195
|
expectedSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
196
196
|
sha256Checksum: import("zod").ZodOptional<import("zod").ZodString>;
|
|
197
197
|
addon: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
198
|
+
embeddings: "embeddings";
|
|
198
199
|
"llamacpp-completion": "llamacpp-completion";
|
|
199
200
|
"whispercpp-transcription": "whispercpp-transcription";
|
|
200
201
|
"llamacpp-embedding": "llamacpp-embedding";
|
|
@@ -205,7 +206,6 @@ export declare const parakeetPlugin: {
|
|
|
205
206
|
"sdcpp-generation": "sdcpp-generation";
|
|
206
207
|
llm: "llm";
|
|
207
208
|
whisper: "whisper";
|
|
208
|
-
embeddings: "embeddings";
|
|
209
209
|
nmt: "nmt";
|
|
210
210
|
parakeet: "parakeet";
|
|
211
211
|
tts: "tts";
|
|
@@ -225,6 +225,7 @@ export declare const parakeetPlugin: {
|
|
|
225
225
|
expectedSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
226
226
|
sha256Checksum: import("zod").ZodOptional<import("zod").ZodString>;
|
|
227
227
|
addon: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
228
|
+
embeddings: "embeddings";
|
|
228
229
|
"llamacpp-completion": "llamacpp-completion";
|
|
229
230
|
"whispercpp-transcription": "whispercpp-transcription";
|
|
230
231
|
"llamacpp-embedding": "llamacpp-embedding";
|
|
@@ -235,7 +236,6 @@ export declare const parakeetPlugin: {
|
|
|
235
236
|
"sdcpp-generation": "sdcpp-generation";
|
|
236
237
|
llm: "llm";
|
|
237
238
|
whisper: "whisper";
|
|
238
|
-
embeddings: "embeddings";
|
|
239
239
|
nmt: "nmt";
|
|
240
240
|
parakeet: "parakeet";
|
|
241
241
|
tts: "tts";
|
|
@@ -251,6 +251,7 @@ export declare const parakeetPlugin: {
|
|
|
251
251
|
transcribe: import("../../../../schemas/index").PluginHandlerDefinition<import("zod").ZodObject<{
|
|
252
252
|
modelId: import("zod").ZodString;
|
|
253
253
|
prompt: import("zod").ZodOptional<import("zod").ZodString>;
|
|
254
|
+
metadata: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
254
255
|
audioChunk: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
255
256
|
type: import("zod").ZodLiteral<"base64">;
|
|
256
257
|
value: import("zod").ZodString;
|
|
@@ -275,6 +276,13 @@ export declare const parakeetPlugin: {
|
|
|
275
276
|
melSpecTime: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
276
277
|
}, import("zod/v4/core").$strip>>;
|
|
277
278
|
error: import("zod").ZodOptional<import("zod").ZodString>;
|
|
279
|
+
segment: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
280
|
+
text: import("zod").ZodString;
|
|
281
|
+
startMs: import("zod").ZodNumber;
|
|
282
|
+
endMs: import("zod").ZodNumber;
|
|
283
|
+
append: import("zod").ZodBoolean;
|
|
284
|
+
id: import("zod").ZodNumber;
|
|
285
|
+
}, import("zod/v4/core").$strip>>;
|
|
278
286
|
type: import("zod").ZodLiteral<"transcribe">;
|
|
279
287
|
}, import("zod/v4/core").$strip>>;
|
|
280
288
|
};
|
|
@@ -2,9 +2,7 @@ import parakeetAddonLogging from "@qvac/transcription-parakeet/addonLogging.js";
|
|
|
2
2
|
import TranscriptionParakeet, {} from "@qvac/transcription-parakeet";
|
|
3
3
|
import { definePlugin, defineHandler, transcribeRequestSchema, transcribeResponseSchema, ModelType, parakeetConfigSchema, ADDON_PARAKEET, } from "../../../../schemas/index.js";
|
|
4
4
|
import { createStreamLogger, registerAddonLogger } from "../../../../logging/index.js";
|
|
5
|
-
import {
|
|
6
|
-
import { ModelLoadFailedError, ParakeetArtifactsRequiredError, } from "../../../../utils/errors-server.js";
|
|
7
|
-
import FilesystemDL from "@qvac/dl-filesystem";
|
|
5
|
+
import { ModelLoadFailedError, ParakeetArtifactsRequiredError, TranscriptionFailedError, } from "../../../../utils/errors-server.js";
|
|
8
6
|
import { transcribe } from "../../ops/transcribe.js";
|
|
9
7
|
import { attachModelExecutionMs } from "../../../../profiling/model-execution.js";
|
|
10
8
|
async function resolveTdtConfig(cfg, ctx) {
|
|
@@ -76,8 +74,6 @@ function createParakeetModel(params, primaryFileKey) {
|
|
|
76
74
|
if (!primaryPath) {
|
|
77
75
|
throw new ModelLoadFailedError(`Parakeet ${modelType} requires a model source`);
|
|
78
76
|
}
|
|
79
|
-
const { dirPath } = parseModelPath(primaryPath);
|
|
80
|
-
const loader = new FilesystemDL({ dirPath });
|
|
81
77
|
const logger = createStreamLogger(params.modelId, ModelType.parakeetTranscription);
|
|
82
78
|
registerAddonLogger(params.modelId, ModelType.parakeetTranscription, logger);
|
|
83
79
|
const files = {
|
|
@@ -101,7 +97,7 @@ function createParakeetModel(params, primaryFileKey) {
|
|
|
101
97
|
config: addonConfig,
|
|
102
98
|
logger,
|
|
103
99
|
});
|
|
104
|
-
return { model
|
|
100
|
+
return { model };
|
|
105
101
|
}
|
|
106
102
|
export const parakeetPlugin = definePlugin({
|
|
107
103
|
modelType: ModelType.parakeetTranscription,
|
|
@@ -131,6 +127,9 @@ export const parakeetPlugin = definePlugin({
|
|
|
131
127
|
responseSchema: transcribeResponseSchema,
|
|
132
128
|
streaming: true,
|
|
133
129
|
handler: async function* (request) {
|
|
130
|
+
if (request.metadata === true) {
|
|
131
|
+
throw new TranscriptionFailedError(`Parakeet transcription does not support metadata: true; only the whisper engine emits per-segment metadata. Use a whisper model to receive segments.`);
|
|
132
|
+
}
|
|
134
133
|
const stream = transcribe({
|
|
135
134
|
modelId: request.modelId,
|
|
136
135
|
audioChunk: request.audioChunk,
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { getModel } from "../../../registry/model-registry.js";
|
|
2
2
|
export async function* diffusion(request) {
|
|
3
3
|
const model = getModel(request.modelId);
|
|
4
|
+
const init_image = request.init_image
|
|
5
|
+
? Buffer.from(request.init_image, "base64")
|
|
6
|
+
: undefined;
|
|
4
7
|
const response = await model.run({
|
|
5
8
|
prompt: request.prompt,
|
|
6
9
|
negative_prompt: request.negative_prompt,
|
|
@@ -8,6 +11,7 @@ export async function* diffusion(request) {
|
|
|
8
11
|
height: request.height,
|
|
9
12
|
steps: request.steps,
|
|
10
13
|
cfg_scale: request.cfg_scale,
|
|
14
|
+
img_cfg_scale: request.img_cfg_scale ?? -1,
|
|
11
15
|
guidance: request.guidance,
|
|
12
16
|
sampling_method: request.sampling_method,
|
|
13
17
|
scheduler: request.scheduler,
|
|
@@ -15,6 +19,8 @@ export async function* diffusion(request) {
|
|
|
15
19
|
batch_count: request.batch_count,
|
|
16
20
|
vae_tiling: request.vae_tiling,
|
|
17
21
|
cache_preset: request.cache_preset,
|
|
22
|
+
init_image,
|
|
23
|
+
strength: request.strength,
|
|
18
24
|
});
|
|
19
25
|
let outputIndex = 0;
|
|
20
26
|
for await (const chunk of response.iterate()) {
|
|
@@ -62,6 +62,7 @@ export declare const diffusionPlugin: {
|
|
|
62
62
|
expectedSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
63
63
|
sha256Checksum: import("zod").ZodOptional<import("zod").ZodString>;
|
|
64
64
|
addon: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
65
|
+
embeddings: "embeddings";
|
|
65
66
|
"llamacpp-completion": "llamacpp-completion";
|
|
66
67
|
"whispercpp-transcription": "whispercpp-transcription";
|
|
67
68
|
"llamacpp-embedding": "llamacpp-embedding";
|
|
@@ -72,7 +73,6 @@ export declare const diffusionPlugin: {
|
|
|
72
73
|
"sdcpp-generation": "sdcpp-generation";
|
|
73
74
|
llm: "llm";
|
|
74
75
|
whisper: "whisper";
|
|
75
|
-
embeddings: "embeddings";
|
|
76
76
|
nmt: "nmt";
|
|
77
77
|
parakeet: "parakeet";
|
|
78
78
|
tts: "tts";
|
|
@@ -92,6 +92,7 @@ export declare const diffusionPlugin: {
|
|
|
92
92
|
expectedSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
93
93
|
sha256Checksum: import("zod").ZodOptional<import("zod").ZodString>;
|
|
94
94
|
addon: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
95
|
+
embeddings: "embeddings";
|
|
95
96
|
"llamacpp-completion": "llamacpp-completion";
|
|
96
97
|
"whispercpp-transcription": "whispercpp-transcription";
|
|
97
98
|
"llamacpp-embedding": "llamacpp-embedding";
|
|
@@ -102,7 +103,6 @@ export declare const diffusionPlugin: {
|
|
|
102
103
|
"sdcpp-generation": "sdcpp-generation";
|
|
103
104
|
llm: "llm";
|
|
104
105
|
whisper: "whisper";
|
|
105
|
-
embeddings: "embeddings";
|
|
106
106
|
nmt: "nmt";
|
|
107
107
|
parakeet: "parakeet";
|
|
108
108
|
tts: "tts";
|
|
@@ -122,6 +122,7 @@ export declare const diffusionPlugin: {
|
|
|
122
122
|
expectedSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
123
123
|
sha256Checksum: import("zod").ZodOptional<import("zod").ZodString>;
|
|
124
124
|
addon: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
125
|
+
embeddings: "embeddings";
|
|
125
126
|
"llamacpp-completion": "llamacpp-completion";
|
|
126
127
|
"whispercpp-transcription": "whispercpp-transcription";
|
|
127
128
|
"llamacpp-embedding": "llamacpp-embedding";
|
|
@@ -132,7 +133,6 @@ export declare const diffusionPlugin: {
|
|
|
132
133
|
"sdcpp-generation": "sdcpp-generation";
|
|
133
134
|
llm: "llm";
|
|
134
135
|
whisper: "whisper";
|
|
135
|
-
embeddings: "embeddings";
|
|
136
136
|
nmt: "nmt";
|
|
137
137
|
parakeet: "parakeet";
|
|
138
138
|
tts: "tts";
|
|
@@ -152,6 +152,7 @@ export declare const diffusionPlugin: {
|
|
|
152
152
|
expectedSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
153
153
|
sha256Checksum: import("zod").ZodOptional<import("zod").ZodString>;
|
|
154
154
|
addon: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
155
|
+
embeddings: "embeddings";
|
|
155
156
|
"llamacpp-completion": "llamacpp-completion";
|
|
156
157
|
"whispercpp-transcription": "whispercpp-transcription";
|
|
157
158
|
"llamacpp-embedding": "llamacpp-embedding";
|
|
@@ -162,7 +163,6 @@ export declare const diffusionPlugin: {
|
|
|
162
163
|
"sdcpp-generation": "sdcpp-generation";
|
|
163
164
|
llm: "llm";
|
|
164
165
|
whisper: "whisper";
|
|
165
|
-
embeddings: "embeddings";
|
|
166
166
|
nmt: "nmt";
|
|
167
167
|
parakeet: "parakeet";
|
|
168
168
|
tts: "tts";
|
|
@@ -182,6 +182,7 @@ export declare const diffusionPlugin: {
|
|
|
182
182
|
expectedSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
183
183
|
sha256Checksum: import("zod").ZodOptional<import("zod").ZodString>;
|
|
184
184
|
addon: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
185
|
+
embeddings: "embeddings";
|
|
185
186
|
"llamacpp-completion": "llamacpp-completion";
|
|
186
187
|
"whispercpp-transcription": "whispercpp-transcription";
|
|
187
188
|
"llamacpp-embedding": "llamacpp-embedding";
|
|
@@ -192,7 +193,6 @@ export declare const diffusionPlugin: {
|
|
|
192
193
|
"sdcpp-generation": "sdcpp-generation";
|
|
193
194
|
llm: "llm";
|
|
194
195
|
whisper: "whisper";
|
|
195
|
-
embeddings: "embeddings";
|
|
196
196
|
nmt: "nmt";
|
|
197
197
|
parakeet: "parakeet";
|
|
198
198
|
tts: "tts";
|
|
@@ -212,6 +212,7 @@ export declare const diffusionPlugin: {
|
|
|
212
212
|
height: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
213
213
|
steps: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
214
214
|
cfg_scale: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
215
|
+
img_cfg_scale: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
215
216
|
guidance: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
216
217
|
sampling_method: import("zod").ZodOptional<import("zod").ZodEnum<{
|
|
217
218
|
euler: "euler";
|
|
@@ -246,6 +247,8 @@ export declare const diffusionPlugin: {
|
|
|
246
247
|
batch_count: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
247
248
|
vae_tiling: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
248
249
|
cache_preset: import("zod").ZodOptional<import("zod").ZodString>;
|
|
250
|
+
init_image: import("zod").ZodOptional<import("zod").ZodString>;
|
|
251
|
+
strength: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
249
252
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
250
253
|
type: import("zod").ZodLiteral<"diffusionStream">;
|
|
251
254
|
step: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
@@ -2,7 +2,6 @@ import ImgStableDiffusion, {} from "@qvac/diffusion-cpp";
|
|
|
2
2
|
import addonLogging from "@qvac/diffusion-cpp/addonLogging.js";
|
|
3
3
|
import { definePlugin, defineHandler, sdcppConfigSchema, diffusionRequestSchema, diffusionStreamResponseSchema, ModelType, ADDON_DIFFUSION, } from "../../../../schemas/index.js";
|
|
4
4
|
import { createStreamLogger, registerAddonLogger } from "../../../../logging/index.js";
|
|
5
|
-
import { parseModelPath } from "../../../utils/index.js";
|
|
6
5
|
import { diffusion } from "./ops/diffusion.js";
|
|
7
6
|
export const diffusionPlugin = definePlugin({
|
|
8
7
|
modelType: ModelType.sdcppGeneration,
|
|
@@ -38,22 +37,23 @@ export const diffusionPlugin = definePlugin({
|
|
|
38
37
|
createModel(params) {
|
|
39
38
|
const { modelId, modelPath, modelConfig, artifacts } = params;
|
|
40
39
|
const config = (modelConfig ?? {});
|
|
41
|
-
const { dirPath, basePath } = parseModelPath(modelPath);
|
|
42
40
|
const logger = createStreamLogger(modelId, ModelType.sdcppGeneration);
|
|
43
41
|
registerAddonLogger(modelId, ModelType.sdcppGeneration, logger);
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
42
|
+
const files = {
|
|
43
|
+
model: modelPath,
|
|
44
|
+
...(artifacts?.["clipLModelPath"] && { clipL: artifacts["clipLModelPath"] }),
|
|
45
|
+
...(artifacts?.["clipGModelPath"] && { clipG: artifacts["clipGModelPath"] }),
|
|
46
|
+
...(artifacts?.["t5XxlModelPath"] && { t5Xxl: artifacts["t5XxlModelPath"] }),
|
|
47
|
+
...(artifacts?.["llmModelPath"] && { llm: artifacts["llmModelPath"] }),
|
|
48
|
+
...(artifacts?.["vaeModelPath"] && { vae: artifacts["vaeModelPath"] }),
|
|
49
|
+
};
|
|
50
|
+
const model = new ImgStableDiffusion({
|
|
51
|
+
files,
|
|
52
|
+
config: config,
|
|
47
53
|
logger,
|
|
48
54
|
opts: { stats: true },
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
...(artifacts?.["t5XxlModelPath"] && { t5XxlModel: artifacts["t5XxlModelPath"] }),
|
|
52
|
-
...(artifacts?.["llmModelPath"] && { llmModel: artifacts["llmModelPath"] }),
|
|
53
|
-
...(artifacts?.["vaeModelPath"] && { vaeModel: artifacts["vaeModelPath"] }),
|
|
54
|
-
};
|
|
55
|
-
const model = new ImgStableDiffusion(addonArgs, config);
|
|
56
|
-
return { model, loader: undefined };
|
|
55
|
+
});
|
|
56
|
+
return { model };
|
|
57
57
|
},
|
|
58
58
|
handlers: {
|
|
59
59
|
diffusionStream: defineHandler({
|
|
@@ -75,6 +75,7 @@ export declare const whisperPlugin: {
|
|
|
75
75
|
expectedSize: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
76
76
|
sha256Checksum: import("zod").ZodOptional<import("zod").ZodString>;
|
|
77
77
|
addon: import("zod").ZodOptional<import("zod").ZodUnion<readonly [import("zod").ZodEnum<{
|
|
78
|
+
embeddings: "embeddings";
|
|
78
79
|
"llamacpp-completion": "llamacpp-completion";
|
|
79
80
|
"whispercpp-transcription": "whispercpp-transcription";
|
|
80
81
|
"llamacpp-embedding": "llamacpp-embedding";
|
|
@@ -85,7 +86,6 @@ export declare const whisperPlugin: {
|
|
|
85
86
|
"sdcpp-generation": "sdcpp-generation";
|
|
86
87
|
llm: "llm";
|
|
87
88
|
whisper: "whisper";
|
|
88
|
-
embeddings: "embeddings";
|
|
89
89
|
nmt: "nmt";
|
|
90
90
|
parakeet: "parakeet";
|
|
91
91
|
tts: "tts";
|
|
@@ -216,6 +216,7 @@ export declare const whisperPlugin: {
|
|
|
216
216
|
transcribe: import("../../../../schemas/index").PluginHandlerDefinition<import("zod").ZodObject<{
|
|
217
217
|
modelId: import("zod").ZodString;
|
|
218
218
|
prompt: import("zod").ZodOptional<import("zod").ZodString>;
|
|
219
|
+
metadata: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
219
220
|
audioChunk: import("zod").ZodDiscriminatedUnion<[import("zod").ZodObject<{
|
|
220
221
|
type: import("zod").ZodLiteral<"base64">;
|
|
221
222
|
value: import("zod").ZodString;
|
|
@@ -240,11 +241,19 @@ export declare const whisperPlugin: {
|
|
|
240
241
|
melSpecTime: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
241
242
|
}, import("zod/v4/core").$strip>>;
|
|
242
243
|
error: import("zod").ZodOptional<import("zod").ZodString>;
|
|
244
|
+
segment: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
245
|
+
text: import("zod").ZodString;
|
|
246
|
+
startMs: import("zod").ZodNumber;
|
|
247
|
+
endMs: import("zod").ZodNumber;
|
|
248
|
+
append: import("zod").ZodBoolean;
|
|
249
|
+
id: import("zod").ZodNumber;
|
|
250
|
+
}, import("zod/v4/core").$strip>>;
|
|
243
251
|
type: import("zod").ZodLiteral<"transcribe">;
|
|
244
252
|
}, import("zod/v4/core").$strip>>;
|
|
245
253
|
transcribeStream: import("../../../../schemas/index").PluginHandlerDefinition<import("zod").ZodObject<{
|
|
246
254
|
modelId: import("zod").ZodString;
|
|
247
255
|
prompt: import("zod").ZodOptional<import("zod").ZodString>;
|
|
256
|
+
metadata: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
248
257
|
type: import("zod").ZodLiteral<"transcribeStream">;
|
|
249
258
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
250
259
|
text: import("zod").ZodOptional<import("zod").ZodString>;
|
|
@@ -262,6 +271,13 @@ export declare const whisperPlugin: {
|
|
|
262
271
|
melSpecTime: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
263
272
|
}, import("zod/v4/core").$strip>>;
|
|
264
273
|
error: import("zod").ZodOptional<import("zod").ZodString>;
|
|
274
|
+
segment: import("zod").ZodOptional<import("zod").ZodObject<{
|
|
275
|
+
text: import("zod").ZodString;
|
|
276
|
+
startMs: import("zod").ZodNumber;
|
|
277
|
+
endMs: import("zod").ZodNumber;
|
|
278
|
+
append: import("zod").ZodBoolean;
|
|
279
|
+
id: import("zod").ZodNumber;
|
|
280
|
+
}, import("zod/v4/core").$strip>>;
|
|
265
281
|
type: import("zod").ZodLiteral<"transcribeStream">;
|
|
266
282
|
}, import("zod/v4/core").$strip>>;
|
|
267
283
|
};
|
|
@@ -24,7 +24,7 @@ function createWhisperModel(modelId, modelPath, whisperConfig, vadModelPath) {
|
|
|
24
24
|
...(miscConfig && { miscConfig }),
|
|
25
25
|
};
|
|
26
26
|
const model = new TranscriptionWhispercpp(args, config);
|
|
27
|
-
return { model
|
|
27
|
+
return { model };
|
|
28
28
|
}
|
|
29
29
|
export const whisperPlugin = definePlugin({
|
|
30
30
|
modelType: ModelType.whispercppTranscription,
|
|
@@ -44,8 +44,8 @@ export const whisperPlugin = definePlugin({
|
|
|
44
44
|
},
|
|
45
45
|
createModel(params) {
|
|
46
46
|
const whisperConfig = (params.modelConfig ?? {});
|
|
47
|
-
const { model
|
|
48
|
-
return { model
|
|
47
|
+
const { model } = createWhisperModel(params.modelId, params.modelPath, whisperConfig, params.artifacts?.["vadModelPath"]);
|
|
48
|
+
return { model };
|
|
49
49
|
},
|
|
50
50
|
handlers: {
|
|
51
51
|
transcribe: defineHandler({
|
|
@@ -53,18 +53,31 @@ export const whisperPlugin = definePlugin({
|
|
|
53
53
|
responseSchema: transcribeResponseSchema,
|
|
54
54
|
streaming: true,
|
|
55
55
|
handler: async function* (request) {
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
56
|
+
const metadata = request.metadata === true;
|
|
57
|
+
const stream = metadata
|
|
58
|
+
? transcribe({
|
|
59
|
+
modelId: request.modelId,
|
|
60
|
+
audioChunk: request.audioChunk,
|
|
61
|
+
prompt: request.prompt,
|
|
62
|
+
metadata: true,
|
|
63
|
+
})
|
|
64
|
+
: transcribe({
|
|
65
|
+
modelId: request.modelId,
|
|
66
|
+
audioChunk: request.audioChunk,
|
|
67
|
+
prompt: request.prompt,
|
|
68
|
+
});
|
|
61
69
|
try {
|
|
62
70
|
let result = await stream.next();
|
|
63
71
|
while (!result.done) {
|
|
64
|
-
yield
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
72
|
+
yield metadata
|
|
73
|
+
? {
|
|
74
|
+
type: "transcribe",
|
|
75
|
+
segment: result.value,
|
|
76
|
+
}
|
|
77
|
+
: {
|
|
78
|
+
type: "transcribe",
|
|
79
|
+
text: result.value,
|
|
80
|
+
};
|
|
68
81
|
result = await stream.next();
|
|
69
82
|
}
|
|
70
83
|
const { modelExecutionMs, stats } = result.value;
|
|
@@ -86,11 +99,21 @@ export const whisperPlugin = definePlugin({
|
|
|
86
99
|
streaming: true,
|
|
87
100
|
duplex: true,
|
|
88
101
|
handler: async function* (request, inputStream) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
102
|
+
if (request.metadata === true) {
|
|
103
|
+
for await (const segment of transcribeStream(request.modelId, inputStream, request.prompt, true)) {
|
|
104
|
+
yield {
|
|
105
|
+
type: "transcribeStream",
|
|
106
|
+
segment,
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
for await (const text of transcribeStream(request.modelId, inputStream, request.prompt)) {
|
|
112
|
+
yield {
|
|
113
|
+
type: "transcribeStream",
|
|
114
|
+
text,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
94
117
|
}
|
|
95
118
|
yield {
|
|
96
119
|
type: "transcribeStream",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import fs from "bare-fs";
|
|
2
2
|
import path from "bare-path";
|
|
3
|
-
import {
|
|
3
|
+
import { getQvacPath } from "../../utils/qvac-paths.js";
|
|
4
4
|
import { CacheDirNotAbsoluteError, CacheDirNotWritableError, ConfigAlreadySetError, } from "../../../utils/errors-server.js";
|
|
5
5
|
import { getServerLogger, setGlobalConsoleOutput, setGlobalLogLevel, } from "../../../logging/index.js";
|
|
6
6
|
const logger = getServerLogger();
|
|
@@ -10,6 +10,8 @@ const configRegistry = {
|
|
|
10
10
|
loggerLevel: undefined,
|
|
11
11
|
loggerConsoleOutput: undefined,
|
|
12
12
|
httpDownloadConcurrency: undefined,
|
|
13
|
+
registryDownloadMaxRetries: undefined,
|
|
14
|
+
registryStreamTimeoutMs: undefined,
|
|
13
15
|
deviceDefaults: undefined,
|
|
14
16
|
};
|
|
15
17
|
let configIsSet = false;
|
|
@@ -63,6 +65,16 @@ export function setSDKConfig(config) {
|
|
|
63
65
|
configRegistry.httpDownloadConcurrency = config.httpDownloadConcurrency;
|
|
64
66
|
logger.info(`HTTP download concurrency set to: ${config.httpDownloadConcurrency}`);
|
|
65
67
|
}
|
|
68
|
+
if (config.registryDownloadMaxRetries !== undefined &&
|
|
69
|
+
config.registryDownloadMaxRetries !== null) {
|
|
70
|
+
configRegistry.registryDownloadMaxRetries = config.registryDownloadMaxRetries;
|
|
71
|
+
logger.info(`✅ Registry download max retries set to: ${config.registryDownloadMaxRetries}`);
|
|
72
|
+
}
|
|
73
|
+
if (config.registryStreamTimeoutMs !== undefined &&
|
|
74
|
+
config.registryStreamTimeoutMs !== null) {
|
|
75
|
+
configRegistry.registryStreamTimeoutMs = config.registryStreamTimeoutMs;
|
|
76
|
+
logger.info(`✅ Registry stream timeout set to: ${config.registryStreamTimeoutMs}ms`);
|
|
77
|
+
}
|
|
66
78
|
if (config.deviceDefaults !== undefined && config.deviceDefaults !== null) {
|
|
67
79
|
configRegistry.deviceDefaults = config.deviceDefaults;
|
|
68
80
|
logger.info(`✅ Device defaults configured: ${config.deviceDefaults.length} pattern(s)`);
|
|
@@ -74,8 +86,7 @@ export function getSDKConfig() {
|
|
|
74
86
|
return { ...configRegistry };
|
|
75
87
|
}
|
|
76
88
|
function getDefaultCacheDir() {
|
|
77
|
-
|
|
78
|
-
return path.join(homeDir, ".qvac", "models");
|
|
89
|
+
return getQvacPath("models");
|
|
79
90
|
}
|
|
80
91
|
export function getConfiguredCacheDir() {
|
|
81
92
|
return configRegistry.cacheDirectory || getDefaultCacheDir();
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type FilesystemDL from "@qvac/dl-filesystem";
|
|
2
1
|
import type { CanonicalModelType } from "../../../schemas/index";
|
|
3
2
|
import type BaseInference from "@qvac/infer-base";
|
|
4
3
|
interface AddonInterface {
|
|
@@ -9,7 +8,6 @@ export type AnyModel = Omit<BaseInference, "addon"> & {
|
|
|
9
8
|
addon?: AddonInterface;
|
|
10
9
|
};
|
|
11
10
|
interface DelegateOptions {
|
|
12
|
-
topic: string;
|
|
13
11
|
providerPublicKey: string;
|
|
14
12
|
timeout?: number | undefined;
|
|
15
13
|
healthCheckTimeout?: number | undefined;
|
|
@@ -21,23 +19,23 @@ interface LocalOptions {
|
|
|
21
19
|
config: unknown;
|
|
22
20
|
modelType: CanonicalModelType;
|
|
23
21
|
name?: string | undefined;
|
|
24
|
-
loader?: FilesystemDL;
|
|
25
22
|
}
|
|
26
|
-
export
|
|
23
|
+
export type ModelEntry = {
|
|
27
24
|
id: string;
|
|
28
|
-
isDelegated:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
isDelegated: true;
|
|
26
|
+
delegated: DelegateOptions;
|
|
27
|
+
} | {
|
|
28
|
+
id: string;
|
|
29
|
+
isDelegated: false;
|
|
30
|
+
local: LocalOptions;
|
|
31
|
+
};
|
|
32
32
|
export declare function registerModel(id: string, options: {
|
|
33
33
|
model: AnyModel;
|
|
34
34
|
path: string;
|
|
35
35
|
config: unknown;
|
|
36
36
|
modelType: CanonicalModelType;
|
|
37
|
-
loader?: FilesystemDL;
|
|
38
37
|
name?: string | undefined;
|
|
39
38
|
} | {
|
|
40
|
-
topic: string;
|
|
41
39
|
providerPublicKey: string;
|
|
42
40
|
timeout?: number;
|
|
43
41
|
healthCheckTimeout?: number;
|
|
@@ -7,20 +7,19 @@ export function registerModel(id, options) {
|
|
|
7
7
|
if (modelRegistry.has(id)) {
|
|
8
8
|
throw new ModelAlreadyRegisteredError(id);
|
|
9
9
|
}
|
|
10
|
-
const isDelegated = "
|
|
10
|
+
const isDelegated = "providerPublicKey" in options;
|
|
11
11
|
if (isDelegated) {
|
|
12
|
-
const {
|
|
12
|
+
const { providerPublicKey, timeout, healthCheckTimeout } = options;
|
|
13
13
|
modelRegistry.set(id, {
|
|
14
14
|
id,
|
|
15
15
|
isDelegated: true,
|
|
16
16
|
delegated: {
|
|
17
|
-
topic,
|
|
18
17
|
providerPublicKey,
|
|
19
18
|
timeout,
|
|
20
19
|
healthCheckTimeout,
|
|
21
20
|
},
|
|
22
21
|
});
|
|
23
|
-
logger.info(`Delegated model registered: ${id} ->
|
|
22
|
+
logger.info(`Delegated model registered: ${id} -> provider: ${providerPublicKey}, timeout: ${timeout}ms`);
|
|
24
23
|
}
|
|
25
24
|
else {
|
|
26
25
|
modelRegistry.set(id, {
|
|
@@ -32,7 +31,6 @@ export function registerModel(id, options) {
|
|
|
32
31
|
loadedAt: new Date(),
|
|
33
32
|
config: options.config,
|
|
34
33
|
modelType: options.modelType,
|
|
35
|
-
...(options.loader && { loader: options.loader }),
|
|
36
34
|
name: options.name,
|
|
37
35
|
},
|
|
38
36
|
});
|
|
@@ -48,7 +46,7 @@ export function getModel(id) {
|
|
|
48
46
|
if (!entry) {
|
|
49
47
|
throw new ModelNotFoundError(id);
|
|
50
48
|
}
|
|
51
|
-
if (
|
|
49
|
+
if (entry.isDelegated) {
|
|
52
50
|
throw new ModelIsDelegatedError(id);
|
|
53
51
|
}
|
|
54
52
|
return entry.local.model;
|
|
@@ -70,7 +68,7 @@ export function getAllModelIds() {
|
|
|
70
68
|
}
|
|
71
69
|
export function getModelInfo(id) {
|
|
72
70
|
const entry = modelRegistry.get(id);
|
|
73
|
-
if (!entry ||
|
|
71
|
+
if (!entry || entry.isDelegated) {
|
|
74
72
|
return null;
|
|
75
73
|
}
|
|
76
74
|
const result = {
|
|
@@ -86,7 +84,7 @@ export function getModelInfo(id) {
|
|
|
86
84
|
}
|
|
87
85
|
export function getModelConfig(id) {
|
|
88
86
|
const entry = modelRegistry.get(id);
|
|
89
|
-
if (!entry ||
|
|
87
|
+
if (!entry || entry.isDelegated) {
|
|
90
88
|
throw new ModelNotFoundError(id);
|
|
91
89
|
}
|
|
92
90
|
return entry.local.config;
|
|
@@ -96,7 +94,7 @@ export function updateModelConfig(id, config) {
|
|
|
96
94
|
if (!entry) {
|
|
97
95
|
throw new ModelNotFoundError(id);
|
|
98
96
|
}
|
|
99
|
-
if (
|
|
97
|
+
if (entry.isDelegated) {
|
|
100
98
|
throw new ModelIsDelegatedError(id);
|
|
101
99
|
}
|
|
102
100
|
entry.local.config = config;
|
|
@@ -115,9 +113,16 @@ export async function unloadAllModels() {
|
|
|
115
113
|
const modelIds = getAllModelIds();
|
|
116
114
|
for (const modelId of modelIds) {
|
|
117
115
|
const entry = modelRegistry.get(modelId);
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
116
|
+
try {
|
|
117
|
+
if (entry && !entry.isDelegated) {
|
|
118
|
+
if (entry.local.model.unload) {
|
|
119
|
+
await entry.local.model.unload();
|
|
120
|
+
}
|
|
121
|
+
logger.debug(`Model unloaded: ${modelId}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
logger.error(`Error unloading model ${modelId}:`, error instanceof Error ? error.message : String(error));
|
|
121
126
|
}
|
|
122
127
|
modelRegistry.delete(modelId);
|
|
123
128
|
}
|