Make llama stack build not create a new conda by default

This commit is contained in:
Ashwin Bharambe 2025-01-16 12:30:12 -08:00
parent 17fd2d2fd0
commit a36c33026e
8 changed files with 400 additions and 338 deletions

View file

@ -10,7 +10,7 @@ import sys
from enum import Enum
from pathlib import Path
from typing import Dict, List
from typing import Dict, List, Optional
from pydantic import BaseModel
from termcolor import cprint
@ -106,6 +106,8 @@ def print_pip_install_help(providers: Dict[str, List[Provider]]):
def build_image(
build_config: BuildConfig,
build_file_path: Path,
image_name: str,
template_name: Optional[str] = None,
):
docker_image = build_config.distribution_spec.docker_image or "python:3.10-slim"
@ -115,32 +117,34 @@ def build_image(
normal_deps += SERVER_DEPENDENCIES
if build_config.image_type == ImageType.docker.value:
script = (
script = str(
importlib.resources.files("llama_stack") / "distribution/build_container.sh"
)
args = [
script,
build_config.name,
image_name,
docker_image,
str(build_file_path),
str(BUILDS_BASE_DIR / ImageType.docker.value),
" ".join(normal_deps),
]
elif build_config.image_type == ImageType.conda.value:
script = (
script = str(
importlib.resources.files("llama_stack") / "distribution/build_conda_env.sh"
)
args = [
script,
build_config.name,
str(image_name),
str(build_file_path),
" ".join(normal_deps),
]
elif build_config.image_type == ImageType.venv.value:
script = importlib.resources.files("llama_stack") / "distribution/build_venv.sh"
script = str(
importlib.resources.files("llama_stack") / "distribution/build_venv.sh"
)
args = [
script,
build_config.name,
str(image_name),
str(build_file_path),
" ".join(normal_deps),
]
@ -156,7 +160,7 @@ def build_image(
if return_code != 0:
log.error(
f"Failed to build target {build_config.name} with return code {return_code}",
f"Failed to build target {image_name} with return code {return_code}",
)
return return_code

View file

@ -18,8 +18,8 @@ if [ -n "$LLAMA_MODELS_DIR" ]; then
fi
if [ "$#" -lt 3 ]; then
echo "Usage: $0 <distribution_type> <build_name> <build_file_path> <pip_dependencies> [<special_pip_deps>]" >&2
echo "Example: $0 <distribution_type> mybuild ./my-stack-build.yaml 'numpy pandas scipy'" >&2
echo "Usage: $0 <distribution_type> <conda_env_name> <build_file_path> <pip_dependencies> [<special_pip_deps>]" >&2
echo "Example: $0 <distribution_type> my-conda-env ./my-stack-build.yaml 'numpy pandas scipy'" >&2
exit 1
fi
@ -27,8 +27,7 @@ special_pip_deps="$4"
set -euo pipefail
build_name="$1"
env_name="llamastack-$build_name"
env_name="$1"
build_file_path="$2"
pip_dependencies="$3"
@ -137,8 +136,8 @@ ensure_conda_env_python310() {
fi
fi
mv $build_file_path $CONDA_PREFIX/
echo "Build spec configuration saved at $CONDA_PREFIX/$build_name-build.yaml"
mv $build_file_path $CONDA_PREFIX/llamastack-build.yaml
echo "Build spec configuration saved at $CONDA_PREFIX/llamastack-build.yaml"
}
ensure_conda_env_python310 "$env_name" "$pip_dependencies" "$special_pip_deps"

View file

@ -131,10 +131,6 @@ this could be just a hash
default=None,
description="Reference to the docker image if this package refers to a container",
)
conda_env: Optional[str] = Field(
default=None,
description="Reference to the conda environment if this package refers to a conda environment",
)
apis: List[str] = Field(
default_factory=list,
description="""
@ -166,7 +162,7 @@ a default SQLite store will be used.""",
class BuildConfig(BaseModel):
version: str = LLAMA_STACK_BUILD_CONFIG_VERSION
name: str
distribution_spec: DistributionSpec = Field(
description="The distribution spec to build including API providers. "
)

View file

@ -23,8 +23,7 @@ if [ $# -lt 3 ]; then
exit 1
fi
build_name="$1"
env_name="llamastack-$build_name"
env_name="$1"
shift
yaml_config="$1"