chore: isolate bare minimum project dependencies

The goal is to promote the minimal set of dependencies the project needs
to run, this includes:

* dependencies needed to work with the CLI
* dependencies needed for the server to run with no providers

This also:
* Relocate redundant dependencies out of the core project and into the
  individual providers that actually require them.
* Include all necessary server dependencies so the project can run
  standalone, even without any providers.

Signed-off-by: Sébastien Han <seb@redhat.com>
This commit is contained in:
Sébastien Han 2025-05-27 17:50:33 +02:00
parent 6fde601765
commit 0a50eee5a7
No known key found for this signature in database
7 changed files with 112 additions and 29 deletions

View file

@ -22,8 +22,8 @@ classifiers = [
]
dependencies = [
"aiohttp",
"fastapi>=0.115.0,<1.0",
"fire",
"fastapi>=0.115.0,<1.0", # server
"fire", # for MCP in LLS client
"httpx",
"huggingface-hub>=0.30.0,<1.0",
"jinja2>=3.1.6",
@ -34,15 +34,18 @@ dependencies = [
"python-dotenv",
"python-jose",
"pydantic>=2",
"requests",
"rich",
"setuptools",
"starlette",
"termcolor",
"tiktoken",
"pillow",
"h11>=0.16.0",
"python-multipart>=0.0.20",
"python-multipart>=0.0.20", # For fastapi Form
"uvicorn>=0.34.0", # server
"opentelemetry-sdk", # server
"opentelemetry-exporter-otlp-proto-http", # server
"aiosqlite>=0.21.0", # server - for metadata store
"asyncpg", # for metadata store
]
[project.optional-dependencies]
@ -67,7 +70,6 @@ dev = [
"types-requests",
"types-setuptools",
"pre-commit",
"uvicorn",
"ruamel.yaml", # needed for openapi generator
]
# These are the dependencies required for running unit tests.
@ -80,11 +82,10 @@ unit = [
"mcp",
"chardet",
"qdrant-client",
"opentelemetry-exporter-otlp-proto-http",
"sqlalchemy",
"sqlalchemy[asyncio]>=2.0.41",
"blobfile",
"faiss-cpu"
"faiss-cpu",
]
# These are the core dependencies required for running integration tests. They are shared across all
# providers. If a provider requires additional dependencies, please add them to your environment
@ -96,8 +97,6 @@ test = [
"aiohttp",
"torch>=2.6.0",
"torchvision>=0.21.0",
"opentelemetry-sdk",
"opentelemetry-exporter-otlp-proto-http",
"chardet",
"pypdf",
"mcp",
@ -106,6 +105,7 @@ test = [
"transformers",
"sqlalchemy",
"sqlalchemy[asyncio]>=2.0.41",
"requests",
]
docs = [
"sphinx-autobuild",
@ -122,6 +122,7 @@ docs = [
"tomli",
"linkify",
"sphinxcontrib.openapi",
"requests",
]
codegen = ["rich", "pydantic", "jinja2>=3.1.6"]