#!/bin/bash set -e # Create the virtual environment if it doesn't exist if [ ! -d "/voicebot/.venv/bin" ]; then echo "Creating virtual environment..." if [ -e /voicebot/pyproject.toml ]; then rm -r /voicebot/pyproject.toml fi uv init \ --python /usr/bin/python3.12 \ --name "ai-voicebot-agent" \ --description "AI Voicebot Environment" \ . uv add -r ./requirements.txt fi export VIRTUAL_ENV=/voicebot/.venv export PATH="$VIRTUAL_ENV/bin:$PATH" # Determine mode - provider or client MODE="${VOICEBOT_MODE:-client}" # Launch voicebot in production or development mode if [ "$PRODUCTION" != "true" ]; then echo "Starting voicebot in development mode..." if [ "$MODE" = "provider" ]; then echo "Running as bot provider with auto-reload..." export VOICEBOT_MODE=provider exec uv run uvicorn main:uvicorn_app \ --host 0.0.0.0 \ --port 8788 \ --reload \ --reload-dir /voicebot \ --reload-dir /shared \ --log-level info else echo "Running as client (connecting to lobby)..." export VOICEBOT_MODE=client export VOICEBOT_SERVER_URL="https://ketrenos.com/ai-voicebot" export VOICEBOT_LOBBY="default" export VOICEBOT_SESSION_NAME="Python Voicebot" export VOICEBOT_PASSWORD="v01c3b0t" export VOICEBOT_INSECURE="true" exec uv run uvicorn main:uvicorn_app \ --host 0.0.0.0 \ --port 8789 \ --reload \ --reload-dir /voicebot \ --reload-dir /shared \ --log-level info fi else echo "Starting voicebot in production mode..." if [ "$MODE" = "provider" ]; then echo "Running as bot provider..." export VOICEBOT_MODE=provider exec uv run uvicorn main:uvicorn_app \ --host 0.0.0.0 \ --port 8788 \ --log-level info else echo "Running as client (connecting to lobby)..." export VOICEBOT_MODE=client export VOICEBOT_SERVER_URL="https://ai-voicebot.ketrenos.com" export VOICEBOT_LOBBY="default" export VOICEBOT_SESSION_NAME="Python Voicebot" export VOICEBOT_PASSWORD="v01c3b0t" export VOICEBOT_INSECURE="false" exec uv run uvicorn main:uvicorn_app \ --host 0.0.0.0 \ --port 8789 \ --log-level info fi fi