Interface IChatModelProvisioner
The only way a chat model's bytes arrive. Nothing downloads implicitly:
IChatModelHost.AcquireAsync on an unprovisioned model throws
ChatModelNotProvisioned rather than starting a 1.24 GB transfer. The
Plan() - consent - ProvisionAsync(IProgress<ModelProvisioningProgress>?, CancellationToken) sequence is what App Store Review
4.2.3(ii) requires ("disclose the size of the download and prompt users before doing so"),
expressed in the API rather than left to a README.
public interface IChatModelProvisioner
Properties
- IsProvisioned
Whether the marker is present and every file's length matches.
Methods
- Plan()
Everything a consent sheet needs. No network I/O beyond a stat.
- ProvisionAsync(IProgress<ModelProvisioningProgress>?, CancellationToken)
Pre-checks free disk against the bundle total, then delegates to sub-project 2's
IOnnxModelStore.EnsureAsync- resumable ranged GET, per-file SHA-256 against the git-LFS oid, atomic marker, stale-revision purge - all reused unchanged.
- RemoveAsync(CancellationToken)
Deletes the model directory.