didi-lot1-ai/ai_platform/modules/embeddings/pyproject.toml

75 lines
1.5 KiB
TOML

[project]
name = "embeddings"
version = "0.1.0"
description = "OpenAI-compatible embeddings API with vLLM/llama.cpp backends"
requires-python = ">=3.10"
readme = "README.md"
dependencies = [
# Core dependencies (always installed)
"fastapi>=0.115.0,<1.0",
"uvicorn[standard]>=0.32.0",
"pydantic>=2.0,<3.0",
"pydantic-settings>=2.0,<3.0",
"httpx>=0.27.0,<1.0",
"prometheus-fastapi-instrumentator>=7.0.0",
"opentelemetry-instrumentation-fastapi>=0.50b0",
"opentelemetry-exporter-otlp-proto-grpc>=1.30.0",
]
[project.optional-dependencies]
# vLLM backend (uses OpenAI-compatible API)
vllm = [
"openai>=1.50.0,<2.0",
]
# llama.cpp backend (uses OpenAI-compatible API)
llamacpp = [
"openai>=1.50.0,<2.0",
]
# All backends
all = [
"embeddings[vllm,llamacpp]",
]
# Development dependencies
dev = [
"pytest>=8.0",
"pytest-cov>=4.0",
"pytest-asyncio>=0.24.0",
"ruff>=0.8",
"mypy>=1.0",
"respx>=0.21.0",
]
[project.scripts]
embeddings = "embeddings.cli:main"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/embeddings"]
[tool.ruff]
extend = "../../ruff.toml"
[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
addopts = "-v --tb=short"
[tool.mypy]
python_version = "3.10"
strict = true
warn_return_any = true
warn_unused_ignores = true
[dependency-groups]
dev = [
"pytest>=8.0",
"pytest-asyncio>=0.24.0",
"ruff>=0.8",
]