Mercurial
diff dictation/BUILD @ 277:1d99147f520c
Merge Qwen services and infinite canvas heads
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Mon, 17 Aug 2026 17:01:40 -0700 |
| parents | 78699f810817 |
| children | 49e9e591c9bb |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dictation/BUILD Mon Aug 17 17:01:40 2026 -0700 @@ -0,0 +1,126 @@ +load("@dictation_pip//:requirements.bzl", "requirement") +load("@rules_python//python:pip.bzl", "compile_pip_requirements") +load("@rules_python//python:py_binary.bzl", "py_binary") +load("@rules_python//python:py_library.bzl", "py_library") +load("@rules_python//python:py_test.bzl", "py_test") +load("@rules_shell//shell:sh_binary.bzl", "sh_binary") + +compile_pip_requirements( + name = "requirements", + src = "requirements.in", + extra_args = ["--allow-unsafe"], + requirements_txt = "requirements_lock.txt", +) + +py_library( + name = "dictation_lib", + srcs = [ + "__init__.py", + "audio.py", + "config.py", + "server.py", + "session.py", + "transcriber.py", + ], + data = glob(["web/**"]), + deps = [ + requirement("aiortc"), + requirement("av"), + requirement("fastapi"), + requirement("faster-whisper"), + requirement("huggingface-hub"), + requirement("numpy"), + requirement("uvicorn"), + ], +) + +py_binary( + name = "dictation_bin", + srcs = ["main.py"], + data = glob(["web/**"]), + main = "main.py", + deps = [ + ":dictation_lib", + requirement("ctranslate2"), + requirement("nvidia-cublas-cu12"), + requirement("nvidia-cudnn-cu12"), + ], +) + +py_binary( + name = "webrtc_smoke", + srcs = ["webrtc_smoke.py"], + main = "webrtc_smoke.py", + deps = [ + requirement("aiortc"), + requirement("httpx"), + ], +) + +[ + sh_binary( + name = command, + srcs = ["launcher.sh"], + args = [ + "$(rootpath :dictation_bin)", + command, + ], + data = [ + ":dictation_bin", + requirement("nvidia-cublas-cu12"), + requirement("nvidia-cudnn-cu12"), + ], + ) + for command in [ + "server", + "preflight", + "download_model", + "transcribe", + ] +] + +py_test( + name = "audio_test", + srcs = ["audio_test.py"], + deps = [ + ":dictation_lib", + requirement("numpy"), + ], +) + +py_test( + name = "config_test", + srcs = ["config_test.py"], + deps = [":dictation_lib"], +) + +py_test( + name = "server_test", + srcs = ["server_test.py"], + data = glob(["web/**"]), + deps = [ + ":dictation_lib", + requirement("httpx"), + ], +) + +py_test( + name = "webrtc_test", + srcs = ["webrtc_test.py"], + deps = [ + ":dictation_lib", + requirement("aiortc"), + requirement("av"), + requirement("numpy"), + ], +) + +test_suite( + name = "all_tests", + tests = [ + ":audio_test", + ":config_test", + ":server_test", + ":webrtc_test", + ], +)