serge/scripts/dev.sh
Jon Pro 80833600eb
Add support for User Management (#1313)
* Add users - checkpoint

* Working

* Finish workflow

* switch to cookies instead of bearer token

* Fix settings not saved

* Add sqlite

* Cleanup

* Get db url from env var

* PR Prep

* Maybe later

* Code review

* Update poetry and readme

* Things for status checks

* Add chats table to DB

* Bad merge

* Personal code review

* Add default user called system

* Fix poetry

* fix status checks

* Formatting

* Fix deleting a chat

* Fix bug when auth times out but user isn't logged out

* Code review comments

* fix lockfile

---------

Co-authored-by: Juan Calderon-Perez <835733+gaby@users.noreply.github.com>
2024-07-27 14:48:53 -04:00

73 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
set -x
source serge.env
# Get CPU Architecture
cpu_arch=$(uname -m)
# Function to detect CPU features
detect_cpu_features() {
cpu_info=$(lscpu)
if echo "$cpu_info" | grep -q "avx512"; then
echo "AVX512"
elif echo "$cpu_info" | grep -q "avx2"; then
echo "AVX2"
elif echo "$cpu_info" | grep -q "avx"; then
echo "AVX"
else
echo "basic"
fi
}
# Check if the CPU architecture is aarch64/arm64
if [ "$cpu_arch" = "aarch64" ] || [ "$cpu_arch" = "arm64" ]; then
pip_command="python -m pip install -v llama-cpp-python==$LLAMA_PYTHON_VERSION --only-binary=:all: --extra-index-url=https://abetlen.github.io/llama-cpp-python/whl/cpu/"
else
# Use @smartappli provided wheels
#cpu_feature=$(detect_cpu_features)
#pip_command="python -m pip install -v llama-cpp-python==$LLAMA_PYTHON_VERSION --only-binary=:all: --extra-index-url=https://abetlen.github.io/llama-cpp-python/whl/cpu-$cpu_feature/"
pip_command="python -m pip install -v llama-cpp-python==$LLAMA_PYTHON_VERSION --only-binary=:all: --extra-index-url=https://abetlen.github.io/llama-cpp-python/whl/cpu/"
fi
echo "Recommended install command for llama-cpp-python: $pip_command"
# Install python vendor dependencies
pip install -r /usr/src/app/requirements.txt || {
echo 'Failed to install python dependencies from requirements.txt'
exit 1
}
# Install python dependencies
pip install -e ./api || {
echo 'Failed to install python dependencies'
exit 1
}
# Install python bindings
eval "$pip_command" || {
echo 'Failed to install llama-cpp-python'
exit 1
}
# Start Redis instance
redis-server /etc/redis/redis.conf &
# Start the web server
cd /usr/src/app/web || exit 1
npm run dev -- --host 0.0.0.0 --port 8008 &
# Start the API
cd /usr/src/app/api || exit 1
hypercorn_cmd="python /tmp/debugpy --wait-for-client --listen 0.0.0.0:5678 -m hypercorn src.serge.main:api_app --bind 0.0.0.0:9124"
if [ "$SERGE_ENABLE_IPV6" = true ] && [ "$SERGE_ENABLE_IPV4" != true ]; then
hypercorn_cmd="hypercorn src.serge.main:api_app --bind [::]:9124"
elif [ "$SERGE_ENABLE_IPV4" = true ] && [ "$SERGE_ENABLE_IPV6" = true ]; then
hypercorn_cmd="hypercorn src.serge.main:api_app --bind 0.0.0.0:9124 --bind [::]:9124"
fi
$hypercorn_cmd || {
echo 'Failed to start main app'
exit 1
}