Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: CI
on:
pull_request:
push:
branches: [master]
jobs:
test:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Python unit tests
run: python -m unittest discover -s tests -v
- name: Compile Python sources
run: python -m compileall proxy_server.py tools
- name: Parse PowerShell scripts
shell: pwsh
run: |
$errors = @()
Get-ChildItem -Filter *.ps1 | ForEach-Object {
$tokens = $null; $parseErrors = $null
[System.Management.Automation.Language.Parser]::ParseFile($_.FullName, [ref]$tokens, [ref]$parseErrors) | Out-Null
if ($parseErrors) { $errors += $parseErrors }
}
if ($errors.Count -gt 0) { $errors | Format-List; exit 1 }
16 changes: 5 additions & 11 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,19 +1,13 @@
# Virtual Environment
.venv/
__pycache__/
*.pyc

# Configuration (Local)
settings.local.json
config.env

# OVMS Binary & Cache
ovms/
cache/
xpu-smi/

# Generated Launch Scripts (Created by install_all.ps1)
start_server.ps1

# Logs
models/
artifacts/*.log
artifacts/*.lock
config.json.bak
*.log

34 changes: 34 additions & 0 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Architecture

## Principles

- `settings.json` contains stable local runtime settings; secrets remain environment variables.
- `runtime-manifest.json` pins the supported OVMS release in one place.
- `config.json` is the source of truth for enabled/served models.
- OVMS owns model pull/configure operations; this project wraps the native CLI instead of generating `graph.pbtxt` itself.
- The compatibility gateway is optional and passthrough by default.
- Telemetry is per request; SSE chunks are never reported as tokens unless OVMS returns token usage.

## Runtime flow

```text
PowerShell CLI
-> model/runtime manager
-> OVMS native CLI / config.json
-> model repository

Client -> OVMS :8000
Client -> optional gateway :8001 -> OVMS :8000
```

## Model lifecycle

```powershell
.\manage_models.ps1 pull OpenVINO/<model> -Name my-model
.\manage_models.ps1 enable my-model
.\start_server.ps1
.\manage_models.ps1 status
.\manage_models.ps1 disable my-model
```

`switch`/`rollback` remain available for compatibility with the previous single-active-model flow.
Loading
Loading