onwx / setup.bat
ryugyosoft's picture
onwx 0.1.0: LLMs entirely on the AMD Ryzen AI NPU (XDNA2)
dc22334 verified
Raw History Blame Contribute Delete
2.38 kB
@echo off
rem onwx - LLMs on the AMD Ryzen AI NPU: install the engine and the resident tray app (Windows).
rem Finds Python 3.10+ (offers to install it with winget), creates .venv, installs onwx + the tray, adds "onwx" to
rem the Start menu and starts it in the task tray. Models are downloaded later from the onwx window (Models tab).
setlocal
cd /d "%~dp0"
set PYTHONUTF8=1
if not exist ".venv\Scripts\python.exe" goto create
rem pip ran for this pyproject.toml already (onwx.deps): nothing to install. Otherwise - new packages from an update,
rem an update whose pip could not finish, an older install - pip runs again.
".venv\Scripts\python.exe" -m onwx.deps check >nul 2>&1 && goto shortcut
goto install
:create
call "%~dp0find_python.bat"
if not defined PY (
pause
exit /b 1
)
echo [setup] creating Python environment in .venv ...
%PY% -m venv .venv
if errorlevel 1 (
echo [setup] could not create the Python environment.
pause
exit /b 1
)
:install
rem a running onwx keeps its packages' DLLs locked: stopped first (it starts again at the end)
".venv\Scripts\python.exe" -m onwx.deps stop
rem (the bundled pip is fine; a newer pip once failed to install packages that have scripts, so it is not upgraded)
".venv\Scripts\python.exe" -m pip install -e .[tray]
if not errorlevel 1 goto installed
if defined RETRIED (
echo [setup] package installation failed.
pause
exit /b 1
)
echo [setup] installation failed; rebuilding the Python environment once ...
set RETRIED=1
rmdir /s /q .venv
if not defined PY call "%~dp0find_python.bat"
%PY% -m venv .venv
goto install
:installed
".venv\Scripts\python.exe" -m onwx.deps done
echo ok> ".venv\installed.txt"
:shortcut
rem Start menu entry: pythonw -m onwx tray (no console window)
set "PYW=%CD%\.venv\Scripts\pythonw.exe"
powershell -NoProfile -Command ^
"$s = (New-Object -ComObject WScript.Shell).CreateShortcut([Environment]::GetFolderPath('Programs') + '\onwx.lnk');" ^
"$s.TargetPath = '%PYW%'; $s.Arguments = '-m onwx tray'; $s.WorkingDirectory = '%CD%';" ^
"$s.Description = 'onwx - LLMs on the AMD Ryzen AI NPU'; $s.IconLocation = '%CD%\onwx\web\icon.ico,0'; $s.Save()"
echo [setup] Start menu: onwx
echo [start] onwx is starting in the task tray. Pick a model to download in the window that opens.
start "" "%PYW%" -m onwx tray