Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
.idea
target
.venv/
backends/python/server/.venv
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
.idea
target
.venv
backends/python/server/.venv
16 changes: 8 additions & 8 deletions Dockerfile-intel
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,8 @@ COPY backends backends
COPY backends/python/server/text_embeddings_server/models/__init__.py backends/python/server/text_embeddings_server/models/__init__.py
COPY backends/python/server/pyproject.toml backends/python/server/pyproject.toml

RUN python -m pip install torch==2.6.0 torchvision torchaudio==2.6.0 --index-url https://download.pytorch.org/whl/cpu --no-cache-dir

RUN cd backends/python/server && \
make install
make install-cpu

FROM vault.habana.ai/gaudi-docker/1.19.0/ubuntu22.04/habanalabs/pytorch-installer-2.5.1:latest AS hpu
ENV HUGGINGFACE_HUB_CACHE=/data \
Expand All @@ -99,7 +97,10 @@ COPY backends/python/server/text_embeddings_server/models/__init__.py backends/p
COPY backends/python/server/pyproject.toml backends/python/server/pyproject.toml

RUN cd backends/python/server && \
make install
pip install -U pip uv && \
uv venv && \
cp -r /usr/local/lib/python3.10/dist-packages/* /usr/src/backends/python/server/.venv/lib/python3.10/site-packages/ && \
make install-hpu

FROM intel/intel-extension-for-pytorch:2.6.10-xpu AS xpu

Expand All @@ -115,9 +116,6 @@ RUN wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRO

RUN apt-get update && apt install -y intel-basekit cmake python3-dev ninja-build pciutils
WORKDIR /usr/src
RUN pip install torch==2.6.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/xpu --no-cache-dir
RUN pip install intel-extension-for-pytorch==2.6.10+xpu oneccl_bind_pt==2.6.0+xpu --extra-index-url https://pytorch-extension.intel.com/release-whl/stable/xpu/us/ --no-cache-dir

ENV CCL_ROOT=/opt/intel/oneapi/ccl/latest
ENV I_MPI_ROOT=/opt/intel/oneapi/mpi/latest
ENV FI_PROVIDER_PATH=/opt/intel/oneapi/mpi/latest/opt/mpi/libfabric/lib/prov:/usr/lib/x86_64-linux-gnu/libfabric
Expand All @@ -132,7 +130,7 @@ COPY backends backends
COPY backends/python/server/text_embeddings_server/models/__init__.py backends/python/server/text_embeddings_server/models/__init__.py
COPY backends/python/server/pyproject.toml backends/python/server/pyproject.toml
RUN cd backends/python/server && \
make install
make install-xpu

FROM ${PLATFORM} AS grpc

Expand All @@ -144,6 +142,8 @@ CMD ["--json-output"]
FROM ${PLATFORM}

COPY --from=http-builder /usr/src/target/release/text-embeddings-router /usr/local/bin/text-embeddings-router
ENV VIRTUAL_ENV=/usr/src/backends/python/server/.venv
ENV PATH=$VIRTUAL_ENV/bin/:$PATH

ENTRYPOINT ["text-embeddings-router"]
CMD ["--json-output"]
22 changes: 17 additions & 5 deletions backends/python/server/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,24 @@ gen-server:
touch text_embeddings_server/pb/__init__.py

install: gen-server
pip install pip poetry --upgrade
poetry install
pip install pip uv --upgrade
uv sync

install-intel: gen-server
pip install pip poetry --upgrade
poetry install --without cuda
install-cpu: gen-server
pip install pip uv --upgrade
uv sync --extra cpu

install-xpu: gen-server
pip install pip uv --upgrade
uv sync --extra xpu

install-gpu: gen-server
pip install pip uv --upgrade
uv sync --extra gpu

install-hpu: gen-server
pip install pip uv --upgrade
uv sync --extra hpu --inexact

run-dev:
python text_embeddings_server/cli.py serve BAAI/bge-small-en
Expand Down
2,193 changes: 0 additions & 2,193 deletions backends/python/server/poetry.lock

This file was deleted.

119 changes: 92 additions & 27 deletions backends/python/server/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,37 +1,102 @@
[tool.poetry]
[project]
name = "text-embeddings-server"
version = "0.1.0"
description = "Text Embeddings Python gRPC Server"
authors = ["Olivier Dehaene <[email protected]>"]
authors = [{ name = "Olivier Dehaene" , email = "[email protected]" }]
requires-python = ">= 3.9"
dependencies = [
"protobuf>=4.25.3,<6",
"grpcio>=1.51.1",
"grpcio-status>=1.51.1",
"grpcio-reflection>=1.51.1",
"grpc-interceptor>=0.15.0",
"typer>=0.6.1",
"safetensors>=0.4",
"loguru>=0.6.0",
"opentelemetry-api>=1.25.0",
"opentelemetry-exporter-otlp>=1.25.0",
"opentelemetry-instrumentation-grpc>=0.46b0",
"sentence-transformers>=3.3.1",
]

[tool.poetry.scripts]
[project.scripts]
python-text-embeddings-server = 'text_embeddings_server.cli:app'

[tool.poetry.dependencies]
python = ">=3.9,<3.13"
protobuf = ">=4.25.3,<6"
grpcio = "^1.51.1"
grpcio-status = "^1.51.1"
grpcio-reflection = "^1.51.1"
grpc-interceptor = "^0.15.0"
typer = "^0.6.1"
safetensors = "^0.4"
loguru = "^0.6.0"
opentelemetry-api = "^1.25.0"
opentelemetry-exporter-otlp = "^1.25.0"
opentelemetry-instrumentation-grpc = "^0.46b0"
sentence-transformers = "^3.3.1"

[tool.poetry.extras]

[tool.poetry.group.dev.dependencies]
grpcio-tools = "^1.51.1"
pytest = "^7.3.0"

[[tool.poetry.source]]
name = "pytorch-gpu-src"
[dependency-groups]
dev = [
"grpcio-tools>=1.51.1",
"pytest>=7.3.0"
]


[project.optional-dependencies]
cpu = ["torch"]
xpu = [
"torch",
"intel-extension-for-pytorch==2.6.10+xpu",
"oneccl_bind_pt==2.6.0+xpu",

]
hpu = [
# Hpu brings its own dependencies within docker
# "torch",
]
gpu = ["torch"]

[tool.uv]
conflicts = [
[
{ extra = "cpu" },
{ extra = "gpu" },
{ extra = "xpu" },
{ extra = "hpu" },
],
]
override-dependencies = [
"intel-sycl-rt==2025.0.4; extra == 'xpu'",
"intel-openmp==2025.0.4; extra == 'xpu'",
]
constraint-dependencies = [
"torch==2.5.1; extra == 'hpu'",
"torch==2.6.0; extra == 'cpu'",
"torch==2.6.0; extra == 'gpu'",
"torch==2.6.0+xpu; extra == 'xpu'",
# "torch; extra == 'hpu'",
]

[tool.uv.sources]
torch = [
{ index = "torch-cpu", extra = "cpu" },
{ index = "torch-gpu", extra = "gpu" },
{ index = "torch-xpu", extra = "xpu" },
]
intel-extension-for-pytorch = [ {index = "xpu" }]
oneccl_bind_pt = [ {index = "xpu" }]
mkl = [ {index = "pypi" }]

[[tool.uv.index]]
name = "pypi"
url = "https://pypi.org/simple"


[[tool.uv.index]]
name = "torch-cpu"
url = "https://download.pytorch.org/whl/cpu"
explicit = true

[[tool.uv.index]]
name = "torch-gpu"
url = "https://download.pytorch.org/whl/cu118"
priority = "explicit"
explicit = true

[[tool.uv.index]]
name = "xpu"
url = "https://pytorch-extension.intel.com/release-whl/stable/xpu/us/"


[[tool.uv.index]]
name = "torch-xpu"
url = "https://download.pytorch.org/whl/xpu"

[tool.pytest.ini_options]
markers = ["private: marks tests as requiring an admin hf token (deselect with '-m \"not private\"')"]
Expand Down
Loading
Loading