forked from zovos/vk_hackathon
index: message-based windowed chunking (5 msgs/1h gap), better unicode cleaning, separate dense (with timestamps)/sparse content renderers, BM25 preload on startup, ThreadPoolExecutor(4), UVICORN_WORKERS=4, Dockerfile copies all *.py search: proper multi-module structure (query_builder, retrieval, rerank, aggregation), RERANK_LIMIT 60→15 (fixes 429 errors), extra dense vectors for variants/hyde, date+asker metadata filters, httpx pool (100/20/30s), BM25 preload on startup, Dockerfile copies all *.py 68/68 unit tests passing Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
24 lines
592 B
Docker
24 lines
592 B
Docker
FROM python:3.13-slim
|
|
|
|
WORKDIR /app
|
|
|
|
COPY requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
COPY *.py .
|
|
|
|
ENV HOST=0.0.0.0
|
|
ENV PORT=8000
|
|
ENV QDRANT_COLLECTION_NAME=evaluation
|
|
ENV QDRANT_DENSE_VECTOR_NAME=dense
|
|
ENV QDRANT_SPARSE_VECTOR_NAME=sparse
|
|
ENV EMBEDDINGS_DENSE_MODEL=Qwen/Qwen3-Embedding-0.6B
|
|
ENV FASTEMBED_CACHE_PATH=/models/fastembed
|
|
ENV HF_HOME=/models/huggingface
|
|
|
|
RUN mkdir -p /models/fastembed /models/huggingface
|
|
RUN python -c "from fastembed import SparseTextEmbedding; SparseTextEmbedding(model_name='Qdrant/bm25')"
|
|
|
|
EXPOSE 8000
|
|
|
|
CMD ["python", "main.py"]
|