Skip to content

Commit f49532f

Browse files
Merge remote-tracking branch 'origin/faster_dev' into docmuncher-v0
2 parents 49ef712 + 61ab8bb commit f49532f

File tree

6 files changed

+185
-3
lines changed

6 files changed

+185
-3
lines changed

Makefile

+10
Original file line numberDiff line numberDiff line change
@@ -139,3 +139,13 @@ setup-embeddings: guard-HUGGINGFACE_MODEL guard-HUGGINGFACE_EMBEDDINGS_API_KEY
139139
teardown-embeddings:
140140
@docker stop huggingface-embeddings
141141
@docker rm huggingface-embeddings
142+
143+
rundev:
144+
$(CONDA_ACTIVATE) $(PROJECT_NAME)
145+
@docker compose -f deployment/docker-compose/docker-compose-dev.yml -p aaq-dev up --build -d --remove-orphans
146+
@docker system prune -f
147+
148+
stopdev:
149+
@docker compose -f deployment/docker-compose/docker-compose-dev.yml -p aaq-dev down
150+
151+
restartdev: stopdev rundev

admin_app/Dockerfile.dev

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
FROM node:19-alpine
2+
3+
WORKDIR /app
4+
5+
ENV NEXT_TELEMETRY_DISABLED=1
6+
ENV NODE_ENV=development
7+
8+
COPY package.json package-lock.json ./
9+
RUN npm ci
10+
11+
COPY . .
12+
13+
EXPOSE 3000
14+
15+
ENV PORT=3000
16+
17+
CMD ["npm", "run", "dev"]

