vimalk78 commited on
Commit
b0d8e46
·
1 Parent(s): 486eff6

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 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