ashwinsdk commited on
Commit
28ea2ba
·
1 Parent(s): 661bf30

Update AI service

Browse files
Files changed (3) hide show
  1. .DS_Store +0 -0
  2. Dockerfile.hf +31 -0
  3. run-fixed.sh +58 -0
.DS_Store ADDED
Binary file (6.15 kB). View file
 
Dockerfile.hf ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.11-slim
2
+
3
+ WORKDIR /app
4
+
5
+ RUN apt-get update && apt-get install -y --no-install-recommends \
6
+ build-essential \
7
+ wget && \
8
+ rm -rf /var/lib/apt/lists/*
9
+
10
+ COPY requirements.txt .
11
+ RUN pip install --no-cache-dir -r requirements.txt
12
+
13
+ COPY main.py .
14
+
15
+ RUN useradd -m -u 1000 user
16
+ USER user
17
+
18
+ ENV HOME=/home/user \
19
+ PATH=/home/user/.local/bin:$PATH \
20
+ AI_SERVICE_PORT=8000
21
+
22
+ WORKDIR $HOME/app
23
+
24
+ COPY --chown=user . $HOME/app
25
+
26
+ EXPOSE 8000
27
+
28
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
29
+ CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"
30
+
31
+ CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
run-fixed.sh ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env bash
2
+ # NexVote AI – Start AI service with virtual environment
3
+ # Usage: ./ai/run-fixed.sh [port]
4
+ set -euo pipefail
5
+
6
+ AI_DIR="$(cd "$(dirname "$0")" && pwd)"
7
+ PYTHON="${PYTHON:-python3}"
8
+ VENV_DIR="$AI_DIR/venv"
9
+ PORT="${1:-8000}"
10
+
11
+ echo "================================================"
12
+ echo " NexVote AI Service"
13
+ echo " Python: $PYTHON"
14
+ echo " Port: $PORT"
15
+ echo "================================================"
16
+
17
+ # Validate Python version
18
+ PYTHON_VERSION=$("$PYTHON" -c 'import sys; print(".".join(map(str, sys.version_info[:2])))')
19
+ REQUIRED_VERSION="3.9"
20
+
21
+ if [ "$(printf '%s\n' "$REQUIRED_VERSION" "$PYTHON_VERSION" | sort -V | head -n1)" != "$REQUIRED_VERSION" ]; then
22
+ echo "Error: Python $REQUIRED_VERSION or higher required (found $PYTHON_VERSION)"
23
+ exit 1
24
+ fi
25
+
26
+ # Create virtual environment if needed
27
+ if [ ! -d "$VENV_DIR" ]; then
28
+ echo ""
29
+ echo "[1/3] Creating virtual environment..."
30
+ "$PYTHON" -m venv "$VENV_DIR"
31
+ fi
32
+
33
+ # Activate virtual environment
34
+ echo ""
35
+ echo "[2/3] Activating virtual environment..."
36
+ source "$VENV_DIR/bin/activate"
37
+
38
+ # Install/upgrade dependencies
39
+ echo ""
40
+ echo "[3/3] Installing dependencies..."
41
+ pip install --upgrade pip --quiet
42
+ pip install -r "$AI_DIR/requirements.txt" --quiet
43
+
44
+ # Test imports
45
+ python -c "import torch, transformers, sentence_transformers" || {
46
+ echo "Error: Failed to import required packages"
47
+ exit 1
48
+ }
49
+
50
+ # Start service
51
+ echo ""
52
+ echo "Starting AI service on port $PORT..."
53
+ echo " Health check: http://localhost:$PORT/health"
54
+ echo " Docs: http://localhost:$PORT/docs"
55
+ echo ""
56
+
57
+ cd "$AI_DIR"
58
+ exec uvicorn main:app --host 0.0.0.0 --port "$PORT"