chore(cache): Add pre-built model cache for faster startup
Browse files- Includes sentence-transformers model (418MB)
- Pre-computed embeddings (293MB)
- NLTK WordNet data
- Configured Docker to use cache at /app/backend-py/cache
- Setup Git LFS for large files (899MB total)
Signed-off-by: Vimal Kumar <[email protected]>
- .gitattributes +1 -1
- .gitignore +0 -1
- Dockerfile +10 -0
- crossword-app/backend-py/.gitattributes +4 -0
.gitattributes
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
|
|
| 1 |
cache-dir/*.npy filter=lfs diff=lfs merge=lfs -text
|
| 2 |
cache-dir/*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 3 |
-
cache-dir/models--sentence-transformers--all-mpnet-base-v2/blobs/* filter=lfs diff=lfs merge=lfs -text
|
| 4 |
cache-dir/nltk_data/*.zip filter=lfs diff=lfs merge=lfs -text
|
| 5 |
cache-dir/nltk_data/corpora/omw-1.4/jpn/*.tab filter=lfs diff=lfs merge=lfs -text
|
| 6 |
cache-dir/nltk_data/corpora/wordnet/data.noun filter=lfs diff=lfs merge=lfs -text
|
|
|
|
| 1 |
+
cache-dir/models--sentence-transformers--all-mpnet-base-v2/blobs/* filter=lfs diff=lfs merge=lfs -text
|
| 2 |
cache-dir/*.npy filter=lfs diff=lfs merge=lfs -text
|
| 3 |
cache-dir/*.pkl filter=lfs diff=lfs merge=lfs -text
|
|
|
|
| 4 |
cache-dir/nltk_data/*.zip filter=lfs diff=lfs merge=lfs -text
|
| 5 |
cache-dir/nltk_data/corpora/omw-1.4/jpn/*.tab filter=lfs diff=lfs merge=lfs -text
|
| 6 |
cache-dir/nltk_data/corpora/wordnet/data.noun filter=lfs diff=lfs merge=lfs -text
|
.gitignore
CHANGED
|
@@ -66,7 +66,6 @@ samples/
|
|
| 66 |
venv/
|
| 67 |
crossword-app/backend-py/src/services/model_cache/
|
| 68 |
hack/model_cache/
|
| 69 |
-
cache-dir/
|
| 70 |
.KARO.md
|
| 71 |
CLAUDE.md
|
| 72 |
crossword-app/backend-py/faiss_cache/
|
|
|
|
| 66 |
venv/
|
| 67 |
crossword-app/backend-py/src/services/model_cache/
|
| 68 |
hack/model_cache/
|
|
|
|
| 69 |
.KARO.md
|
| 70 |
CLAUDE.md
|
| 71 |
crossword-app/backend-py/faiss_cache/
|
Dockerfile
CHANGED
|
@@ -33,6 +33,9 @@ COPY crossword-app/frontend/ ./frontend/
|
|
| 33 |
COPY crossword-app/backend/ ./backend/
|
| 34 |
COPY crossword-app/backend-py/ ./backend-py/
|
| 35 |
|
|
|
|
|
|
|
|
|
|
| 36 |
# Build the React frontend
|
| 37 |
RUN cd frontend && npm run build
|
| 38 |
|
|
@@ -64,6 +67,9 @@ WORKDIR /app/backend-py
|
|
| 64 |
COPY --from=builder --chown=appuser:appuser /app/backend-py ./
|
| 65 |
COPY --from=builder --chown=appuser:appuser /app/backend/data ./data
|
| 66 |
|
|
|
|
|
|
|
|
|
|
| 67 |
# Switch to non-root user
|
| 68 |
USER appuser
|
| 69 |
|
|
@@ -77,6 +83,10 @@ ENV PYTHONPATH=/app/backend-py
|
|
| 77 |
ENV PYTHONUNBUFFERED=1
|
| 78 |
ENV PIP_NO_CACHE_DIR=1
|
| 79 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 80 |
# Health check
|
| 81 |
# HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
| 82 |
# CMD curl -f http://localhost:7860/health || exit 1
|
|
|
|
| 33 |
COPY crossword-app/backend/ ./backend/
|
| 34 |
COPY crossword-app/backend-py/ ./backend-py/
|
| 35 |
|
| 36 |
+
# Copy cache directory with pre-built models and NLTK data
|
| 37 |
+
COPY cache-dir/ ./cache-dir/
|
| 38 |
+
|
| 39 |
# Build the React frontend
|
| 40 |
RUN cd frontend && npm run build
|
| 41 |
|
|
|
|
| 67 |
COPY --from=builder --chown=appuser:appuser /app/backend-py ./
|
| 68 |
COPY --from=builder --chown=appuser:appuser /app/backend/data ./data
|
| 69 |
|
| 70 |
+
# Copy cache directory to backend-py/cache for model and NLTK data
|
| 71 |
+
COPY --from=builder --chown=appuser:appuser /app/cache-dir /app/backend-py/cache
|
| 72 |
+
|
| 73 |
# Switch to non-root user
|
| 74 |
USER appuser
|
| 75 |
|
|
|
|
| 83 |
ENV PYTHONUNBUFFERED=1
|
| 84 |
ENV PIP_NO_CACHE_DIR=1
|
| 85 |
|
| 86 |
+
# Set cache directory for thematic service and NLTK
|
| 87 |
+
ENV CACHE_DIR=/app/backend-py/cache
|
| 88 |
+
ENV NLTK_DATA=/app/backend-py/cache/nltk_data
|
| 89 |
+
|
| 90 |
# Health check
|
| 91 |
# HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
| 92 |
# CMD curl -f http://localhost:7860/health || exit 1
|
crossword-app/backend-py/.gitattributes
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
cache-dir/models--sentence-transformers--all-mpnet-base-v2/blobs/* filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
cache-dir/*.npy filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
cache-dir/*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
cache-dir/nltk_data/*.zip filter=lfs diff=lfs merge=lfs -text
|