Skip to content

Use poetry for dependencies management #194

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,7 @@ repos:
rev: 23.3.0
hooks:
- id: black
args:
- --line-length=88
- --safe
- --target-version=py310
args: [ --config=pyproject.toml ]
stages: [commit]
- repo: https://github.com/pycqa/isort
rev: 5.12.0
Expand Down
55 changes: 22 additions & 33 deletions backend/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,46 +1,35 @@
FROM --platform=linux/amd64 python:3.11

RUN apt-get update -y && apt-get install ffmpeg libsm6 libxext6 poppler-utils qpdf tesseract-ocr -y

# Set environment variables
ENV PATH=/virtualenvs/venv/bin:$PATH
RUN python3 -m venv /virtualenvs/venv/

# Copy requirements.txt
COPY backend/requirements.txt /tmp/requirements.txt
COPY backend/vectordb.requirements.txt /tmp/vectordb.requirements.txt
COPY backend/embedder.requirements.txt /tmp/embedder.requirements.txt
COPY backend/parsers.requirements.txt /tmp/parsers.requirements.txt
COPY backend/rerankers.requirements.txt /tmp/rerankers.requirements.txt
# Set the working directory
WORKDIR /app

# Install Python packages
RUN python3 -m pip install -U pip setuptools wheel && \
python3 -m pip install --use-pep517 --no-cache-dir -r /tmp/requirements.txt
RUN apt-get update -y \
&& apt-get install -y --no-install-recommends ffmpeg libsm6 libxext6 poppler-utils qpdf tesseract-ocr \
&& rm -rf /var/lib/apt/lists/*

ENV LD_LIBRARY_PATH=/virtualenvs/venv/lib/python3.11/site-packages/nvidia/cublas/lib:/virtualenvs/venv/lib/python3.11/site-packages/nvidia/cuda_cupti/lib:/virtualenvs/venv/lib/python3.11/site-packages/nvidia/cuda_nvrtc/lib:/virtualenvs/venv/lib/python3.11/site-packages/nvidia/cuda_runtime/lib:/virtualenvs/venv/lib/python3.11/site-packages/nvidia/cudnn/lib:/virtualenvs/venv/lib/python3.11/site-packages/nvidia/cufft/lib:/virtualenvs/venv/lib/python3.11/site-packages/nvidia/curand/lib:/virtualenvs/venv/lib/python3.11/site-packages/nvidia/cusolver/lib:/virtualenvs/venv/lib/python3.11/site-packages/nvidia/cusparse/lib:/virtualenvs/venv/lib/python3.11/site-packages/nvidia/nccl/lib:/virtualenvs/venv/lib/python3.11/site-packages/nvidia/nvtx/lib:/virtualenvs/venv/lib/python3.11/site-packages/torch/lib/:/usr/local/nvidia/lib:/usr/local/nvidia/lib64
RUN mkdir -p /virtualenvs/app/ \
&& python3 -m venv /virtualenvs/poetry-venv

ARG ADD_PYTORCH=0
# Install torch
RUN if [ "${ADD_PYTORCH}" = "1" ]; then pip install "torch==2.2.2+cu121" --extra-index-url https://download.pytorch.org/whl/cu121; fi
ENV PATH="/virtualenvs/poetry-venv/bin:$PATH"

# Install Parser packages
ARG ADD_PARSER=0
RUN if [ "${ADD_PARSER}" = "1" ]; then python3 -m pip install --use-pep517 --no-cache-dir -r /tmp/parsers.requirements.txt; fi
COPY pyproject.toml poetry.lock /virtualenvs/app/

# Install Reranker packages
ARG ADD_RERANKER=0
RUN if [ "${ADD_RERANKER}" = "1" ]; then python3 -m pip install --use-pep517 --no-cache-dir -r /tmp/rerankers.requirements.txt; fi
ARG EXTRAS="qdrant"
RUN cd /virtualenvs/app/ \
&& pip install --no-cache-dir -U pip setuptools wheel \
&& pip install --no-cache-dir "poetry<1.9.0" \
&& poetry config virtualenvs.create true \
&& poetry config virtualenvs.in-project true \
&& poetry install --extras "${EXTRAS}" --no-interaction --no-root --no-dev \
&& poetry cache clear pypi --all \
&& poetry env info \
&& rm -rf /virtualenvs/poetry-venv

# Install Embedder packages
ARG ADD_EMBEDDER=0
RUN if [ "${ADD_EMBEDDER}" = "1" ]; then python3 -m pip install --use-pep517 --no-cache-dir -r /tmp/embedder.requirements.txt; fi
ENV PATH="/virtualenvs/app/.venv/bin:$PATH"
ENV LD_LIBRARY_PATH=/virtualenvs/app/.venv/lib/python3.11/site-packages/nvidia/cublas/lib:/virtualenvs/app/.venv/lib/python3.11/site-packages/nvidia/cuda_cupti/lib:/virtualenvs/app/.venv/lib/python3.11/site-packages/nvidia/cuda_nvrtc/lib:/virtualenvs/app/.venv/lib/python3.11/site-packages/nvidia/cuda_runtime/lib:/virtualenvs/app/.venv/lib/python3.11/site-packages/nvidia/cudnn/lib:/virtualenvs/app/.venv/lib/python3.11/site-packages/nvidia/cufft/lib:/virtualenvs/app/.venv/lib/python3.11/site-packages/nvidia/curand/lib:/virtualenvs/app/.venv/lib/python3.11/site-packages/nvidia/cusolver/lib:/virtualenvs/app/.venv/lib/python3.11/site-packages/nvidia/cusparse/lib:/virtualenvs/app/.venv/lib/python3.11/site-packages/nvidia/nccl/lib:/virtualenvs/app/.venv/lib/python3.11/site-packages/nvidia/nvtx/lib:/virtualenvs/app/.venv/lib/python3.11/site-packages/torch/lib/:/usr/local/nvidia/lib:/usr/local/nvidia/lib64

# Install VectorDB packages
ARG ADD_VECTORDB=0
RUN if [ "${ADD_VECTORDB}" = "1" ]; then python3 -m pip install --use-pep517 --no-cache-dir -r /tmp/vectordb.requirements.txt; fi
COPY . .

# Copy the project files
COPY . /app

# Set the working directory
WORKDIR /app
Empty file added backend/cli/__init__.py
Empty file.
2 changes: 2 additions & 0 deletions backend/cli/__main__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
def main():
print("TODO CLI")
5 changes: 0 additions & 5 deletions backend/embedder.requirements.txt

This file was deleted.

2 changes: 0 additions & 2 deletions backend/modules/rerankers/rerankers.requirements.txt

This file was deleted.

4 changes: 0 additions & 4 deletions backend/parsers.requirements.txt

This file was deleted.

Loading