Feat/local endpoint llm (#148)
* serve local model in a different process from the app --------- Co-authored-by: albert <albert@cinnamon.is> Co-authored-by: trducng <trungduc1992@gmail.com>
This commit is contained in:
115
scripts/server_llamacpp_windows.bat
Normal file
115
scripts/server_llamacpp_windows.bat
Normal file
@@ -0,0 +1,115 @@
|
||||
@echo off
|
||||
|
||||
@rem main code execution
|
||||
|
||||
call :print_highlight "Starting inference server for llama-cpp"
|
||||
|
||||
cd /D "%~dp0\.."
|
||||
echo "Change the current directory to: %cd%"
|
||||
|
||||
call :path_sanity_check
|
||||
call :deactivate_environment
|
||||
|
||||
@rem config
|
||||
set ENV_NAME=llama-cpp-python-server
|
||||
set PYTHON_VERSION=3.10
|
||||
set CONDA_ROOT_PREFIX=%cd%\install_dir\conda
|
||||
set INSTALL_ENV_DIR=%cd%\install_dir\server_envs\%ENV_NAME%
|
||||
|
||||
echo "Python version: %PYTHON_VERSION%"
|
||||
echo "Conda prefix: %CONDA_ROOT_PREFIX%"
|
||||
echo "Environment path: %INSTALL_ENV_DIR%"
|
||||
|
||||
@rem handle conda environment
|
||||
call :check_conda_existence
|
||||
call :create_conda_environment
|
||||
call :isolate_environment
|
||||
call :activate_environment
|
||||
|
||||
@rem install dependencies
|
||||
@rem ver 0.2.56 produces segment error for /embeddings on MacOS
|
||||
call python -m pip install llama-cpp-python[server]!=0.2.56
|
||||
|
||||
@REM @rem start the server with passed params
|
||||
call python -m llama_cpp.server %*
|
||||
call conda deactivate
|
||||
|
||||
goto :end
|
||||
@rem the end of main code execution
|
||||
|
||||
|
||||
@rem below are the functions used in the above execution
|
||||
|
||||
|
||||
:print_highlight
|
||||
echo.
|
||||
echo ******************************************************
|
||||
echo %~1
|
||||
echo ******************************************************
|
||||
echo.
|
||||
goto :eof
|
||||
|
||||
|
||||
:path_sanity_check
|
||||
echo "Path sanity checking"
|
||||
echo "%cd%"| findstr /C:" " >nul ^
|
||||
&& (call :print_highlight "This script relies on Miniconda which can not be silently installed under a path with spaces." ^
|
||||
&& goto :end)
|
||||
goto :eof
|
||||
|
||||
|
||||
:deactivate_environment
|
||||
echo "Deactivate existing environment(s)"
|
||||
(call conda deactivate && call conda deactivate && call conda deactivate) 2>nul
|
||||
goto :eof
|
||||
|
||||
|
||||
:check_conda_existence
|
||||
echo "Check for conda existence"
|
||||
set conda_exists=F
|
||||
|
||||
@rem figure out whether conda exists
|
||||
call "%CONDA_ROOT_PREFIX%\_conda.exe" --version >nul 2>&1
|
||||
if "%ERRORLEVEL%" EQU "0" set conda_exists=T
|
||||
|
||||
@rem verify if conda is installed by the main app, if not then raise error
|
||||
if "%conda_exists%" == "F" (
|
||||
call :print_highlight "conda is not installed, seems like the app wasn't installed correctly."
|
||||
goto :end
|
||||
)
|
||||
goto :eof
|
||||
|
||||
|
||||
:create_conda_environment
|
||||
@rem create the environment if needed
|
||||
if not exist "%INSTALL_ENV_DIR%" (
|
||||
echo "Create conda environment"
|
||||
call "%CONDA_ROOT_PREFIX%\_conda.exe" create ^
|
||||
--no-shortcuts -y -k --prefix "%INSTALL_ENV_DIR%" python="%PYTHON_VERSION%" || ^
|
||||
( echo. && call :print_highlight "Conda environment creation failed." && goto :end )
|
||||
)
|
||||
|
||||
@rem check if conda environment was actually created
|
||||
if not exist "%INSTALL_ENV_DIR%\python.exe" (
|
||||
call :print_highlight "Conda environment was not correctly created."
|
||||
goto :end
|
||||
)
|
||||
goto :eof
|
||||
|
||||
|
||||
:isolate_environment
|
||||
echo "Isolate environment"
|
||||
set PYTHONNOUSERSITE=1
|
||||
set PYTHONPATH=
|
||||
set PYTHONHOME=
|
||||
goto :eof
|
||||
|
||||
|
||||
:activate_environment
|
||||
echo "Activate conda environment"
|
||||
call "%CONDA_ROOT_PREFIX%\condabin\conda.bat" activate "%INSTALL_ENV_DIR%" || ^
|
||||
( echo. && call :print_highlight "Miniconda hook not found." && goto :end )
|
||||
goto :eof
|
||||
|
||||
|
||||
:end
|
Reference in New Issue
Block a user