core_backend/Dockerfile.dev

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
FROM python:3.10-slim-buster
2+
3+
LABEL maintainer="IDinsight"
4+
5+
# Define arguments
6+
ARG NAME=aaq_backend
7+
ARG PORT=8000
8+
ARG HOME_DIR=/usr/src/${NAME}
9+
ARG WHISPER_MODEL_DIR=/whisper_models
10+
11+
# Install packages
12+
RUN apt-get update && apt-get install -y --no-install-recommends \
13+
gcc libpq-dev python3-dev ffmpeg \
14+
&& rm -rf /var/lib/apt/lists/*
15+
16+
# Set up directories
17+
RUN mkdir -p ${HOME_DIR} ${WHISPER_MODEL_DIR} /tmp/prometheus
18+
19+
# Set environment variables
20+
ENV PYTHONPATH="${PYTHONPATH}:${HOME_DIR}"
21+
ENV PORT=${PORT}
22+
ENV WHISPER_MODEL_DIR=${WHISPER_MODEL_DIR}
23+
24+
# Set working directory
25+
WORKDIR ${HOME_DIR}
26+
27+
# Install Python dependencies
28+
COPY requirements.txt .
29+
RUN pip install --no-cache-dir -r requirements.txt --extra-index-url https://download.pytorch.org/whl/cpu
30+
31+
# Copy application code
32+
COPY . .
33+
34+
# Make startup script executable
35+
RUN chmod +x startup.sh
36+
37+
# Download required models
38+
RUN python -c "from transformers import AutoModel; AutoModel.from_pretrained('cross-encoder/ms-marco-MiniLM-L-6-v2')" && \
39+
python -c "from sentence_transformers import SentenceTransformer; SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')" && \
40+
python -c "from faster_whisper import WhisperModel; model = WhisperModel('tiny', download_root='${WHISPER_MODEL_DIR}')"
41+
42+
EXPOSE ${PORT}
43+
44+
CMD ["python", "main.py"]

core_backend/app/__init__.py

-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
from typing import AsyncIterator, Callable
55

66
import sentry_sdk
7-
import sklearn # noqa
8-
import torch # noqa
97
from fastapi import FastAPI
108
from fastapi.middleware.cors import CORSMiddleware
119
from prometheus_client import CollectorRegistry, make_asgi_app, multiprocess

core_backend/main.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,11 @@ class Worker(UvicornWorker):
2020
if __name__ == "__main__":
2121
logging.basicConfig(level=logging.DEBUG)
2222
logger.setLevel(logging.DEBUG)
23-
uvicorn.run("main:app", host="0.0.0.0", port=8000, reload=True, log_level="debug")
23+
uvicorn.run(
24+
"main:app",
25+
host="0.0.0.0",
26+
port=8000,
27+
reload=True,
28+
log_level="debug",
29+
root_path=BACKEND_ROOT_PATH,
30+
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
services:
2+
core_backend:
3+
image: idinsight/aaq-backend:latest
4+
build:
5+
context: ../../core_backend
6+
dockerfile: Dockerfile.dev
7+
command: >
8+
/bin/sh -c "
9+
python -m alembic upgrade head &&
10+
python main.py"
11+
restart: always
12+
volumes:
13+
- ../../core_backend:/usr/src/aaq_backend
14+
- temp:/usr/src/aaq_backend/temp
15+
- ./.gcp_credentials.json:/app/credentials.json
16+
env_file:
17+
- .base.env
18+
- .core_backend.env
19+
- .litellm_proxy.env
20+
environment:
21+
- REDIS_HOST=redis://redis:6379
22+
- LITELLM_ENDPOINT=http://litellm_proxy:4000
23+
- POSTGRES_HOST=relational_db
24+
depends_on:
25+
- redis
26+
- relational_db
27+
28+
admin_app:
29+
image: idinsight/aaq-admin-app:latest
30+
build:
31+
context: ../../admin_app
32+
dockerfile: Dockerfile.dev
33+
volumes:
34+
- ../../admin_app:/app
35+
depends_on:
36+
- core_backend
37+
restart: always
38+
env_file:
39+
- .base.env
40+
41+
caddy:
42+
image: caddy:2.7.6
43+
restart: unless-stopped
44+
ports:
45+
- "80:80"
46+
- "443:443"
47+
- "443:443/udp"
48+
volumes:
49+
- ./Caddyfile:/etc/caddy/Caddyfile
50+
- caddy_data:/data
51+
- caddy_config:/config
52+
env_file:
53+
- .base.env
54+
55+
litellm_proxy:
56+
image: ghcr.io/berriai/litellm:main-v1.40.10
57+
restart: always
58+
env_file:
59+
- .litellm_proxy.env
60+
volumes:
61+
- ./litellm_proxy_config.yaml:/app/config.yaml
62+
- ./.gcp_credentials.json:/app/credentials.json
63+
ports: # Expose the port to port 4001 for debugging purposes
64+
- 4001:4000
65+
command: ["--config", "/app/config.yaml", "--port", "4000", "--num_workers", "4"]
66+
67+
huggingface-embeddings:
68+
# image either refers to locally built image or defaults to the one from the registry
69+
image: ${EMBEDDINGS_IMAGE_NAME:-ghcr.io/huggingface/text-embeddings-inference:cpu-1.5}
70+
profiles:
71+
- huggingface-embeddings
72+
- optional-components
73+
volumes:
74+
- $PWD/data:/data
75+
command:
76+
[
77+
"--model-id",
78+
"${HUGGINGFACE_MODEL}",
79+
"--api-key",
80+
"${HUGGINGFACE_EMBEDDINGS_API_KEY}",
81+
]
82+
restart: always
83+
env_file:
84+
- .litellm_proxy.env
85+
86+
redis:
87+
image: "redis:6.0-alpine"
88+
ports: # Expose the port to port 6380 on the host machine for debugging
89+
- "6380:6379"
90+
restart: always
91+
92+
relational_db:
93+
image: pgvector/pgvector:pg16
94+
restart: always
95+
env_file:
96+
- .core_backend.env
97+
volumes:
98+
- db_volume:/var/lib/postgresql/data
99+
ports: # Expose the port to port 5434 on the host machine for debugging
100+
- 5434:5432
101+
102+
volumes:
103+
caddy_data:
104+
caddy_config:
105+
temp:
106+
db_volume:

0 commit comments

Comments
 (0)