Describe clearly you don't need to download models on the server.
This commit is contained in:
@@ -290,3 +290,7 @@ starts the weight download. Weights load exactly when they are needed or asked f
|
|||||||
(`loadStarted`, progress); the next load starts from clean progress. The explicit
|
(`loadStarted`, progress); the next load starts from clean progress. The explicit
|
||||||
download is a full pipeline load, so it also warms up inference and surfaces the
|
download is a full pipeline load, so it also warms up inference and surfaces the
|
||||||
"Running on …" backend badge.
|
"Running on …" backend badge.
|
||||||
|
**Amendment (2026-07-14):** while the engine toggle is on "server" (signed in,
|
||||||
|
available), `ModelPicker` states explicitly that nothing is downloaded to the
|
||||||
|
device; the Download button stays (with a matching tooltip) for on-device /
|
||||||
|
offline preparation.
|
||||||
|
|||||||
@@ -644,6 +644,7 @@ export function App() {
|
|||||||
disabled={busy || liveActive}
|
disabled={busy || liveActive}
|
||||||
onDownloadSelected={handleDownloadModel}
|
onDownloadSelected={handleDownloadModel}
|
||||||
downloading={loadStarted && !modelReady}
|
downloading={loadStarted && !modelReady}
|
||||||
|
serverEngine={serverSelected}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{model?.multilingual && (
|
{model?.multilingual && (
|
||||||
|
|||||||
@@ -23,6 +23,8 @@ interface ModelPickerProps {
|
|||||||
onDownloadSelected: () => void;
|
onDownloadSelected: () => void;
|
||||||
/** True while a model load/download is in flight. */
|
/** True while a model load/download is in flight. */
|
||||||
downloading: boolean;
|
downloading: boolean;
|
||||||
|
/** True when transcription will run on the server — no download needed (D-020). */
|
||||||
|
serverEngine: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
const DEVICE_OPTIONS: readonly { value: DevicePreference; label: string }[] = [
|
const DEVICE_OPTIONS: readonly { value: DevicePreference; label: string }[] = [
|
||||||
@@ -56,6 +58,7 @@ export function ModelPicker({
|
|||||||
disabled = false,
|
disabled = false,
|
||||||
onDownloadSelected,
|
onDownloadSelected,
|
||||||
downloading,
|
downloading,
|
||||||
|
serverEngine,
|
||||||
}: ModelPickerProps) {
|
}: ModelPickerProps) {
|
||||||
// Size estimates depend on the dtype the worker will pick, which depends on
|
// Size estimates depend on the dtype the worker will pick, which depends on
|
||||||
// the device. Until the worker has reported one, assume WASM unless the
|
// the device. Until the worker has reported one, assume WASM unless the
|
||||||
@@ -116,6 +119,13 @@ export function ModelPicker({
|
|||||||
Model switching is disabled while a transcription is running.
|
Model switching is disabled while a transcription is running.
|
||||||
</p>
|
</p>
|
||||||
)}
|
)}
|
||||||
|
{serverEngine && (
|
||||||
|
<p className="model-picker-hint server-engine-hint" role="status">
|
||||||
|
Transcription is set to run on the server — the selected model runs
|
||||||
|
there, so nothing is downloaded to this device. Downloading is only
|
||||||
|
useful if you plan to transcribe on-device or offline.
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
<p
|
<p
|
||||||
className={`offline-status${offlineReady && downloaded.size > 0 ? " offline-status-ready" : ""}`}
|
className={`offline-status${offlineReady && downloaded.size > 0 ? " offline-status-ready" : ""}`}
|
||||||
>
|
>
|
||||||
@@ -164,7 +174,11 @@ export function ModelPicker({
|
|||||||
type="button"
|
type="button"
|
||||||
className="model-download-button"
|
className="model-download-button"
|
||||||
disabled={disabled || downloading}
|
disabled={disabled || downloading}
|
||||||
title="Download this model now so it is available offline. Otherwise it downloads automatically when an on-device transcription starts."
|
title={
|
||||||
|
serverEngine
|
||||||
|
? "Not needed while transcribing on the server — download only to prepare on-device or offline use."
|
||||||
|
: "Download this model now so it is available offline. Otherwise it downloads automatically when an on-device transcription starts."
|
||||||
|
}
|
||||||
onClick={onDownloadSelected}
|
onClick={onDownloadSelected}
|
||||||
>
|
>
|
||||||
{downloading ? "Downloading…" : "Download"}
|
{downloading ? "Downloading…" : "Download"}
|
||||||
|
|||||||
@@ -207,6 +207,11 @@ body {
|
|||||||
font-size: 0.85rem;
|
font-size: 0.85rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Server engine active — no model download needed on this device (D-020). */
|
||||||
|
.server-engine-hint {
|
||||||
|
color: #9ad6ae;
|
||||||
|
}
|
||||||
|
|
||||||
.device-select,
|
.device-select,
|
||||||
.transcription-options label {
|
.transcription-options label {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
Reference in New Issue
Block a user