@qvac/sdk 0.8.1 → 1.0.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/LICENSE +24 -1
- package/README.md +191 -373
- package/dist/client/api/cancel.d.ts +4 -22
- package/dist/client/api/cancel.js +6 -25
- package/dist/client/api/completion-stream.d.ts +30 -24
- package/dist/client/api/completion-stream.js +70 -121
- package/dist/client/api/delete-cache.js +2 -3
- package/dist/client/api/download-asset.d.ts +5 -6
- package/dist/client/api/download-asset.js +20 -16
- package/dist/client/api/embed.d.ts +4 -21
- package/dist/client/api/embed.js +14 -4
- package/dist/client/api/index.d.ts +2 -6
- package/dist/client/api/index.js +2 -6
- package/dist/client/api/load-model.d.ts +21 -49
- package/dist/client/api/load-model.js +134 -40
- package/dist/client/api/logging-stream.d.ts +4 -7
- package/dist/client/api/logging-stream.js +5 -9
- package/dist/client/api/ping.d.ts +11 -0
- package/dist/client/api/ping.js +18 -0
- package/dist/client/api/provide.d.ts +1 -1
- package/dist/client/api/provide.js +3 -4
- package/dist/client/api/rag.d.ts +21 -216
- package/dist/client/api/rag.js +36 -396
- package/dist/client/api/stop-provider.d.ts +1 -1
- package/dist/client/api/stop-provider.js +3 -4
- package/dist/client/api/text-to-speech.d.ts +2 -2
- package/dist/client/api/text-to-speech.js +3 -3
- package/dist/client/api/transcribe.d.ts +5 -9
- package/dist/client/api/transcribe.js +9 -11
- package/dist/client/api/translate.d.ts +3 -3
- package/dist/client/api/translate.js +15 -15
- package/dist/client/api/unload-model.d.ts +1 -5
- package/dist/client/api/unload-model.js +4 -17
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/logging-stream-registry.d.ts +1 -1
- package/dist/client/logging-stream-registry.js +13 -14
- package/dist/client/rpc/bare-client.d.ts +139 -3
- package/dist/client/rpc/bare-client.js +16 -117
- package/dist/client/rpc/bare-rpc-client.d.ts +4 -0
- package/dist/client/rpc/bare-rpc-client.js +87 -0
- package/dist/client/rpc/expo-rpc-client.d.ts +1 -2
- package/dist/client/rpc/expo-rpc-client.js +14 -57
- package/dist/client/rpc/node-rpc-client.d.ts +8 -3
- package/dist/client/rpc/node-rpc-client.js +62 -218
- package/dist/client/rpc/rpc-client.d.ts +2 -3
- package/dist/client/rpc/rpc-client.js +49 -184
- package/dist/constants/audio.d.ts +2 -1
- package/dist/constants/audio.js +17 -1
- package/dist/constants/index.d.ts +0 -1
- package/dist/constants/index.js +0 -1
- package/dist/examples/delegated-inference/consumer.js +2 -3
- package/dist/examples/download-with-cancel.js +4 -3
- package/dist/examples/embed-hyperdrive.d.ts +2 -0
- package/dist/examples/embed-hyperdrive.js +19 -0
- package/dist/examples/kv-cache-cleanup.js +2 -1
- package/dist/examples/kv-cache-custom-key.js +2 -16
- package/dist/examples/kv-cache-example.js +2 -1
- package/dist/examples/llamacpp-file-logging.d.ts +2 -0
- package/dist/examples/{logging-file-transport.js → llamacpp-file-logging.js} +8 -3
- package/dist/examples/llamacpp-filesystem.js +2 -2
- package/dist/examples/llamacpp-http.js +1 -0
- package/dist/examples/llamacpp-hyperdrive.d.ts +2 -0
- package/dist/examples/{llamacpp-p2p.js → llamacpp-hyperdrive.js} +2 -1
- package/dist/examples/llamacpp-multimodal.js +4 -3
- package/dist/examples/llamacpp-native-tools.js +30 -72
- package/dist/examples/multi-model-demo.js +3 -2
- package/dist/examples/parallel-download.js +14 -46
- package/dist/examples/rag/rag-chromadb.js +1 -0
- package/dist/examples/rag/rag-hyperdb-workspaces.d.ts +2 -0
- package/dist/examples/rag/rag-hyperdb-workspaces.js +107 -0
- package/dist/examples/rag/rag-hyperdb.d.ts +2 -0
- package/dist/examples/rag/{rag-hyperdb/ingest.js → rag-hyperdb.js} +5 -10
- package/dist/examples/rag/rag-lancedb.js +1 -0
- package/dist/examples/rag/rag-sqlite.js +1 -0
- package/dist/examples/seed-hyperdrive.d.ts +2 -0
- package/dist/examples/text-to-speech.d.ts +3 -0
- package/dist/examples/{tts/utils.js → text-to-speech.js} +63 -18
- package/dist/examples/translation/translation-indic.js +1 -4
- package/dist/examples/translation/translation-llm-context.js +1 -0
- package/dist/examples/translation/translation-llm.js +2 -2
- package/dist/examples/translation/translation-opus.js +3 -6
- package/dist/examples/translation/translation-stream.js +3 -3
- package/dist/examples/whispercpp-filesystem.js +43 -0
- package/dist/examples/{transcription/whispercpp-microphone-record.js → whispercpp-microphone-record.js} +9 -8
- package/dist/expo/plugins/index.d.ts +0 -3
- package/dist/expo/plugins/index.js +0 -3
- package/dist/expo/plugins/withMobileBundle.d.ts +2 -5
- package/dist/expo/plugins/withMobileBundle.js +40 -121
- package/dist/expo/plugins/withQvacSDK.d.ts +0 -4
- package/dist/expo/plugins/withQvacSDK.js +1 -26
- package/dist/index.d.ts +4 -9
- package/dist/index.js +5 -11
- package/dist/logging/base-logger.js +16 -26
- package/dist/logging/index.d.ts +1 -7
- package/dist/logging/index.js +1 -7
- package/dist/logging/logger.d.ts +2 -0
- package/dist/logging/logger.js +6 -11
- package/dist/logging/stream-logger.d.ts +1 -1
- package/dist/logging/stream-logger.js +3 -6
- package/dist/logging/transport.js +2 -2
- package/dist/logging/types.d.ts +0 -2
- package/dist/logging/utils.d.ts +0 -2
- package/dist/logging/utils.js +0 -62
- package/dist/models/{registry → hyperdrive}/index.js +1 -1
- package/dist/models/hyperdrive/models.d.ts +619 -0
- package/dist/models/hyperdrive/models.js +693 -0
- package/dist/schemas/cancel.d.ts +0 -18
- package/dist/schemas/cancel.js +0 -7
- package/dist/schemas/common.d.ts +166 -3012
- package/dist/schemas/common.js +4 -27
- package/dist/schemas/completion-stream.d.ts +60 -31
- package/dist/schemas/completion-stream.js +44 -20
- package/dist/schemas/delegate.d.ts +0 -9
- package/dist/schemas/delegate.js +2 -6
- package/dist/schemas/download-asset.d.ts +3 -125
- package/dist/schemas/download-asset.js +5 -22
- package/dist/schemas/embed.d.ts +3 -3
- package/dist/schemas/embed.js +2 -9
- package/dist/schemas/index.d.ts +2 -20
- package/dist/schemas/index.js +2 -20
- package/dist/schemas/llamacpp-config.d.ts +12 -243
- package/dist/schemas/llamacpp-config.js +14 -50
- package/dist/schemas/load-model.d.ts +893 -14471
- package/dist/schemas/load-model.js +72 -325
- package/dist/schemas/logging-stream.d.ts +4 -11
- package/dist/schemas/logging-stream.js +3 -4
- package/dist/schemas/ping.d.ts +11 -0
- package/dist/schemas/ping.js +8 -0
- package/dist/schemas/rag.d.ts +52 -183
- package/dist/schemas/rag.js +23 -152
- package/dist/schemas/text-to-speech.d.ts +1 -692
- package/dist/schemas/text-to-speech.js +3 -35
- package/dist/schemas/transcription.d.ts +0 -3
- package/dist/schemas/transcription.js +0 -1
- package/dist/schemas/translate.d.ts +23 -68
- package/dist/schemas/translate.js +11 -37
- package/dist/schemas/translation-config.d.ts +7 -810
- package/dist/schemas/translation-config.js +7 -113
- package/dist/schemas/unload-model.d.ts +0 -2
- package/dist/schemas/unload-model.js +0 -2
- package/dist/schemas/whispercpp-config.d.ts +25 -0
- package/dist/schemas/whispercpp-config.js +18 -0
- package/dist/server/bare/{ops → addons}/cancel.js +1 -2
- package/dist/server/bare/addons/index.d.ts +4 -0
- package/dist/server/bare/addons/index.js +3 -0
- package/dist/server/bare/addons/llamacpp/create-model.d.ts +5 -0
- package/dist/server/bare/addons/llamacpp/create-model.js +67 -0
- package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.d.ts +1 -2
- package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.js +87 -54
- package/dist/server/bare/addons/llamacpp/handlers/embed.d.ts +4 -0
- package/dist/server/bare/{ops → addons/llamacpp/handlers}/embed.js +7 -22
- package/dist/server/bare/addons/llamacpp/index.d.ts +4 -0
- package/dist/server/bare/addons/llamacpp/index.js +3 -0
- package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.d.ts +1 -4
- package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.js +19 -54
- package/dist/server/bare/addons/load-model.d.ts +3 -0
- package/dist/server/bare/addons/load-model.js +62 -0
- package/dist/server/bare/addons/translation/create-model.d.ts +4 -0
- package/dist/server/bare/addons/translation/create-model.js +45 -0
- package/dist/server/bare/addons/translation/handlers/translate.d.ts +3 -0
- package/dist/server/bare/{ops → addons/translation/handlers}/translate.js +14 -47
- package/dist/server/bare/addons/translation/index.d.ts +3 -0
- package/dist/server/bare/addons/translation/index.js +2 -0
- package/dist/server/bare/addons/tts/create-model.d.ts +6 -0
- package/dist/server/bare/addons/tts/create-model.js +40 -0
- package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.js +3 -25
- package/dist/server/bare/addons/tts/index.d.ts +3 -0
- package/dist/server/bare/addons/tts/index.js +2 -0
- package/dist/server/bare/addons/unload-model.js +20 -0
- package/dist/server/bare/addons/whispercpp/create-model.d.ts +6 -0
- package/dist/server/bare/addons/whispercpp/create-model.js +55 -0
- package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.d.ts +3 -0
- package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.js +48 -0
- package/dist/server/bare/addons/whispercpp/index.d.ts +3 -0
- package/dist/server/bare/addons/whispercpp/index.js +2 -0
- package/dist/server/bare/delegate-rpc-client.d.ts +0 -6
- package/dist/server/bare/delegate-rpc-client.js +45 -187
- package/dist/server/bare/hyperswarm.d.ts +0 -3
- package/dist/server/bare/hyperswarm.js +6 -29
- package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +1 -1
- package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +10 -9
- package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +4 -7
- package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +14 -13
- package/dist/server/bare/rag-hyperdb/handlers/search.js +10 -10
- package/dist/server/bare/rag-hyperdb/index.d.ts +1 -8
- package/dist/server/bare/rag-hyperdb/index.js +1 -8
- package/dist/server/bare/rag-hyperdb/rag-manager.d.ts +5 -0
- package/dist/server/bare/rag-hyperdb/rag-manager.js +65 -0
- package/dist/server/bare/registry/logging-stream-registry.d.ts +7 -24
- package/dist/server/bare/registry/logging-stream-registry.js +20 -99
- package/dist/server/bare/registry/model-registry.d.ts +26 -16
- package/dist/server/bare/registry/model-registry.js +13 -34
- package/dist/server/error-handlers.d.ts +2 -3
- package/dist/server/error-handlers.js +10 -15
- package/dist/server/http-server.d.ts +2 -0
- package/dist/server/http-server.js +189 -0
- package/dist/server/rpc/create-server.js +3 -5
- package/dist/server/rpc/handle-request.d.ts +9 -0
- package/dist/server/rpc/handle-request.js +242 -92
- package/dist/server/rpc/handlers/cancelHandler.js +3 -14
- package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +1 -3
- package/dist/server/rpc/handlers/completion-stream-delegated.js +8 -20
- package/dist/server/rpc/handlers/completion-stream.js +41 -2
- package/dist/server/rpc/handlers/delete-cache.js +2 -4
- package/dist/server/rpc/handlers/download-asset.js +6 -59
- package/dist/server/rpc/handlers/embed.js +19 -2
- package/dist/server/rpc/handlers/index.d.ts +0 -13
- package/dist/server/rpc/handlers/index.js +0 -13
- package/dist/server/rpc/handlers/load-model/download-manager.d.ts +11 -12
- package/dist/server/rpc/handlers/load-model/download-manager.js +28 -43
- package/dist/server/rpc/handlers/load-model/http.d.ts +1 -2
- package/dist/server/rpc/handlers/load-model/http.js +55 -424
- package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +1 -2
- package/dist/server/rpc/handlers/load-model/hyperdrive.js +171 -364
- package/dist/server/rpc/handlers/load-model/index.d.ts +2 -2
- package/dist/server/rpc/handlers/load-model/index.js +2 -2
- package/dist/server/rpc/handlers/load-model/resolve.d.ts +1 -3
- package/dist/server/rpc/handlers/load-model/resolve.js +29 -110
- package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -6
- package/dist/server/rpc/handlers/load-model-delegated.js +20 -60
- package/dist/server/rpc/handlers/{load-model/handler.d.ts → load-model.d.ts} +2 -2
- package/dist/server/rpc/handlers/load-model.js +57 -0
- package/dist/server/rpc/handlers/logging-stream.js +4 -4
- package/dist/server/rpc/handlers/provideHandler/connection.js +10 -12
- package/dist/server/rpc/handlers/provideHandler/handler.js +17 -20
- package/dist/server/rpc/handlers/provideHandler/proxy.js +6 -8
- package/dist/server/rpc/handlers/rag.d.ts +2 -2
- package/dist/server/rpc/handlers/rag.js +43 -130
- package/dist/server/rpc/handlers/stopProvideHandler.js +2 -6
- package/dist/server/rpc/handlers/text-to-speech.js +5 -2
- package/dist/server/rpc/handlers/transcribe-stream.js +24 -2
- package/dist/server/rpc/handlers/translate.js +49 -2
- package/dist/server/rpc/handlers/unload-model.js +3 -12
- package/dist/server/rpc/index.d.ts +1 -1
- package/dist/server/utils/audio/decoder.d.ts +1 -2
- package/dist/server/utils/audio/decoder.js +12 -49
- package/dist/server/utils/cache.d.ts +8 -19
- package/dist/server/utils/cache.js +15 -100
- package/dist/server/utils/hash.d.ts +5 -0
- package/dist/server/utils/hash.js +11 -0
- package/dist/server/utils/index.d.ts +2 -7
- package/dist/server/utils/index.js +2 -7
- package/dist/server/utils/tool-parser.js +14 -28
- package/dist/server/worker.d.ts +5 -4
- package/dist/server/worker.js +89 -22
- package/package.json +41 -148
- package/NOTICE +0 -695
- package/bare-imports.json +0 -44
- package/dist/client/api/get-model-info.d.ts +0 -36
- package/dist/client/api/get-model-info.js +0 -14
- package/dist/client/api/heartbeat.d.ts +0 -30
- package/dist/client/api/heartbeat.js +0 -38
- package/dist/client/api/invoke-plugin.d.ts +0 -15
- package/dist/client/api/invoke-plugin.js +0 -38
- package/dist/client/api/ocr.d.ts +0 -31
- package/dist/client/api/ocr.js +0 -88
- package/dist/client/api/registry.d.ts +0 -14
- package/dist/client/api/registry.js +0 -37
- package/dist/client/config-loader/config-utils.d.ts +0 -5
- package/dist/client/config-loader/config-utils.js +0 -20
- package/dist/client/config-loader/resolve-config.bare.d.ts +0 -9
- package/dist/client/config-loader/resolve-config.bare.js +0 -87
- package/dist/client/config-loader/resolve-config.expo.d.ts +0 -11
- package/dist/client/config-loader/resolve-config.expo.js +0 -62
- package/dist/client/config-loader/resolve-config.node.d.ts +0 -10
- package/dist/client/config-loader/resolve-config.node.js +0 -145
- package/dist/client/init-hooks.d.ts +0 -21
- package/dist/client/init-hooks.js +0 -66
- package/dist/client/rpc/expo-device-info.d.ts +0 -6
- package/dist/client/rpc/expo-device-info.js +0 -32
- package/dist/client/rpc/profiling/index.d.ts +0 -2
- package/dist/client/rpc/profiling/index.js +0 -1
- package/dist/client/rpc/profiling/profiler.d.ts +0 -27
- package/dist/client/rpc/profiling/profiler.js +0 -139
- package/dist/constants/registry.d.ts +0 -2
- package/dist/constants/registry.js +0 -1
- package/dist/examples/cache-management.d.ts +0 -2
- package/dist/examples/cache-management.js +0 -97
- package/dist/examples/config/blind-relay/blind-relay.config.d.ts +0 -5
- package/dist/examples/config/blind-relay/blind-relay.config.js +0 -7
- package/dist/examples/config/default/default.config.d.ts +0 -8
- package/dist/examples/config/default/default.config.js +0 -6
- package/dist/examples/config/plugins/plugins.config.d.ts +0 -5
- package/dist/examples/config/plugins/plugins.config.js +0 -4
- package/dist/examples/config-reload.d.ts +0 -2
- package/dist/examples/config-reload.js +0 -49
- package/dist/examples/default-config-usage.d.ts +0 -17
- package/dist/examples/default-config-usage.js +0 -47
- package/dist/examples/delegated-inference/consumer-profiled.d.ts +0 -2
- package/dist/examples/delegated-inference/consumer-profiled.js +0 -67
- package/dist/examples/download-with-blind-relays.d.ts +0 -2
- package/dist/examples/download-with-blind-relays.js +0 -49
- package/dist/examples/embed-p2p.d.ts +0 -2
- package/dist/examples/embed-p2p.js +0 -54
- package/dist/examples/llamacpp-p2p.d.ts +0 -2
- package/dist/examples/llamacpp-sharded.d.ts +0 -2
- package/dist/examples/llamacpp-sharded.js +0 -53
- package/dist/examples/logging-file-transport.d.ts +0 -2
- package/dist/examples/logging-streaming.d.ts +0 -2
- package/dist/examples/logging-streaming.js +0 -75
- package/dist/examples/mcp-websearch.d.ts +0 -13
- package/dist/examples/mcp-websearch.js +0 -176
- package/dist/examples/ocr-fasttext.d.ts +0 -2
- package/dist/examples/ocr-fasttext.js +0 -52
- package/dist/examples/plugins.d.ts +0 -14
- package/dist/examples/plugins.js +0 -129
- package/dist/examples/profiling/basic.d.ts +0 -2
- package/dist/examples/profiling/basic.js +0 -71
- package/dist/examples/profiling/per-call.d.ts +0 -2
- package/dist/examples/profiling/per-call.js +0 -30
- package/dist/examples/quickstart.d.ts +0 -2
- package/dist/examples/quickstart.js +0 -28
- package/dist/examples/rag/rag-hyperdb/cancellation.d.ts +0 -2
- package/dist/examples/rag/rag-hyperdb/cancellation.js +0 -75
- package/dist/examples/rag/rag-hyperdb/ingest.d.ts +0 -2
- package/dist/examples/rag/rag-hyperdb/pipeline.d.ts +0 -2
- package/dist/examples/rag/rag-hyperdb/pipeline.js +0 -74
- package/dist/examples/rag/rag-hyperdb/workspaces.d.ts +0 -2
- package/dist/examples/rag/rag-hyperdb/workspaces.js +0 -178
- package/dist/examples/registry-query.d.ts +0 -2
- package/dist/examples/registry-query.js +0 -87
- package/dist/examples/seed-p2p.d.ts +0 -2
- package/dist/examples/transcription/parakeet-ctc-filesystem.d.ts +0 -2
- package/dist/examples/transcription/parakeet-ctc-filesystem.js +0 -40
- package/dist/examples/transcription/parakeet-microphone-record.d.ts +0 -2
- package/dist/examples/transcription/parakeet-microphone-record.js +0 -95
- package/dist/examples/transcription/parakeet-sortformer.d.ts +0 -2
- package/dist/examples/transcription/parakeet-sortformer.js +0 -115
- package/dist/examples/transcription/parakeet-tdt-filesystem.d.ts +0 -2
- package/dist/examples/transcription/parakeet-tdt-filesystem.js +0 -44
- package/dist/examples/transcription/whispercpp-filesystem.js +0 -69
- package/dist/examples/transcription/whispercpp-prompt.d.ts +0 -2
- package/dist/examples/transcription/whispercpp-prompt.js +0 -67
- package/dist/examples/translation/translation-bergamot-batch.d.ts +0 -2
- package/dist/examples/translation/translation-bergamot-batch.js +0 -49
- package/dist/examples/translation/translation-bergamot-pivot.d.ts +0 -2
- package/dist/examples/translation/translation-bergamot-pivot.js +0 -73
- package/dist/examples/translation/translation-bergamot.d.ts +0 -2
- package/dist/examples/translation/translation-bergamot.js +0 -39
- package/dist/examples/translation/translation-llm-afriquegemma.d.ts +0 -2
- package/dist/examples/translation/translation-llm-afriquegemma.js +0 -39
- package/dist/examples/tts/chatterbox.d.ts +0 -2
- package/dist/examples/tts/chatterbox.js +0 -59
- package/dist/examples/tts/supertonic.d.ts +0 -2
- package/dist/examples/tts/supertonic.js +0 -51
- package/dist/examples/tts/utils.d.ts +0 -17
- package/dist/expo/plugins/resolve-sdk-package-dir.d.ts +0 -15
- package/dist/expo/plugins/resolve-sdk-package-dir.js +0 -31
- package/dist/expo/plugins/withAndroidArchitecture.d.ts +0 -8
- package/dist/expo/plugins/withAndroidArchitecture.js +0 -52
- package/dist/expo/plugins/withAndroidNdkVersion.d.ts +0 -8
- package/dist/expo/plugins/withAndroidNdkVersion.js +0 -31
- package/dist/expo/plugins/withDeviceInfo.d.ts +0 -10
- package/dist/expo/plugins/withDeviceInfo.js +0 -48
- package/dist/logging/addon.d.ts +0 -6
- package/dist/logging/addon.js +0 -75
- package/dist/logging/client-logger.d.ts +0 -3
- package/dist/logging/client-logger.js +0 -24
- package/dist/logging/namespaces.d.ts +0 -6
- package/dist/logging/namespaces.js +0 -6
- package/dist/logging/registry.d.ts +0 -31
- package/dist/logging/registry.js +0 -62
- package/dist/logging/server-logger.d.ts +0 -3
- package/dist/logging/server-logger.js +0 -16
- package/dist/models/registry/models.d.ts +0 -10417
- package/dist/models/registry/models.js +0 -10757
- package/dist/models/update-models/codegen.d.ts +0 -3
- package/dist/models/update-models/codegen.js +0 -135
- package/dist/models/update-models/history.d.ts +0 -24
- package/dist/models/update-models/history.js +0 -107
- package/dist/models/update-models/index.d.ts +0 -2
- package/dist/models/update-models/index.js +0 -125
- package/dist/models/update-models/naming.d.ts +0 -4
- package/dist/models/update-models/naming.js +0 -370
- package/dist/models/update-models/processing.d.ts +0 -8
- package/dist/models/update-models/processing.js +0 -67
- package/dist/models/update-models/registry.d.ts +0 -4
- package/dist/models/update-models/registry.js +0 -67
- package/dist/models/update-models/shards.d.ts +0 -4
- package/dist/models/update-models/shards.js +0 -57
- package/dist/models/update-models/types.d.ts +0 -60
- package/dist/models/update-models/types.js +0 -1
- package/dist/models/update-models/utils.d.ts +0 -3
- package/dist/models/update-models/utils.js +0 -21
- package/dist/pear/pre.d.ts +0 -18
- package/dist/pear/pre.js +0 -433
- package/dist/profiling/aggregator.d.ts +0 -15
- package/dist/profiling/aggregator.js +0 -100
- package/dist/profiling/clock.d.ts +0 -12
- package/dist/profiling/clock.js +0 -51
- package/dist/profiling/controller.d.ts +0 -33
- package/dist/profiling/controller.js +0 -123
- package/dist/profiling/envelope.d.ts +0 -10
- package/dist/profiling/envelope.js +0 -36
- package/dist/profiling/events.d.ts +0 -20
- package/dist/profiling/events.js +0 -37
- package/dist/profiling/exporters.d.ts +0 -10
- package/dist/profiling/exporters.js +0 -236
- package/dist/profiling/index.d.ts +0 -36
- package/dist/profiling/index.js +0 -31
- package/dist/profiling/ring-buffer.d.ts +0 -19
- package/dist/profiling/ring-buffer.js +0 -83
- package/dist/profiling/types.d.ts +0 -47
- package/dist/profiling/types.js +0 -1
- package/dist/schemas/archive.d.ts +0 -9
- package/dist/schemas/archive.js +0 -17
- package/dist/schemas/engine-addon-map.d.ts +0 -5
- package/dist/schemas/engine-addon-map.js +0 -52
- package/dist/schemas/get-model-info.d.ts +0 -120
- package/dist/schemas/get-model-info.js +0 -58
- package/dist/schemas/heartbeat.d.ts +0 -17
- package/dist/schemas/heartbeat.js +0 -10
- package/dist/schemas/json-schema.d.ts +0 -16
- package/dist/schemas/json-schema.js +0 -2
- package/dist/schemas/mcp-adapter.d.ts +0 -47
- package/dist/schemas/mcp-adapter.js +0 -1
- package/dist/schemas/model-src-utils.d.ts +0 -148
- package/dist/schemas/model-src-utils.js +0 -35
- package/dist/schemas/model-types.d.ts +0 -183
- package/dist/schemas/model-types.js +0 -168
- package/dist/schemas/ocr.d.ts +0 -125
- package/dist/schemas/ocr.js +0 -57
- package/dist/schemas/path-validation.d.ts +0 -10
- package/dist/schemas/path-validation.js +0 -22
- package/dist/schemas/plugin.d.ts +0 -226
- package/dist/schemas/plugin.js +0 -158
- package/dist/schemas/profiling.d.ts +0 -105
- package/dist/schemas/profiling.js +0 -66
- package/dist/schemas/registry.d.ts +0 -356
- package/dist/schemas/registry.js +0 -93
- package/dist/schemas/reload-config.d.ts +0 -476
- package/dist/schemas/reload-config.js +0 -44
- package/dist/schemas/runtime-context.d.ts +0 -19
- package/dist/schemas/runtime-context.js +0 -7
- package/dist/schemas/sdk-config.d.ts +0 -2973
- package/dist/schemas/sdk-config.js +0 -136
- package/dist/schemas/sdk-errors-client.d.ts +0 -31
- package/dist/schemas/sdk-errors-client.js +0 -143
- package/dist/schemas/sdk-errors-registry.d.ts +0 -6
- package/dist/schemas/sdk-errors-registry.js +0 -8
- package/dist/schemas/sdk-errors-server.d.ts +0 -89
- package/dist/schemas/sdk-errors-server.js +0 -451
- package/dist/schemas/shard.d.ts +0 -21
- package/dist/schemas/shard.js +0 -17
- package/dist/schemas/tools.d.ts +0 -65
- package/dist/schemas/tools.js +0 -43
- package/dist/schemas/transcription-config.d.ts +0 -383
- package/dist/schemas/transcription-config.js +0 -95
- package/dist/scripts/run-security-tests-bare.d.ts +0 -2
- package/dist/scripts/run-security-tests-bare.js +0 -78
- package/dist/scripts/run-security-tests.d.ts +0 -2
- package/dist/scripts/run-security-tests.js +0 -22
- package/dist/scripts/run-unit-tests.d.ts +0 -2
- package/dist/scripts/run-unit-tests.js +0 -17
- package/dist/server/bare/ops/embed.d.ts +0 -12
- package/dist/server/bare/ops/load-model.d.ts +0 -9
- package/dist/server/bare/ops/load-model.js +0 -85
- package/dist/server/bare/ops/transcribe.d.ts +0 -3
- package/dist/server/bare/ops/transcribe.js +0 -75
- package/dist/server/bare/ops/translate.d.ts +0 -5
- package/dist/server/bare/ops/unload-model.js +0 -41
- package/dist/server/bare/plugins/index.d.ts +0 -8
- package/dist/server/bare/plugins/index.js +0 -7
- package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.d.ts +0 -6
- package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.js +0 -34
- package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +0 -220
- package/dist/server/bare/plugins/llamacpp-completion/plugin.js +0 -155
- package/dist/server/bare/plugins/llamacpp-embedding/plugin.d.ts +0 -54
- package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +0 -87
- package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +0 -367
- package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +0 -201
- package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.d.ts +0 -10
- package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.js +0 -110
- package/dist/server/bare/plugins/onnx-ocr/plugin.d.ts +0 -86
- package/dist/server/bare/plugins/onnx-ocr/plugin.js +0 -117
- package/dist/server/bare/plugins/onnx-tts/plugin.d.ts +0 -373
- package/dist/server/bare/plugins/onnx-tts/plugin.js +0 -182
- package/dist/server/bare/plugins/onnx-tts/wav-helper.d.ts +0 -14
- package/dist/server/bare/plugins/onnx-tts/wav-helper.js +0 -107
- package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +0 -317
- package/dist/server/bare/plugins/parakeet-transcription/plugin.js +0 -154
- package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +0 -237
- package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +0 -86
- package/dist/server/bare/rag-hyperdb/handlers/chunk.d.ts +0 -3
- package/dist/server/bare/rag-hyperdb/handlers/chunk.js +0 -7
- package/dist/server/bare/rag-hyperdb/handlers/close-workspace.d.ts +0 -3
- package/dist/server/bare/rag-hyperdb/handlers/close-workspace.js +0 -9
- package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.d.ts +0 -3
- package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.js +0 -14
- package/dist/server/bare/rag-hyperdb/handlers/ingest.d.ts +0 -9
- package/dist/server/bare/rag-hyperdb/handlers/ingest.js +0 -18
- package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.d.ts +0 -3
- package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.js +0 -4
- package/dist/server/bare/rag-hyperdb/handlers/reindex.d.ts +0 -9
- package/dist/server/bare/rag-hyperdb/handlers/reindex.js +0 -16
- package/dist/server/bare/rag-hyperdb/rag-operation-manager.d.ts +0 -7
- package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +0 -39
- package/dist/server/bare/rag-hyperdb/rag-workspace-manager.d.ts +0 -15
- package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +0 -136
- package/dist/server/bare/registry/config-registry.d.ts +0 -14
- package/dist/server/bare/registry/config-registry.js +0 -82
- package/dist/server/bare/registry/model-config-registry.d.ts +0 -4
- package/dist/server/bare/registry/model-config-registry.js +0 -15
- package/dist/server/bare/registry/model-config-utils.d.ts +0 -15
- package/dist/server/bare/registry/model-config-utils.js +0 -112
- package/dist/server/bare/registry/registry-client.d.ts +0 -5
- package/dist/server/bare/registry/registry-client.js +0 -37
- package/dist/server/bare/registry/runtime-context-registry.d.ts +0 -7
- package/dist/server/bare/registry/runtime-context-registry.js +0 -26
- package/dist/server/bare/utils/audio-input.d.ts +0 -10
- package/dist/server/bare/utils/audio-input.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/env.d.ts +0 -22
- package/dist/server/env.js +0 -57
- package/dist/server/plugins/index.d.ts +0 -2
- package/dist/server/plugins/index.js +0 -1
- package/dist/server/plugins/registry.d.ts +0 -9
- package/dist/server/plugins/registry.js +0 -79
- package/dist/server/rpc/delegate-transport.d.ts +0 -19
- package/dist/server/rpc/delegate-transport.js +0 -236
- package/dist/server/rpc/delegate-utils.d.ts +0 -2
- package/dist/server/rpc/delegate-utils.js +0 -5
- package/dist/server/rpc/handler-registry.d.ts +0 -3
- package/dist/server/rpc/handler-registry.js +0 -113
- package/dist/server/rpc/handler-utils.d.ts +0 -23
- package/dist/server/rpc/handler-utils.js +0 -170
- package/dist/server/rpc/handlers/cancel-delegated.d.ts +0 -4
- package/dist/server/rpc/handlers/cancel-delegated.js +0 -71
- package/dist/server/rpc/handlers/get-model-info.d.ts +0 -3
- package/dist/server/rpc/handlers/get-model-info.js +0 -164
- package/dist/server/rpc/handlers/heartbeat-delegated.d.ts +0 -4
- package/dist/server/rpc/handlers/heartbeat-delegated.js +0 -32
- package/dist/server/rpc/handlers/heartbeat.d.ts +0 -3
- package/dist/server/rpc/handlers/heartbeat.js +0 -3
- package/dist/server/rpc/handlers/load-model/download-stats.d.ts +0 -6
- package/dist/server/rpc/handlers/load-model/download-stats.js +0 -87
- package/dist/server/rpc/handlers/load-model/handler.js +0 -187
- package/dist/server/rpc/handlers/load-model/registry.d.ts +0 -11
- package/dist/server/rpc/handlers/load-model/registry.js +0 -548
- package/dist/server/rpc/handlers/load-model/types.d.ts +0 -29
- package/dist/server/rpc/handlers/load-model/types.js +0 -1
- package/dist/server/rpc/handlers/ocr-stream.d.ts +0 -3
- package/dist/server/rpc/handlers/ocr-stream.js +0 -4
- package/dist/server/rpc/handlers/plugin-dispatch.d.ts +0 -15
- package/dist/server/rpc/handlers/plugin-dispatch.js +0 -59
- package/dist/server/rpc/handlers/plugin-invoke.d.ts +0 -4
- package/dist/server/rpc/handlers/plugin-invoke.js +0 -92
- package/dist/server/rpc/handlers/registry.d.ts +0 -5
- package/dist/server/rpc/handlers/registry.js +0 -157
- package/dist/server/rpc/handlers/unload-model-delegated.d.ts +0 -3
- package/dist/server/rpc/handlers/unload-model-delegated.js +0 -32
- package/dist/server/rpc/profiling/context.d.ts +0 -18
- package/dist/server/rpc/profiling/context.js +0 -38
- package/dist/server/rpc/profiling/delegation-profiler.d.ts +0 -32
- package/dist/server/rpc/profiling/delegation-profiler.js +0 -154
- package/dist/server/rpc/profiling/index.d.ts +0 -5
- package/dist/server/rpc/profiling/index.js +0 -4
- package/dist/server/rpc/profiling/operation-metrics.d.ts +0 -25
- package/dist/server/rpc/profiling/operation-metrics.js +0 -199
- package/dist/server/rpc/profiling/operation-wrappers.d.ts +0 -18
- package/dist/server/rpc/profiling/operation-wrappers.js +0 -124
- package/dist/server/rpc/profiling/profiler.d.ts +0 -13
- package/dist/server/rpc/profiling/profiler.js +0 -97
- package/dist/server/utils/archive.d.ts +0 -4
- package/dist/server/utils/archive.js +0 -179
- package/dist/server/utils/checksum.d.ts +0 -4
- package/dist/server/utils/checksum.js +0 -31
- package/dist/server/utils/config-transform.d.ts +0 -3
- package/dist/server/utils/config-transform.js +0 -23
- package/dist/server/utils/formatting.d.ts +0 -19
- package/dist/server/utils/formatting.js +0 -61
- package/dist/server/utils/gguf-tensor-extractor.d.ts +0 -15
- package/dist/server/utils/gguf-tensor-extractor.js +0 -314
- package/dist/server/utils/path-security.d.ts +0 -12
- package/dist/server/utils/path-security.js +0 -25
- package/dist/server/utils/shard-utils.d.ts +0 -48
- package/dist/server/utils/shard-utils.js +0 -125
- package/dist/server/utils/tool-integration.d.ts +0 -13
- package/dist/server/utils/tool-integration.js +0 -43
- package/dist/server/worker-core.d.ts +0 -6
- package/dist/server/worker-core.js +0 -88
- package/dist/utils/errors-base.d.ts +0 -3
- package/dist/utils/errors-base.js +0 -13
- package/dist/utils/errors-client.d.ts +0 -137
- package/dist/utils/errors-client.js +0 -240
- package/dist/utils/errors-server.d.ts +0 -236
- package/dist/utils/errors-server.js +0 -412
- package/dist/utils/global-singleton.d.ts +0 -2
- package/dist/utils/global-singleton.js +0 -10
- package/dist/utils/mcp-adapter.d.ts +0 -12
- package/dist/utils/mcp-adapter.js +0 -103
- package/dist/utils/object.d.ts +0 -2
- package/dist/utils/object.js +0 -3
- package/dist/utils/path-sanitize.d.ts +0 -17
- package/dist/utils/path-sanitize.js +0 -54
- package/dist/utils/tool-helpers.d.ts +0 -25
- package/dist/utils/tool-helpers.js +0 -112
- package/expo/plugins/patches/android-link.mjs +0 -63
- package/expo/plugins/patches/ios-link.mjs +0 -63
- /package/dist/examples/{seed-p2p.js → seed-hyperdrive.js} +0 -0
- /package/dist/examples/{transcription/whispercpp-filesystem.d.ts → whispercpp-filesystem.d.ts} +0 -0
- /package/dist/examples/{transcription/whispercpp-microphone-record.d.ts → whispercpp-microphone-record.d.ts} +0 -0
- /package/dist/models/{registry → hyperdrive}/index.d.ts +0 -0
- /package/dist/server/bare/{ops → addons}/cancel.d.ts +0 -0
- /package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.d.ts +0 -0
- /package/dist/server/bare/{ops → addons}/unload-model.d.ts +0 -0
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { modelRegistryList, modelRegistrySearch, modelRegistryGetModel, ModelType, close, } from "@qvac/sdk";
|
|
2
|
-
try {
|
|
3
|
-
console.log("QVAC Model Registry Query Examples\n");
|
|
4
|
-
// List all available models
|
|
5
|
-
console.log("Listing all models in QVAC model registry...");
|
|
6
|
-
const allModels = await modelRegistryList();
|
|
7
|
-
console.log(` Found ${allModels.length} models in registry\n`);
|
|
8
|
-
// Show first 5 models as sample
|
|
9
|
-
console.log(" Sample models:");
|
|
10
|
-
allModels.slice(0, 5).forEach((model) => {
|
|
11
|
-
console.log(` - ${model.name} (${model.addon}, ${model.engine}, ${formatSize(model.expectedSize)})`);
|
|
12
|
-
});
|
|
13
|
-
console.log();
|
|
14
|
-
// Search with text filter
|
|
15
|
-
console.log('Searching for "whisper" models...');
|
|
16
|
-
const whisperModels = await modelRegistrySearch({ filter: "whisper" });
|
|
17
|
-
console.log(` Found ${whisperModels.length} whisper-related models\n`);
|
|
18
|
-
// Search by engine (using canonical ModelType enum)
|
|
19
|
-
console.log(`Searching by engine (${ModelType.llamacppEmbedding})...`);
|
|
20
|
-
const embedModels = await modelRegistrySearch({
|
|
21
|
-
engine: ModelType.llamacppEmbedding,
|
|
22
|
-
});
|
|
23
|
-
console.log(` Found ${embedModels.length} embedding models`);
|
|
24
|
-
embedModels.slice(0, 3).forEach((model) => {
|
|
25
|
-
console.log(` - ${model.name} (${model.quantization})`);
|
|
26
|
-
});
|
|
27
|
-
console.log();
|
|
28
|
-
// Search by quantization
|
|
29
|
-
console.log("Searching for Q4 quantized models...");
|
|
30
|
-
const q4Models = await modelRegistrySearch({ quantization: "q4" });
|
|
31
|
-
console.log(` Found ${q4Models.length} Q4 quantized models`);
|
|
32
|
-
q4Models.slice(0, 3).forEach((model) => {
|
|
33
|
-
console.log(` - ${model.name}`);
|
|
34
|
-
});
|
|
35
|
-
console.log();
|
|
36
|
-
// Search by addon/model type
|
|
37
|
-
console.log("Searching for transcription models...");
|
|
38
|
-
const transcriptionModels = await modelRegistrySearch({
|
|
39
|
-
addon: "whisper",
|
|
40
|
-
});
|
|
41
|
-
console.log(` Found ${transcriptionModels.length} transcription models`);
|
|
42
|
-
transcriptionModels.slice(0, 3).forEach((model) => {
|
|
43
|
-
console.log(` - ${model.name}`);
|
|
44
|
-
});
|
|
45
|
-
console.log();
|
|
46
|
-
// Combined search: engine + quantization
|
|
47
|
-
console.log("Searching for Q4 LLM models...");
|
|
48
|
-
const q4LlmModels = await modelRegistrySearch({
|
|
49
|
-
engine: ModelType.llamacppCompletion,
|
|
50
|
-
quantization: "q4",
|
|
51
|
-
});
|
|
52
|
-
console.log(` Found ${q4LlmModels.length} Q4 LLM models`);
|
|
53
|
-
q4LlmModels.slice(0, 3).forEach((model) => {
|
|
54
|
-
console.log(` - ${model.name} (${model.quantization})`);
|
|
55
|
-
});
|
|
56
|
-
console.log();
|
|
57
|
-
// Get specific model (if we have at least one model)
|
|
58
|
-
const sampleModel = allModels[0];
|
|
59
|
-
if (sampleModel) {
|
|
60
|
-
console.log(`Getting specific model: ${sampleModel.registrySource}/${sampleModel.registryPath}`);
|
|
61
|
-
const model = await modelRegistryGetModel(sampleModel.registryPath, sampleModel.registrySource);
|
|
62
|
-
console.log(" Model details:");
|
|
63
|
-
console.log(` - Name: ${model.name}`);
|
|
64
|
-
console.log(` - Addon: ${model.addon}`);
|
|
65
|
-
console.log(` - Engine: ${model.engine}`);
|
|
66
|
-
console.log(` - Quantization: ${model.quantization}`);
|
|
67
|
-
console.log(` - Expected size: ${formatSize(model.expectedSize)}`);
|
|
68
|
-
console.log(` - Checksum: ${model.sha256Checksum.slice(0, 16)}...`);
|
|
69
|
-
console.log();
|
|
70
|
-
}
|
|
71
|
-
console.log("QVAC model registry query examples completed successfully!");
|
|
72
|
-
void close();
|
|
73
|
-
process.exit(0);
|
|
74
|
-
}
|
|
75
|
-
catch (error) {
|
|
76
|
-
console.error("Error:", error);
|
|
77
|
-
process.exit(1);
|
|
78
|
-
}
|
|
79
|
-
function formatSize(bytes) {
|
|
80
|
-
if (bytes < 1024)
|
|
81
|
-
return `${bytes}B`;
|
|
82
|
-
if (bytes < 1024 * 1024)
|
|
83
|
-
return `${(bytes / 1024).toFixed(1)}KB`;
|
|
84
|
-
if (bytes < 1024 * 1024 * 1024)
|
|
85
|
-
return `${(bytes / (1024 * 1024)).toFixed(1)}MB`;
|
|
86
|
-
return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)}GB`;
|
|
87
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { loadModel, unloadModel, transcribe, PARAKEET_CTC_FP32, PARAKEET_CTC_DATA_FP32, PARAKEET_CTC_TOKENIZER, } from "@qvac/sdk";
|
|
2
|
-
const args = process.argv.slice(2);
|
|
3
|
-
if (!args[0]) {
|
|
4
|
-
console.error("Usage: bun run examples/transcription/parakeet-ctc-filesystem.ts <wav-file> " +
|
|
5
|
-
"[model.onnx] [model.onnx_data] [tokenizer.json]");
|
|
6
|
-
console.error("\nIf model paths are omitted, defaults to registry models.");
|
|
7
|
-
process.exit(1);
|
|
8
|
-
}
|
|
9
|
-
const audioFilePath = args[0];
|
|
10
|
-
const parakeetCtcModelSrc = args[1] ?? PARAKEET_CTC_FP32;
|
|
11
|
-
const parakeetCtcModelDataSrc = args[2] ?? PARAKEET_CTC_DATA_FP32;
|
|
12
|
-
const parakeetTokenizerSrc = args[3] ?? PARAKEET_CTC_TOKENIZER;
|
|
13
|
-
try {
|
|
14
|
-
console.log("Loading Parakeet CTC model...");
|
|
15
|
-
const modelId = await loadModel({
|
|
16
|
-
modelSrc: parakeetCtcModelSrc,
|
|
17
|
-
modelType: "parakeet",
|
|
18
|
-
modelConfig: {
|
|
19
|
-
modelType: "ctc",
|
|
20
|
-
parakeetCtcModelSrc,
|
|
21
|
-
parakeetCtcModelDataSrc,
|
|
22
|
-
parakeetTokenizerSrc,
|
|
23
|
-
},
|
|
24
|
-
onProgress: (progress) => {
|
|
25
|
-
console.log(`Download progress: ${progress.percentage.toFixed(1)}%`);
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
|
-
console.log(`Parakeet CTC model loaded with ID: ${modelId}`);
|
|
29
|
-
console.log("Transcribing audio...");
|
|
30
|
-
const text = await transcribe({ modelId, audioChunk: audioFilePath });
|
|
31
|
-
console.log("Transcription result:");
|
|
32
|
-
console.log(text);
|
|
33
|
-
console.log("Unloading model...");
|
|
34
|
-
await unloadModel({ modelId });
|
|
35
|
-
console.log("Done");
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
console.error("Error:", error);
|
|
39
|
-
process.exit(1);
|
|
40
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
import { loadModel, unloadModel, transcribeStream, PARAKEET_TDT_ENCODER_FP32, PARAKEET_TDT_ENCODER_DATA_FP32, PARAKEET_TDT_DECODER_FP32, PARAKEET_TDT_VOCAB, PARAKEET_TDT_PREPROCESSOR_FP32, } from "@qvac/sdk";
|
|
2
|
-
import { spawn, spawnSync } from "child_process";
|
|
3
|
-
import { platform } from "os";
|
|
4
|
-
function checkFFmpeg() {
|
|
5
|
-
const result = spawnSync("ffmpeg", ["-version"], { stdio: "ignore" });
|
|
6
|
-
if (result.error || result.status !== 0) {
|
|
7
|
-
throw new Error("FFmpeg is required but not found in PATH.");
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
function getAudioDevice() {
|
|
11
|
-
switch (platform()) {
|
|
12
|
-
case "darwin":
|
|
13
|
-
return ":0";
|
|
14
|
-
case "linux":
|
|
15
|
-
return "default";
|
|
16
|
-
case "win32":
|
|
17
|
-
// Change as per your system
|
|
18
|
-
return "audio=@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\\wave_{58C07110-A4FD-4FF8-BA10-5A3C14389F71}";
|
|
19
|
-
default:
|
|
20
|
-
throw new Error(`Unsupported platform: ${platform()}`);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
function getAudioInputArgs() {
|
|
24
|
-
switch (platform()) {
|
|
25
|
-
case "darwin":
|
|
26
|
-
return ["-f", "avfoundation", "-i", getAudioDevice()];
|
|
27
|
-
case "linux":
|
|
28
|
-
return ["-f", "pulse", "-i", getAudioDevice()];
|
|
29
|
-
case "win32":
|
|
30
|
-
return ["-f", "dshow", "-i", getAudioDevice()];
|
|
31
|
-
default:
|
|
32
|
-
throw new Error(`Unsupported platform: ${platform()}`);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
checkFFmpeg();
|
|
36
|
-
console.log("Loading Parakeet model...");
|
|
37
|
-
const modelId = await loadModel({
|
|
38
|
-
modelSrc: PARAKEET_TDT_ENCODER_FP32,
|
|
39
|
-
modelType: "parakeet",
|
|
40
|
-
modelConfig: {
|
|
41
|
-
parakeetEncoderSrc: PARAKEET_TDT_ENCODER_FP32,
|
|
42
|
-
parakeetEncoderDataSrc: PARAKEET_TDT_ENCODER_DATA_FP32,
|
|
43
|
-
parakeetDecoderSrc: PARAKEET_TDT_DECODER_FP32,
|
|
44
|
-
parakeetVocabSrc: PARAKEET_TDT_VOCAB,
|
|
45
|
-
parakeetPreprocessorSrc: PARAKEET_TDT_PREPROCESSOR_FP32,
|
|
46
|
-
},
|
|
47
|
-
onProgress: (p) => console.log(`Download: ${p.percentage.toFixed(1)}%`),
|
|
48
|
-
});
|
|
49
|
-
console.log("Model loaded. Speak into your microphone (Ctrl+C to stop):\n");
|
|
50
|
-
const ffmpeg = spawn("ffmpeg", [
|
|
51
|
-
...getAudioInputArgs(),
|
|
52
|
-
"-ar",
|
|
53
|
-
"16000",
|
|
54
|
-
"-ac",
|
|
55
|
-
"1",
|
|
56
|
-
"-sample_fmt",
|
|
57
|
-
"s16",
|
|
58
|
-
"-f",
|
|
59
|
-
"s16le",
|
|
60
|
-
"pipe:1",
|
|
61
|
-
], { stdio: ["ignore", "pipe", "ignore"] });
|
|
62
|
-
const CHUNK_SIZE = 96000; // ~3s of 16kHz 16-bit mono
|
|
63
|
-
let buffer = Buffer.alloc(0);
|
|
64
|
-
let processing = false;
|
|
65
|
-
ffmpeg.stdout.on("data", (chunk) => {
|
|
66
|
-
buffer = Buffer.concat([buffer, chunk]);
|
|
67
|
-
if (buffer.length >= CHUNK_SIZE && !processing) {
|
|
68
|
-
const audioChunk = buffer.subarray(0, CHUNK_SIZE);
|
|
69
|
-
buffer = buffer.subarray(CHUNK_SIZE);
|
|
70
|
-
processing = true;
|
|
71
|
-
void (async () => {
|
|
72
|
-
try {
|
|
73
|
-
for await (const text of transcribeStream({ modelId, audioChunk })) {
|
|
74
|
-
if (text.trim() && !text.includes("[No speech detected]")) {
|
|
75
|
-
process.stdout.write(text);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
catch (err) {
|
|
80
|
-
console.error("Transcription error:", err instanceof Error ? err.message : err);
|
|
81
|
-
}
|
|
82
|
-
finally {
|
|
83
|
-
processing = false;
|
|
84
|
-
}
|
|
85
|
-
})();
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
async function cleanup() {
|
|
89
|
-
console.log("\n\nStopping...");
|
|
90
|
-
ffmpeg.kill();
|
|
91
|
-
await unloadModel({ modelId });
|
|
92
|
-
console.log("Done.");
|
|
93
|
-
}
|
|
94
|
-
process.on("SIGINT", () => void cleanup());
|
|
95
|
-
process.on("SIGTERM", () => void cleanup());
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { loadModel, unloadModel, transcribe, PARAKEET_TDT_ENCODER_FP32, PARAKEET_TDT_ENCODER_DATA_FP32, PARAKEET_TDT_DECODER_FP32, PARAKEET_TDT_VOCAB, PARAKEET_TDT_PREPROCESSOR_FP32, PARAKEET_SORTFORMER_FP32, } from "@qvac/sdk";
|
|
2
|
-
import { dirname, join } from "path";
|
|
3
|
-
import { fileURLToPath } from "url";
|
|
4
|
-
import { readFileSync, writeFileSync, mkdirSync } from "fs";
|
|
5
|
-
import { tmpdir } from "os";
|
|
6
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
7
|
-
const args = process.argv.slice(2);
|
|
8
|
-
const sortformerSrc = args[0] ?? PARAKEET_SORTFORMER_FP32;
|
|
9
|
-
const defaultAudioPath = join(__dirname, "..", "..", "..", "examples", "transcription", "audio", "diarization-sample-16k.wav");
|
|
10
|
-
const audioFilePath = args[1] ?? defaultAudioPath;
|
|
11
|
-
// ── Step 1: Diarize with Sortformer ──
|
|
12
|
-
const sfModelId = await loadModel({
|
|
13
|
-
modelSrc: sortformerSrc,
|
|
14
|
-
modelType: "parakeet",
|
|
15
|
-
modelConfig: {
|
|
16
|
-
modelType: "sortformer",
|
|
17
|
-
parakeetSortformerSrc: sortformerSrc,
|
|
18
|
-
},
|
|
19
|
-
});
|
|
20
|
-
const diarization = await transcribe({
|
|
21
|
-
modelId: sfModelId,
|
|
22
|
-
audioChunk: audioFilePath,
|
|
23
|
-
});
|
|
24
|
-
await unloadModel({ modelId: sfModelId });
|
|
25
|
-
const segments = parseDiarization(diarization);
|
|
26
|
-
// ── Step 2: Transcribe each segment with TDT ──
|
|
27
|
-
const tdtModelId = await loadModel({
|
|
28
|
-
modelSrc: PARAKEET_TDT_ENCODER_FP32,
|
|
29
|
-
modelType: "parakeet",
|
|
30
|
-
modelConfig: {
|
|
31
|
-
parakeetEncoderSrc: PARAKEET_TDT_ENCODER_FP32,
|
|
32
|
-
parakeetEncoderDataSrc: PARAKEET_TDT_ENCODER_DATA_FP32,
|
|
33
|
-
parakeetDecoderSrc: PARAKEET_TDT_DECODER_FP32,
|
|
34
|
-
parakeetVocabSrc: PARAKEET_TDT_VOCAB,
|
|
35
|
-
parakeetPreprocessorSrc: PARAKEET_TDT_PREPROCESSOR_FP32,
|
|
36
|
-
},
|
|
37
|
-
});
|
|
38
|
-
const pcm = readPcm(audioFilePath);
|
|
39
|
-
const sliceDir = join(tmpdir(), `qvac-diarize-${Date.now()}`);
|
|
40
|
-
mkdirSync(sliceDir, { recursive: true });
|
|
41
|
-
const results = [];
|
|
42
|
-
for (let i = 0; i < segments.length; i++) {
|
|
43
|
-
const seg = segments[i];
|
|
44
|
-
const slicePath = join(sliceDir, `seg-${i}.wav`);
|
|
45
|
-
if (!writeWavSlice(pcm, seg.start, seg.end, slicePath)) {
|
|
46
|
-
results.push({ ...seg, text: "[No speech detected]" });
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
const text = await transcribe({ modelId: tdtModelId, audioChunk: slicePath });
|
|
50
|
-
results.push({ ...seg, text: text.trim() || "[No speech detected]" });
|
|
51
|
-
}
|
|
52
|
-
await unloadModel({ modelId: tdtModelId });
|
|
53
|
-
// ── Step 3: Merge consecutive same-speaker segments and print ──
|
|
54
|
-
const merged = mergeSpeakers(results);
|
|
55
|
-
console.log("\n=== DIARIZED TRANSCRIPTION ===");
|
|
56
|
-
console.log("=".repeat(60));
|
|
57
|
-
for (const entry of merged) {
|
|
58
|
-
console.log(`Speaker ${entry.speaker} (${entry.start.toFixed(2)}s - ${entry.end.toFixed(2)}s):`);
|
|
59
|
-
console.log(` ${entry.text}\n`);
|
|
60
|
-
}
|
|
61
|
-
console.log("=".repeat(60));
|
|
62
|
-
console.log("\nDone!");
|
|
63
|
-
// ── Helpers ──
|
|
64
|
-
function parseDiarization(text) {
|
|
65
|
-
const segs = [];
|
|
66
|
-
for (const line of text.split("\n")) {
|
|
67
|
-
const m = line.match(/Speaker (\d+): ([\d.]+)s - ([\d.]+)s/);
|
|
68
|
-
if (m)
|
|
69
|
-
segs.push({ speaker: +m[1], start: +m[2], end: +m[3] });
|
|
70
|
-
}
|
|
71
|
-
return segs.sort((a, b) => a.start - b.start);
|
|
72
|
-
}
|
|
73
|
-
function readPcm(wavPath) {
|
|
74
|
-
const buf = readFileSync(wavPath);
|
|
75
|
-
const dataOffset = buf.indexOf("data") + 4;
|
|
76
|
-
return buf.subarray(dataOffset + 4, dataOffset + 4 + buf.readUInt32LE(dataOffset));
|
|
77
|
-
}
|
|
78
|
-
function writeWavSlice(pcm, startSec, endSec, outPath) {
|
|
79
|
-
const SR = 16000;
|
|
80
|
-
const BPS = 2;
|
|
81
|
-
const startByte = Math.floor(startSec * SR) * BPS;
|
|
82
|
-
const endByte = Math.min(Math.ceil(endSec * SR) * BPS, pcm.length);
|
|
83
|
-
if (startByte >= endByte)
|
|
84
|
-
return false;
|
|
85
|
-
const slice = pcm.subarray(startByte, endByte);
|
|
86
|
-
const hdr = Buffer.alloc(44);
|
|
87
|
-
hdr.write("RIFF", 0);
|
|
88
|
-
hdr.writeUInt32LE(36 + slice.length, 4);
|
|
89
|
-
hdr.write("WAVEfmt ", 8);
|
|
90
|
-
hdr.writeUInt32LE(16, 16);
|
|
91
|
-
hdr.writeUInt16LE(1, 20);
|
|
92
|
-
hdr.writeUInt16LE(1, 22);
|
|
93
|
-
hdr.writeUInt32LE(SR, 24);
|
|
94
|
-
hdr.writeUInt32LE(SR * BPS, 28);
|
|
95
|
-
hdr.writeUInt16LE(BPS, 32);
|
|
96
|
-
hdr.writeUInt16LE(16, 34);
|
|
97
|
-
hdr.write("data", 36);
|
|
98
|
-
hdr.writeUInt32LE(slice.length, 40);
|
|
99
|
-
writeFileSync(outPath, Buffer.concat([hdr, slice]));
|
|
100
|
-
return true;
|
|
101
|
-
}
|
|
102
|
-
function mergeSpeakers(entries) {
|
|
103
|
-
const out = [];
|
|
104
|
-
for (const e of entries) {
|
|
105
|
-
const last = out[out.length - 1];
|
|
106
|
-
if (last && last.speaker === e.speaker) {
|
|
107
|
-
last.text += " " + e.text;
|
|
108
|
-
last.end = e.end;
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
out.push({ ...e });
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
return out;
|
|
115
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { loadModel, unloadModel, transcribe, PARAKEET_TDT_ENCODER_FP32, PARAKEET_TDT_ENCODER_DATA_FP32, PARAKEET_TDT_DECODER_FP32, PARAKEET_TDT_VOCAB, PARAKEET_TDT_PREPROCESSOR_FP32, } from "@qvac/sdk";
|
|
2
|
-
const args = process.argv.slice(2);
|
|
3
|
-
if (!args[0]) {
|
|
4
|
-
console.error("Usage: bun run examples/transcription/parakeet-tdt-filesystem.ts <wav-file-path> " +
|
|
5
|
-
"[encoder-onnx] [encoder-data] [decoder-onnx] [vocab-txt] [preprocessor-onnx]");
|
|
6
|
-
console.error("\nIf model paths are omitted, defaults to registry models.");
|
|
7
|
-
process.exit(1);
|
|
8
|
-
}
|
|
9
|
-
const audioFilePath = args[0];
|
|
10
|
-
const parakeetEncoderSrc = args[1] ?? PARAKEET_TDT_ENCODER_FP32;
|
|
11
|
-
const parakeetEncoderDataSrc = args[2] ?? PARAKEET_TDT_ENCODER_DATA_FP32;
|
|
12
|
-
const parakeetDecoderSrc = args[3] ?? PARAKEET_TDT_DECODER_FP32;
|
|
13
|
-
const parakeetVocabSrc = args[4] ?? PARAKEET_TDT_VOCAB;
|
|
14
|
-
const parakeetPreprocessorSrc = args[5] ?? PARAKEET_TDT_PREPROCESSOR_FP32;
|
|
15
|
-
try {
|
|
16
|
-
console.log("Starting Parakeet transcription example...");
|
|
17
|
-
console.log("Loading Parakeet model...");
|
|
18
|
-
const modelId = await loadModel({
|
|
19
|
-
modelSrc: parakeetEncoderSrc,
|
|
20
|
-
modelType: "parakeet",
|
|
21
|
-
modelConfig: {
|
|
22
|
-
parakeetEncoderSrc,
|
|
23
|
-
parakeetEncoderDataSrc,
|
|
24
|
-
parakeetDecoderSrc,
|
|
25
|
-
parakeetVocabSrc,
|
|
26
|
-
parakeetPreprocessorSrc,
|
|
27
|
-
},
|
|
28
|
-
onProgress: (progress) => {
|
|
29
|
-
console.log(`Download progress: ${progress.percentage.toFixed(1)}%`);
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
console.log(`Parakeet model loaded with ID: ${modelId}`);
|
|
33
|
-
console.log("Transcribing audio...");
|
|
34
|
-
const text = await transcribe({ modelId, audioChunk: audioFilePath });
|
|
35
|
-
console.log("Transcription result:");
|
|
36
|
-
console.log(text);
|
|
37
|
-
console.log("Unloading Parakeet model...");
|
|
38
|
-
await unloadModel({ modelId });
|
|
39
|
-
console.log("Parakeet model unloaded successfully");
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
console.error("Error:", error);
|
|
43
|
-
process.exit(1);
|
|
44
|
-
}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { loadModel, unloadModel, transcribe, WHISPER_TINY } from "@qvac/sdk";
|
|
2
|
-
// Parse command line arguments
|
|
3
|
-
const args = process.argv.slice(2);
|
|
4
|
-
if (!args[0]) {
|
|
5
|
-
console.error("Usage: bun run examples/whispercpp-filesystem.ts <wav-file-path>");
|
|
6
|
-
process.exit(1);
|
|
7
|
-
}
|
|
8
|
-
const audioFilePath = args[0];
|
|
9
|
-
try {
|
|
10
|
-
console.log("🎤 Starting Whisper transcription example...");
|
|
11
|
-
// Load the Whisper model
|
|
12
|
-
console.log("📥 Loading Whisper model...");
|
|
13
|
-
const modelId = await loadModel({
|
|
14
|
-
modelSrc: WHISPER_TINY,
|
|
15
|
-
modelType: "whisper",
|
|
16
|
-
modelConfig: {
|
|
17
|
-
audio_format: "f32le",
|
|
18
|
-
// Sampling strategy
|
|
19
|
-
strategy: "greedy",
|
|
20
|
-
n_threads: 4,
|
|
21
|
-
// Transcription options
|
|
22
|
-
language: "en",
|
|
23
|
-
translate: false,
|
|
24
|
-
no_timestamps: false,
|
|
25
|
-
single_segment: false,
|
|
26
|
-
print_timestamps: true,
|
|
27
|
-
token_timestamps: true,
|
|
28
|
-
// Quality settings
|
|
29
|
-
temperature: 0.0,
|
|
30
|
-
suppress_blank: true,
|
|
31
|
-
suppress_nst: true,
|
|
32
|
-
// Advanced tuning
|
|
33
|
-
entropy_thold: 2.4,
|
|
34
|
-
logprob_thold: -1.0,
|
|
35
|
-
// VAD configuration
|
|
36
|
-
vad_params: {
|
|
37
|
-
threshold: 0.35,
|
|
38
|
-
min_speech_duration_ms: 200,
|
|
39
|
-
min_silence_duration_ms: 150,
|
|
40
|
-
max_speech_duration_s: 30.0,
|
|
41
|
-
speech_pad_ms: 600,
|
|
42
|
-
samples_overlap: 0.3,
|
|
43
|
-
},
|
|
44
|
-
// Context parameters for GPU
|
|
45
|
-
contextParams: {
|
|
46
|
-
use_gpu: true,
|
|
47
|
-
flash_attn: true,
|
|
48
|
-
gpu_device: 0,
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
onProgress: (progress) => {
|
|
52
|
-
console.log(progress);
|
|
53
|
-
},
|
|
54
|
-
});
|
|
55
|
-
console.log(`✅ Whisper model loaded with ID: ${modelId}`);
|
|
56
|
-
// Perform transcription
|
|
57
|
-
console.log("🎧 Transcribing audio...");
|
|
58
|
-
const text = await transcribe({ modelId, audioChunk: audioFilePath });
|
|
59
|
-
console.log("📝 Transcription result:");
|
|
60
|
-
console.log(text);
|
|
61
|
-
// Unload the model when done
|
|
62
|
-
console.log("🧹 Unloading Whisper model...");
|
|
63
|
-
await unloadModel({ modelId });
|
|
64
|
-
console.log("✅ Whisper model unloaded successfully");
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
console.error("❌ Error:", error);
|
|
68
|
-
process.exit(1);
|
|
69
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { loadModel, unloadModel, transcribe, WHISPER_TINY } from "@qvac/sdk";
|
|
2
|
-
try {
|
|
3
|
-
console.log("🎤 Starting Whisper transcription with prompt example...");
|
|
4
|
-
// Load the Whisper model
|
|
5
|
-
console.log("📥 Loading Whisper model...");
|
|
6
|
-
const modelId = await loadModel({
|
|
7
|
-
modelSrc: WHISPER_TINY,
|
|
8
|
-
modelType: "whisper",
|
|
9
|
-
modelConfig: {
|
|
10
|
-
audio_format: "f32le",
|
|
11
|
-
// Sampling strategy
|
|
12
|
-
strategy: "greedy",
|
|
13
|
-
n_threads: 4,
|
|
14
|
-
// Transcription options
|
|
15
|
-
language: "en",
|
|
16
|
-
translate: false,
|
|
17
|
-
no_timestamps: false,
|
|
18
|
-
single_segment: false,
|
|
19
|
-
print_timestamps: true,
|
|
20
|
-
token_timestamps: true,
|
|
21
|
-
// Quality settings
|
|
22
|
-
temperature: 0.0,
|
|
23
|
-
suppress_blank: true,
|
|
24
|
-
suppress_nst: true,
|
|
25
|
-
// Advanced tuning
|
|
26
|
-
entropy_thold: 2.4,
|
|
27
|
-
logprob_thold: -1.0,
|
|
28
|
-
// VAD configuration
|
|
29
|
-
vad_params: {
|
|
30
|
-
threshold: 0.35,
|
|
31
|
-
min_speech_duration_ms: 200,
|
|
32
|
-
min_silence_duration_ms: 150,
|
|
33
|
-
max_speech_duration_s: 30.0,
|
|
34
|
-
speech_pad_ms: 600,
|
|
35
|
-
samples_overlap: 0.3,
|
|
36
|
-
},
|
|
37
|
-
// Context parameters for GPU
|
|
38
|
-
contextParams: {
|
|
39
|
-
use_gpu: true,
|
|
40
|
-
flash_attn: true,
|
|
41
|
-
gpu_device: 0,
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
onProgress: (progress) => {
|
|
45
|
-
console.log(progress);
|
|
46
|
-
},
|
|
47
|
-
});
|
|
48
|
-
console.log(`✅ Whisper model loaded with ID: ${modelId}`);
|
|
49
|
-
// Perform transcription
|
|
50
|
-
console.log("🎧 Transcribing audio...");
|
|
51
|
-
const text = await transcribe({
|
|
52
|
-
modelId,
|
|
53
|
-
audioChunk: "examples/audio/sample-16khz.wav",
|
|
54
|
-
prompt: "This is a test recording with clear speech and proper punctuation.",
|
|
55
|
-
});
|
|
56
|
-
console.log("📝 Transcription result:");
|
|
57
|
-
console.log(text);
|
|
58
|
-
// Unload the model when done
|
|
59
|
-
console.log("🧹 Unloading Whisper model...");
|
|
60
|
-
await unloadModel({ modelId });
|
|
61
|
-
console.log("✅ Whisper model unloaded successfully");
|
|
62
|
-
process.exit(0);
|
|
63
|
-
}
|
|
64
|
-
catch (error) {
|
|
65
|
-
console.error("❌ Error:", error);
|
|
66
|
-
process.exit(1);
|
|
67
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { loadModel, translate, unloadModel, BERGAMOT_EN_FR } from "@qvac/sdk";
|
|
2
|
-
try {
|
|
3
|
-
const modelId = await loadModel({
|
|
4
|
-
modelSrc: BERGAMOT_EN_FR,
|
|
5
|
-
modelType: "nmt",
|
|
6
|
-
modelConfig: {
|
|
7
|
-
engine: "Bergamot",
|
|
8
|
-
from: "en",
|
|
9
|
-
to: "fr",
|
|
10
|
-
beamsize: 1,
|
|
11
|
-
normalize: 1,
|
|
12
|
-
temperature: 0.2,
|
|
13
|
-
norepeatngramsize: 3,
|
|
14
|
-
lengthpenalty: 1.2,
|
|
15
|
-
},
|
|
16
|
-
onProgress: (progress) => {
|
|
17
|
-
console.log(progress);
|
|
18
|
-
},
|
|
19
|
-
});
|
|
20
|
-
console.log(`✅ Bergamot model loaded: ${modelId}`);
|
|
21
|
-
// Test with array of texts for batch processing
|
|
22
|
-
const texts = [
|
|
23
|
-
"Hello world",
|
|
24
|
-
"How are you today?",
|
|
25
|
-
"This is a test of batch translation",
|
|
26
|
-
"The weather is nice",
|
|
27
|
-
];
|
|
28
|
-
console.log("\n📝 Translating batch of texts:");
|
|
29
|
-
texts.forEach((text, i) => console.log(` ${i + 1}. ${text}`));
|
|
30
|
-
const result = translate({
|
|
31
|
-
modelId,
|
|
32
|
-
text: texts, // Pass array for batch processing
|
|
33
|
-
modelType: "nmt",
|
|
34
|
-
stream: false,
|
|
35
|
-
});
|
|
36
|
-
const translatedText = await result.text;
|
|
37
|
-
const translations = translatedText.split("\n");
|
|
38
|
-
console.log("\n✅ Translations:");
|
|
39
|
-
translations.forEach((translation, i) => {
|
|
40
|
-
if (i < texts.length) {
|
|
41
|
-
console.log(` ${i + 1}. ${texts[i]} -> "${translation}"`);
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
await unloadModel({ modelId });
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
console.error("❌ Error:", error);
|
|
48
|
-
process.exit(1);
|
|
49
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { BERGAMOT_ES_EN, BERGAMOT_EN_IT, loadModel, translate, unloadModel } from "@qvac/sdk";
|
|
2
|
-
/**
|
|
3
|
-
* Example: Pivot Translation with Bergamot
|
|
4
|
-
*
|
|
5
|
-
* Demonstrates translating Spanish to Italian through English as a pivot language.
|
|
6
|
-
* This requires two models:
|
|
7
|
-
* 1. Spanish → English (primary model)
|
|
8
|
-
* 2. English → Italian (pivot model)
|
|
9
|
-
*
|
|
10
|
-
* The API structure follows the standard Bergamot model pattern:
|
|
11
|
-
* - modelSrc: Primary translation model
|
|
12
|
-
* - modelConfig: Configuration with Bergamot-specific settings
|
|
13
|
-
* - modelConfig.pivotModel: Configuration for the secondary model
|
|
14
|
-
*/
|
|
15
|
-
// Spanish to Italian via English pivot example
|
|
16
|
-
try {
|
|
17
|
-
// Load the primary model (Spanish → English) with pivot configuration
|
|
18
|
-
const modelId = await loadModel({
|
|
19
|
-
modelSrc: BERGAMOT_ES_EN, // Primary model: Spanish → English
|
|
20
|
-
modelType: "nmt",
|
|
21
|
-
modelConfig: {
|
|
22
|
-
engine: "Bergamot",
|
|
23
|
-
from: "es",
|
|
24
|
-
to: "it", // Final target language (SDK handles the pivot internally)
|
|
25
|
-
beamsize: 4,
|
|
26
|
-
normalize: 1,
|
|
27
|
-
temperature: 0.3,
|
|
28
|
-
topk: 100,
|
|
29
|
-
// Pivot model configuration (English → Italian)
|
|
30
|
-
pivotModel: {
|
|
31
|
-
modelSrc: BERGAMOT_EN_IT, // Source for English → Italian model
|
|
32
|
-
// Bergamot-specific generation parameters for pivot model
|
|
33
|
-
beamsize: 4,
|
|
34
|
-
temperature: 0.3,
|
|
35
|
-
topk: 100,
|
|
36
|
-
normalize: 1,
|
|
37
|
-
lengthpenalty: 1.2,
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
onProgress: (progress) => {
|
|
41
|
-
console.log(progress);
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
console.log(`✅ Pivot translation model loaded: ${modelId}`);
|
|
45
|
-
console.log(" Primary: Spanish → English");
|
|
46
|
-
console.log(" Pivot: English → Italian");
|
|
47
|
-
// Spanish text to translate
|
|
48
|
-
const spanishText = `Era una mañana soleada cuando María decidió visitar el mercado local.
|
|
49
|
-
Compró frutas frescas, verduras y flores para su casa.
|
|
50
|
-
El vendedor le recomendó las mejores manzanas de la temporada.`;
|
|
51
|
-
console.log("\n📝 Original Spanish text:");
|
|
52
|
-
console.log(spanishText);
|
|
53
|
-
// Translate Spanish → English → Italian
|
|
54
|
-
const result = translate({
|
|
55
|
-
modelId,
|
|
56
|
-
text: spanishText,
|
|
57
|
-
modelType: "nmt",
|
|
58
|
-
stream: false,
|
|
59
|
-
});
|
|
60
|
-
const italianText = await result.text;
|
|
61
|
-
console.log("\n🇮🇹 Translated to Italian (via English):");
|
|
62
|
-
console.log(italianText);
|
|
63
|
-
// Expected output (approximate):
|
|
64
|
-
// "Era una mattina di sole quando Maria decise di visitare il mercato locale.
|
|
65
|
-
// Ha comprato frutta fresca, verdura e fiori per la sua casa.
|
|
66
|
-
// Il venditore ha consigliato le migliori mele della stagione."
|
|
67
|
-
await unloadModel({ modelId });
|
|
68
|
-
console.log("\n✅ Model unloaded successfully");
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
console.error("❌ Error:", error);
|
|
72
|
-
process.exit(1);
|
|
73
|
-
}
|