Subhadip007 commited on
Commit
5ec3fb9
·
1 Parent(s): 99cac84

feat: add Dockerfile and requirements.txt for HuggingFace deployment

Browse files
Files changed (2) hide show
  1. Dockerfile +36 -0
  2. requirements.txt +13 -0
Dockerfile ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.10-slim
2
+
3
+ WORKDIR /app
4
+
5
+ # Install system dependencies
6
+ RUN apt-get update && apt-get install -y \
7
+ build-essential \
8
+ && rm -rf /var/lib/apt/lists/*
9
+
10
+ # Copy requirements first (Docker layer caching)
11
+ COPY requirements.txt .
12
+ RUN pip install --no-cache-dir -r requirements.txt
13
+
14
+ # Copy source code
15
+ COPY src/ ./src/
16
+ COPY config/ ./config/
17
+ COPY run_api.py .
18
+ COPY .env.example ./.env
19
+
20
+ # Copy data (uploaded via HuggingFace web UI)
21
+ COPY data/qdrant_db/ ./data/qdrant_db/
22
+ COPY data/embeddings/bm25_index.pkl ./data/embeddings/bm25_index.pkl
23
+ COPY data/embeddings/embeddings.npy ./data/embeddings/embeddings.npy
24
+ COPY data/embeddings/chunk_ids.npy ./data/embeddings/chunk_ids.npy
25
+ COPY data/embeddings/embedding_index.json ./data/embeddings/embedding_index.json
26
+ COPY data/chunks/ ./data/chunks/
27
+
28
+ # Create remaining data dirs
29
+ RUN mkdir -p data/raw data/processed logs
30
+
31
+ # HuggingFace Spaces uses port 7860
32
+ ENV PORT=7860
33
+ EXPOSE 7860
34
+
35
+ # Start the API
36
+ CMD ["uvicorn", "src.api.main:app", "--host", "0.0.0.0", "--port", "7860", "--workers", "1"]
requirements.txt ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ fastapi==0.115.0
2
+ uvicorn[standard]==0.30.0
3
+ qdrant-client==1.9.0
4
+ sentence-transformers==3.0.0
5
+ rank-bm25==0.2.2
6
+ langchain-text-splitters==0.2.0
7
+ groq==0.9.0
8
+ pydantic==2.7.0
9
+ python-dotenv==1.0.0
10
+ loguru==0.7.2
11
+ numpy==1.26.0
12
+ tqdm==4.66.0
13
+ requests==2.32.0