diff --git a/libraries/python/semantic-workbench-assistant/semantic_workbench_assistant/settings.py b/libraries/python/semantic-workbench-assistant/semantic_workbench_assistant/settings.py index 08bccd9..2797220 100644 --- a/libraries/python/semantic-workbench-assistant/semantic_workbench_assistant/settings.py +++ b/libraries/python/semantic-workbench-assistant/semantic_workbench_assistant/settings.py @@ -1,5 +1,6 @@ -from typing import Annotated, Literal -from pydantic import AliasChoices, Field, HttpUrl +from typing import Literal + +from pydantic import Field, HttpUrl from pydantic_core import Url from pydantic_settings import BaseSettings, SettingsConfigDict @@ -16,30 +17,8 @@ class Settings(BaseSettings): storage: FileStorageSettings = FileStorageSettings(root=".data/assistants") logging: LoggingSettings = LoggingSettings() - workbench_service_url: Annotated[ - HttpUrl, - Field( - # alias for backwards compatibility with older env vars - validation_alias=AliasChoices( - "assistant__workbench_service_url", - "ASSISTANT__WORKBENCH_SERVICE_URL", - "assistant__workbench_service_base_url", - "ASSISTANT__WORKBENCH_SERVICE_BASE_URL", - ) - ), - ] = Url("http://127.0.0.1:3000") - workbench_service_api_key: Annotated[ - str, - Field( - # alias for backwards compatibility with older env vars - validation_alias=AliasChoices( - "assistant__api_key", - "ASSISTANT__API_KEY", - "assistant__workbench_service_api_key", - "ASSISTANT__WORKBENCH_SERVICE_API_KEY", - ) - ), - ] = "" + workbench_service_url: HttpUrl = Url("http://127.0.0.1:3000") + workbench_service_api_key: str = "" workbench_service_ping_interval_seconds: float = 20.0 assistant_service_id: str | None = None @@ -50,7 +29,7 @@ class Settings(BaseSettings): protocol: Literal["http", "https"] = "http" host: str = "127.0.0.1" - port: int = 3001 + port: int = 0 website_protocol: str = Field(alias="WEBSITE_PROTOCOL", default="https") website_port: int | None = Field(alias="WEBSITE_PORT", default=None) diff --git a/libraries/python/semantic-workbench-assistant/semantic_workbench_assistant/start.py b/libraries/python/semantic-workbench-assistant/semantic_workbench_assistant/start.py index c81ce1f..ddd6d9e 100644 --- a/libraries/python/semantic-workbench-assistant/semantic_workbench_assistant/start.py +++ b/libraries/python/semantic-workbench-assistant/semantic_workbench_assistant/start.py @@ -23,7 +23,8 @@ def main(): "--port", dest="port", type=int, - help="port to run service on; if not specified, a random port will be selected", + help="port to run service on; if not specified or 0, a random port will be selected", + default=settings.port, ) parse_args.add_argument("--host", dest="host", type=str, default=settings.host, help="host IP to run service on") parse_args.add_argument( diff --git a/tools/docker/Dockerfile.assistant b/tools/docker/Dockerfile.assistant index 2ff84b3..65ca1f7 100644 --- a/tools/docker/Dockerfile.assistant +++ b/tools/docker/Dockerfile.assistant @@ -33,10 +33,10 @@ ENV PATH=/packages/assistants/assistant/.venv/bin:$PATH COPY ./tools/docker/docker-entrypoint.sh /scripts/docker-entrypoint.sh RUN chmod +x /scripts/docker-entrypoint.sh -ENV port=3001 ENV ASSISTANT_APP=${app} -ENV ASSISTANT__HOST=0.0.0.0 -ENV ASSISTANT__PORT=${port} + +ENV assistant__host=0.0.0.0 +ENV assistant__port=3001 SHELL ["/bin/bash", "-c"] ENTRYPOINT ["/scripts/docker-entrypoint.sh"] diff --git a/workbench-service/Dockerfile b/workbench-service/Dockerfile index 032a07c..7289a5f 100644 --- a/workbench-service/Dockerfile +++ b/workbench-service/Dockerfile @@ -39,7 +39,8 @@ RUN chmod +x /scripts/docker-entrypoint.sh WORKDIR /workbench-service -ENV WORKBENCH__SERVICE__HOST=0.0.0.0 +ENV workbench__service__host=0.0.0.0 +ENV workbench__service__port=3000 SHELL ["/bin/bash", "-c"] ENTRYPOINT ["/scripts/docker-entrypoint.sh"]