chore: update dependencies and enhance Dockerfile for server
- Updated `pyproject.toml` to include new optional dependencies for Ollama: `anthropic`, `openai`, and `pywinctl`. - Modified `compose.yaml` to add a new volume for the server's virtual environment. - Enhanced the server Dockerfile to install all optional dependencies during the build process, improving flexibility and functionality. All quality checks pass.
This commit is contained in:
2
client
2
client
Submodule client updated: 4e52a319fb...d85f9edd6d
@@ -98,6 +98,7 @@ services:
|
||||
NOTEFLOW_QDRANT_URL: http://qdrant:6333
|
||||
volumes:
|
||||
- .:/workspace
|
||||
- server_venv:/workspace/.venv
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
@@ -130,6 +131,7 @@ services:
|
||||
NOTEFLOW_QDRANT_URL: http://qdrant:6333
|
||||
volumes:
|
||||
- .:/workspace
|
||||
- server_venv:/workspace/.venv
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
@@ -190,6 +192,7 @@ volumes:
|
||||
noteflow_qdrant_data:
|
||||
client_cargo_cache:
|
||||
client_npm_cache:
|
||||
server_venv:
|
||||
|
||||
networks:
|
||||
noteflow-net:
|
||||
|
||||
@@ -30,18 +30,18 @@ FROM base AS server
|
||||
|
||||
# Install dependencies (server needs dev deps for watchfiles)
|
||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||
uv sync --frozen --no-install-project --group dev
|
||||
uv sync --frozen --no-install-project --group dev --all-extras
|
||||
|
||||
# Copy source code
|
||||
COPY . .
|
||||
|
||||
# Install the project itself
|
||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||
uv sync --frozen --group dev
|
||||
uv sync --frozen --group dev --all-extras
|
||||
|
||||
EXPOSE 50051
|
||||
|
||||
CMD ["uv", "run", "python", "scripts/dev_watch_server.py"]
|
||||
CMD ["sh", "-c", "uv sync --frozen --group dev --all-extras && uv run python scripts/dev_watch_server.py"]
|
||||
|
||||
# =============================================================================
|
||||
# Server Production Stage (all optional dependencies)
|
||||
@@ -50,18 +50,18 @@ FROM base AS server-full
|
||||
|
||||
# Install all dependencies including optional extras
|
||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||
uv sync --frozen --no-install-project --group dev --extra triggers --extra summarization --extra diarization
|
||||
uv sync --frozen --no-install-project --group dev --all-extras
|
||||
|
||||
# Copy source code
|
||||
COPY . .
|
||||
|
||||
# Install the project itself
|
||||
RUN --mount=type=cache,target=/root/.cache/uv \
|
||||
uv sync --frozen --group dev --extra triggers --extra summarization --extra diarization
|
||||
uv sync --frozen --group dev --all-extras
|
||||
|
||||
EXPOSE 50051
|
||||
|
||||
CMD ["uv", "run", "python", "scripts/dev_watch_server.py"]
|
||||
CMD ["sh", "-c", "uv sync --frozen --group dev --all-extras && uv run python scripts/dev_watch_server.py"]
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# NER stage: Add spaCy model for named entity recognition
|
||||
@@ -80,4 +80,4 @@ RUN python -c "import spacy; nlp = spacy.load('en_core_web_sm'); print('NER mode
|
||||
# -----------------------------------------------------------------------------
|
||||
FROM base AS dev
|
||||
|
||||
CMD ["uv", "run", "python", "scripts/dev_watch_server.py"]
|
||||
CMD ["sh", "-c", "uv sync --frozen --group dev --all-extras && uv run python scripts/dev_watch_server.py"]
|
||||
|
||||
@@ -109,6 +109,11 @@ optional = [
|
||||
all = [
|
||||
"noteflow[audio,dev,triggers,summarization,diarization,pdf,ner,calendar,observability]",
|
||||
]
|
||||
ollama = [
|
||||
"anthropic>=0.75.0",
|
||||
"openai>=2.13.0",
|
||||
"pywinctl>=0.4.1",
|
||||
]
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
|
||||
12
uv.lock
generated
12
uv.lock
generated
@@ -1,5 +1,5 @@
|
||||
version = 1
|
||||
revision = 3
|
||||
revision = 2
|
||||
requires-python = ">=3.12"
|
||||
resolution-markers = [
|
||||
"python_full_version >= '3.13'",
|
||||
@@ -2315,6 +2315,11 @@ observability = [
|
||||
{ name = "opentelemetry-instrumentation-grpc" },
|
||||
{ name = "opentelemetry-sdk" },
|
||||
]
|
||||
ollama = [
|
||||
{ name = "anthropic" },
|
||||
{ name = "openai" },
|
||||
{ name = "pywinctl" },
|
||||
]
|
||||
optional = [
|
||||
{ name = "anthropic" },
|
||||
{ name = "diart" },
|
||||
@@ -2360,6 +2365,7 @@ dev = [
|
||||
[package.metadata]
|
||||
requires-dist = [
|
||||
{ name = "alembic", specifier = ">=1.13" },
|
||||
{ name = "anthropic", marker = "extra == 'ollama'", specifier = ">=0.75.0" },
|
||||
{ name = "anthropic", marker = "extra == 'optional'", specifier = ">=0.75.0" },
|
||||
{ name = "anthropic", marker = "extra == 'summarization'", specifier = ">=0.75.0" },
|
||||
{ name = "asyncpg", specifier = ">=0.29" },
|
||||
@@ -2385,6 +2391,7 @@ requires-dist = [
|
||||
{ name = "numpy", marker = "extra == 'optional'", specifier = ">=1.26" },
|
||||
{ name = "ollama", marker = "extra == 'optional'", specifier = ">=0.6.1" },
|
||||
{ name = "ollama", marker = "extra == 'summarization'", specifier = ">=0.6.1" },
|
||||
{ name = "openai", marker = "extra == 'ollama'", specifier = ">=2.13.0" },
|
||||
{ name = "openai", marker = "extra == 'optional'", specifier = ">=2.13.0" },
|
||||
{ name = "openai", marker = "extra == 'summarization'", specifier = ">=2.13.0" },
|
||||
{ name = "opentelemetry-api", marker = "extra == 'observability'", specifier = ">=1.28" },
|
||||
@@ -2405,6 +2412,7 @@ requires-dist = [
|
||||
{ name = "pytest", marker = "extra == 'dev'", specifier = ">=8.0" },
|
||||
{ name = "pytest-asyncio", marker = "extra == 'dev'", specifier = ">=0.23" },
|
||||
{ name = "pytest-cov", marker = "extra == 'dev'", specifier = ">=4.0" },
|
||||
{ name = "pywinctl", marker = "extra == 'ollama'", specifier = ">=0.4.1" },
|
||||
{ name = "pywinctl", marker = "extra == 'optional'", specifier = ">=0.3" },
|
||||
{ name = "pywinctl", marker = "extra == 'triggers'", specifier = ">=0.3" },
|
||||
{ name = "rich", specifier = ">=14.2.0" },
|
||||
@@ -2423,7 +2431,7 @@ requires-dist = [
|
||||
{ name = "weasyprint", marker = "extra == 'optional'", specifier = ">=67.0" },
|
||||
{ name = "weasyprint", marker = "extra == 'pdf'", specifier = ">=67.0" },
|
||||
]
|
||||
provides-extras = ["audio", "dev", "triggers", "summarization", "diarization", "pdf", "ner", "calendar", "observability", "optional", "all"]
|
||||
provides-extras = ["audio", "dev", "triggers", "summarization", "diarization", "pdf", "ner", "calendar", "observability", "optional", "all", "ollama"]
|
||||
|
||||
[package.metadata.requires-dev]
|
||||
dev = [
|
||||
|
||||
Reference in New Issue
Block a user