mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-03 09:53:45 +00:00
chore: remove additional_pip_packages
all of the additional pip packages are already in `llama-stack`'s pyproject except for psycopg2-binary (which I added), so they are unnecessary. This also allows me to get rid of the additional_pip_packages field Signed-off-by: Charlie Doern <cdoern@redhat.com>
This commit is contained in:
parent
6ffaae62f8
commit
4311641fd6
16 changed files with 3 additions and 78 deletions
|
|
@ -50,6 +50,7 @@ dependencies = [
|
||||||
"asyncpg", # for metadata store
|
"asyncpg", # for metadata store
|
||||||
"sqlalchemy[asyncio]>=2.0.41", # server - for conversations
|
"sqlalchemy[asyncio]>=2.0.41", # server - for conversations
|
||||||
"starlette>=0.49.1",
|
"starlette>=0.49.1",
|
||||||
|
"psycopg2-binary",
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.optional-dependencies]
|
[project.optional-dependencies]
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,6 @@ def get_provider_dependencies(
|
||||||
config = config.build_config()
|
config = config.build_config()
|
||||||
|
|
||||||
providers = config.providers
|
providers = config.providers
|
||||||
additional_pip_packages = config.additional_pip_packages
|
|
||||||
|
|
||||||
deps = []
|
deps = []
|
||||||
external_provider_deps = []
|
external_provider_deps = []
|
||||||
|
|
@ -81,8 +80,6 @@ def get_provider_dependencies(
|
||||||
else:
|
else:
|
||||||
normal_deps.append(package)
|
normal_deps.append(package)
|
||||||
|
|
||||||
normal_deps.extend(additional_pip_packages or [])
|
|
||||||
|
|
||||||
return list(set(normal_deps)), list(set(special_deps)), list(set(external_provider_deps))
|
return list(set(normal_deps)), list(set(special_deps)), list(set(external_provider_deps))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -535,11 +535,6 @@ can be instantiated multiple times (with different configs) if necessary.
|
||||||
description="Configuration for the HTTP(S) server",
|
description="Configuration for the HTTP(S) server",
|
||||||
)
|
)
|
||||||
|
|
||||||
additional_pip_packages: list[str] = Field(
|
|
||||||
default_factory=list,
|
|
||||||
description="Additional pip packages to install in the distribution. These packages will be installed in the distribution environment.",
|
|
||||||
)
|
|
||||||
|
|
||||||
external_providers_dir: Path | None = Field(
|
external_providers_dir: Path | None = Field(
|
||||||
default=None,
|
default=None,
|
||||||
description="Path to directory containing external provider implementations. The providers code and dependencies must be installed on the system.",
|
description="Path to directory containing external provider implementations. The providers code and dependencies must be installed on the system.",
|
||||||
|
|
@ -631,10 +626,6 @@ class BuildConfig(BaseModel):
|
||||||
description="Path to directory containing external provider implementations. The providers packages will be resolved from this directory. "
|
description="Path to directory containing external provider implementations. The providers packages will be resolved from this directory. "
|
||||||
"pip_packages MUST contain the provider package name.",
|
"pip_packages MUST contain the provider package name.",
|
||||||
)
|
)
|
||||||
additional_pip_packages: list[str] = Field(
|
|
||||||
default_factory=list,
|
|
||||||
description="Additional pip packages to install in the distribution. These packages will be installed in the distribution environment.",
|
|
||||||
)
|
|
||||||
external_apis_dir: Path | None = Field(
|
external_apis_dir: Path | None = Field(
|
||||||
default=None,
|
default=None,
|
||||||
description="Path to directory containing external API implementations. The APIs code and dependencies must be installed on the system.",
|
description="Path to directory containing external API implementations. The APIs code and dependencies must be installed on the system.",
|
||||||
|
|
|
||||||
|
|
@ -53,8 +53,3 @@ distribution_spec:
|
||||||
batches:
|
batches:
|
||||||
- provider_type: inline::reference
|
- provider_type: inline::reference
|
||||||
image_type: venv
|
image_type: venv
|
||||||
additional_pip_packages:
|
|
||||||
- aiosqlite
|
|
||||||
- asyncpg
|
|
||||||
- psycopg2-binary
|
|
||||||
- sqlalchemy[asyncio]
|
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,3 @@ distribution_spec:
|
||||||
- provider_type: remote::tavily-search
|
- provider_type: remote::tavily-search
|
||||||
- provider_type: inline::rag-runtime
|
- provider_type: inline::rag-runtime
|
||||||
image_type: venv
|
image_type: venv
|
||||||
additional_pip_packages:
|
|
||||||
- aiosqlite
|
|
||||||
- sqlalchemy[asyncio]
|
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,3 @@ distribution_spec:
|
||||||
- provider_type: inline::rag-runtime
|
- provider_type: inline::rag-runtime
|
||||||
- provider_type: remote::model-context-protocol
|
- provider_type: remote::model-context-protocol
|
||||||
image_type: venv
|
image_type: venv
|
||||||
additional_pip_packages:
|
|
||||||
- aiosqlite
|
|
||||||
- sqlalchemy[asyncio]
|
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,3 @@ distribution_spec:
|
||||||
files:
|
files:
|
||||||
- provider_type: inline::localfs
|
- provider_type: inline::localfs
|
||||||
image_type: venv
|
image_type: venv
|
||||||
additional_pip_packages:
|
|
||||||
- aiosqlite
|
|
||||||
- sqlalchemy[asyncio]
|
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,3 @@ distribution_spec:
|
||||||
files:
|
files:
|
||||||
- provider_type: inline::localfs
|
- provider_type: inline::localfs
|
||||||
image_type: venv
|
image_type: venv
|
||||||
additional_pip_packages:
|
|
||||||
- aiosqlite
|
|
||||||
- sqlalchemy[asyncio]
|
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,3 @@ distribution_spec:
|
||||||
- provider_type: inline::rag-runtime
|
- provider_type: inline::rag-runtime
|
||||||
- provider_type: remote::model-context-protocol
|
- provider_type: remote::model-context-protocol
|
||||||
image_type: venv
|
image_type: venv
|
||||||
additional_pip_packages:
|
|
||||||
- aiosqlite
|
|
||||||
- sqlalchemy[asyncio]
|
|
||||||
|
|
|
||||||
|
|
@ -54,8 +54,3 @@ distribution_spec:
|
||||||
batches:
|
batches:
|
||||||
- provider_type: inline::reference
|
- provider_type: inline::reference
|
||||||
image_type: venv
|
image_type: venv
|
||||||
additional_pip_packages:
|
|
||||||
- aiosqlite
|
|
||||||
- asyncpg
|
|
||||||
- psycopg2-binary
|
|
||||||
- sqlalchemy[asyncio]
|
|
||||||
|
|
|
||||||
|
|
@ -54,8 +54,3 @@ distribution_spec:
|
||||||
batches:
|
batches:
|
||||||
- provider_type: inline::reference
|
- provider_type: inline::reference
|
||||||
image_type: venv
|
image_type: venv
|
||||||
additional_pip_packages:
|
|
||||||
- aiosqlite
|
|
||||||
- asyncpg
|
|
||||||
- psycopg2-binary
|
|
||||||
- sqlalchemy[asyncio]
|
|
||||||
|
|
|
||||||
|
|
@ -275,7 +275,6 @@ def get_distribution_template(name: str = "starter") -> DistributionTemplate:
|
||||||
container_image=None,
|
container_image=None,
|
||||||
template_path=None,
|
template_path=None,
|
||||||
providers=providers,
|
providers=providers,
|
||||||
additional_pip_packages=list(set(PostgresSqlStoreConfig.pip_packages() + PostgresKVStoreConfig.pip_packages())),
|
|
||||||
run_configs={
|
run_configs={
|
||||||
"run.yaml": base_run_settings,
|
"run.yaml": base_run_settings,
|
||||||
"run-with-postgres-store.yaml": postgres_run_settings,
|
"run-with-postgres-store.yaml": postgres_run_settings,
|
||||||
|
|
|
||||||
|
|
@ -36,9 +36,7 @@ from llama_stack.core.storage.datatypes import (
|
||||||
StorageBackendType,
|
StorageBackendType,
|
||||||
)
|
)
|
||||||
from llama_stack.core.storage.kvstore.config import SqliteKVStoreConfig
|
from llama_stack.core.storage.kvstore.config import SqliteKVStoreConfig
|
||||||
from llama_stack.core.storage.kvstore.config import get_pip_packages as get_kv_pip_packages
|
|
||||||
from llama_stack.core.storage.sqlstore.sqlstore import SqliteSqlStoreConfig
|
from llama_stack.core.storage.sqlstore.sqlstore import SqliteSqlStoreConfig
|
||||||
from llama_stack.core.storage.sqlstore.sqlstore import get_pip_packages as get_sql_pip_packages
|
|
||||||
from llama_stack.core.utils.dynamic import instantiate_class_type
|
from llama_stack.core.utils.dynamic import instantiate_class_type
|
||||||
from llama_stack.core.utils.image_types import LlamaStackImageType
|
from llama_stack.core.utils.image_types import LlamaStackImageType
|
||||||
from llama_stack.providers.utils.inference.model_registry import ProviderModelEntry
|
from llama_stack.providers.utils.inference.model_registry import ProviderModelEntry
|
||||||
|
|
@ -322,33 +320,7 @@ class DistributionTemplate(BaseModel):
|
||||||
|
|
||||||
available_models_by_provider: dict[str, list[ProviderModelEntry]] | None = None
|
available_models_by_provider: dict[str, list[ProviderModelEntry]] | None = None
|
||||||
|
|
||||||
# we may want to specify additional pip packages without necessarily indicating a
|
|
||||||
# specific "default" inference store (which is what typically used to dictate additional
|
|
||||||
# pip packages)
|
|
||||||
additional_pip_packages: list[str] | None = None
|
|
||||||
|
|
||||||
def build_config(self) -> BuildConfig:
|
def build_config(self) -> BuildConfig:
|
||||||
additional_pip_packages: list[str] = []
|
|
||||||
for run_config in self.run_configs.values():
|
|
||||||
run_config_ = run_config.run_config(self.name, self.providers, self.container_image)
|
|
||||||
|
|
||||||
# TODO: This is a hack to get the dependencies for internal APIs into build
|
|
||||||
# We should have a better way to do this by formalizing the concept of "internal" APIs
|
|
||||||
# and providers, with a way to specify dependencies for them.
|
|
||||||
|
|
||||||
storage_cfg = run_config_.get("storage", {})
|
|
||||||
for backend_cfg in storage_cfg.get("backends", {}).values():
|
|
||||||
store_type = backend_cfg.get("type")
|
|
||||||
if not store_type:
|
|
||||||
continue
|
|
||||||
if str(store_type).startswith("kv_"):
|
|
||||||
additional_pip_packages.extend(get_kv_pip_packages(backend_cfg))
|
|
||||||
elif str(store_type).startswith("sql_"):
|
|
||||||
additional_pip_packages.extend(get_sql_pip_packages(backend_cfg))
|
|
||||||
|
|
||||||
if self.additional_pip_packages:
|
|
||||||
additional_pip_packages.extend(self.additional_pip_packages)
|
|
||||||
|
|
||||||
# Create minimal providers for build config (without runtime configs)
|
# Create minimal providers for build config (without runtime configs)
|
||||||
build_providers = {}
|
build_providers = {}
|
||||||
for api, providers in self.providers.items():
|
for api, providers in self.providers.items():
|
||||||
|
|
@ -368,7 +340,6 @@ class DistributionTemplate(BaseModel):
|
||||||
providers=build_providers,
|
providers=build_providers,
|
||||||
),
|
),
|
||||||
image_type=LlamaStackImageType.VENV.value, # default to venv
|
image_type=LlamaStackImageType.VENV.value, # default to venv
|
||||||
additional_pip_packages=sorted(set(additional_pip_packages)),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def generate_markdown_docs(self) -> str:
|
def generate_markdown_docs(self) -> str:
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,3 @@ distribution_spec:
|
||||||
files:
|
files:
|
||||||
- provider_type: inline::localfs
|
- provider_type: inline::localfs
|
||||||
image_type: venv
|
image_type: venv
|
||||||
additional_pip_packages:
|
|
||||||
- aiosqlite
|
|
||||||
- sqlalchemy[asyncio]
|
|
||||||
|
|
|
||||||
3
tests/external/ramalama-stack/build.yaml
vendored
3
tests/external/ramalama-stack/build.yaml
vendored
|
|
@ -8,6 +8,3 @@ distribution_spec:
|
||||||
module: ramalama_stack==0.3.0a0
|
module: ramalama_stack==0.3.0a0
|
||||||
image_type: venv
|
image_type: venv
|
||||||
image_name: ramalama-stack-test
|
image_name: ramalama-stack-test
|
||||||
additional_pip_packages:
|
|
||||||
- aiosqlite
|
|
||||||
- sqlalchemy[asyncio]
|
|
||||||
|
|
|
||||||
2
uv.lock
generated
2
uv.lock
generated
|
|
@ -2008,6 +2008,7 @@ dependencies = [
|
||||||
{ name = "opentelemetry-sdk" },
|
{ name = "opentelemetry-sdk" },
|
||||||
{ name = "pillow" },
|
{ name = "pillow" },
|
||||||
{ name = "prompt-toolkit" },
|
{ name = "prompt-toolkit" },
|
||||||
|
{ name = "psycopg2-binary" },
|
||||||
{ name = "pydantic" },
|
{ name = "pydantic" },
|
||||||
{ name = "pyjwt", extra = ["crypto"] },
|
{ name = "pyjwt", extra = ["crypto"] },
|
||||||
{ name = "python-dotenv" },
|
{ name = "python-dotenv" },
|
||||||
|
|
@ -2160,6 +2161,7 @@ requires-dist = [
|
||||||
{ name = "opentelemetry-sdk", specifier = ">=1.30.0" },
|
{ name = "opentelemetry-sdk", specifier = ">=1.30.0" },
|
||||||
{ name = "pillow" },
|
{ name = "pillow" },
|
||||||
{ name = "prompt-toolkit" },
|
{ name = "prompt-toolkit" },
|
||||||
|
{ name = "psycopg2-binary" },
|
||||||
{ name = "pydantic", specifier = ">=2.11.9" },
|
{ name = "pydantic", specifier = ">=2.11.9" },
|
||||||
{ name = "pyjwt", extras = ["crypto"], specifier = ">=2.10.0" },
|
{ name = "pyjwt", extras = ["crypto"], specifier = ">=2.10.0" },
|
||||||
{ name = "python-dotenv" },
|
{ name = "python-dotenv" },
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue