Skip to content

Commit 108b727

Browse files
committed
feat: more generic url
1 parent 0c6086c commit 108b727

File tree

3 files changed

+18
-24
lines changed

3 files changed

+18
-24
lines changed

src/google/adk/cli/cli_tools_click.py

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import os
2424
import tempfile
2525
from typing import Optional
26+
from urllib.parse import urlparse
2627

2728
import click
2829
from click.core import ParameterSource
@@ -553,18 +554,12 @@ def fast_api_common_options():
553554

554555
def decorator(func):
555556
@click.option(
556-
"--host",
557+
"--base_url",
557558
type=str,
558-
help="Optional. The binding host of the server",
559-
default="127.0.0.1",
559+
help="Optional. The base URL of the server.",
560+
default="http://127\.0\.0\.1:8000",
560561
show_default=True,
561562
)
562-
@click.option(
563-
"--port",
564-
type=int,
565-
help="Optional. The port of the server",
566-
default=8000,
567-
)
568563
@click.option(
569564
"--allow_origins",
570565
help="Optional. Any additional origins to allow for CORS.",
@@ -647,8 +642,7 @@ def cli_web(
647642
eval_storage_uri: Optional[str] = None,
648643
log_level: str = "INFO",
649644
allow_origins: Optional[list[str]] = None,
650-
host: str = "127.0.0.1",
651-
port: int = 8000,
645+
base_url="http://127.0.0.1:8000",
652646
trace_to_cloud: bool = False,
653647
reload: bool = True,
654648
session_service_uri: Optional[str] = None,
@@ -669,6 +663,9 @@ def cli_web(
669663
adk web --session_service_uri=[uri] --port=[port] path/to/agents_dir
670664
"""
671665
logs.setup_adk_logger(getattr(logging, log_level.upper()))
666+
parsed_url = urlparse(base_url)
667+
host = parsed_url.hostname
668+
port = parsed_url.port
672669

673670
@asynccontextmanager
674671
async def _lifespan(app: FastAPI):
@@ -705,8 +702,7 @@ async def _lifespan(app: FastAPI):
705702
trace_to_cloud=trace_to_cloud,
706703
lifespan=_lifespan,
707704
a2a=a2a,
708-
host=host,
709-
port=port,
705+
base_url=base_url,
710706
reload_agents=reload_agents,
711707
)
712708
config = uvicorn.Config(
@@ -738,8 +734,7 @@ def cli_api_server(
738734
eval_storage_uri: Optional[str] = None,
739735
log_level: str = "INFO",
740736
allow_origins: Optional[list[str]] = None,
741-
host: str = "127.0.0.1",
742-
port: int = 8000,
737+
base_url="http://127.0.0.1:8000",
743738
trace_to_cloud: bool = False,
744739
reload: bool = True,
745740
session_service_uri: Optional[str] = None,
@@ -761,6 +756,9 @@ def cli_api_server(
761756
"""
762757
logs.setup_adk_logger(getattr(logging, log_level.upper()))
763758

759+
parsed_url = urlparse(base_url)
760+
host = parsed_url.hostname
761+
port = parsed_url.port
764762
session_service_uri = session_service_uri or session_db_url
765763
artifact_service_uri = artifact_service_uri or artifact_storage_uri
766764
config = uvicorn.Config(
@@ -774,8 +772,7 @@ def cli_api_server(
774772
web=False,
775773
trace_to_cloud=trace_to_cloud,
776774
a2a=a2a,
777-
host=host,
778-
port=port,
775+
base_url=base_url,
779776
reload_agents=reload_agents,
780777
),
781778
host=host,

src/google/adk/cli/fast_api.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,7 @@ def get_fast_api_app(
6464
allow_origins: Optional[list[str]] = None,
6565
web: bool,
6666
a2a: bool = False,
67-
host: str = "127.0.0.1",
68-
port: int = 8000,
67+
base_url: str = "http://127.0.0.1:8000",
6968
trace_to_cloud: bool = False,
7069
reload_agents: bool = False,
7170
lifespan: Optional[Lifespan[FastAPI]] = None,
@@ -352,7 +351,7 @@ async def _get_a2a_runner_async() -> Runner:
352351
logger.info("Setting up A2A agent: %s", app_name)
353352

354353
try:
355-
a2a_rpc_path = f"http://{host}:{port}/a2a/{app_name}"
354+
a2a_rpc_path = f"{base_url}/a2a/{app_name}"
356355

357356
agent_executor = A2aAgentExecutor(
358357
runner=create_a2a_runner_loader(app_name),

tests/unittests/cli/test_fast_api.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -432,8 +432,7 @@ def test_app(
432432
memory_service_uri="",
433433
allow_origins=["*"],
434434
a2a=False, # Disable A2A for most tests
435-
host="127.0.0.1",
436-
port=8000,
435+
base_url="http://127.0.0.1:8000",
437436
)
438437

439438
# Create a TestClient that doesn't start a real server
@@ -607,8 +606,7 @@ def test_app_with_a2a(
607606
memory_service_uri="",
608607
allow_origins=["*"],
609608
a2a=True,
610-
host="127.0.0.1",
611-
port=8000,
609+
base_url="http://127.0.0.1:8000",
612610
)
613611

614612
client = TestClient(app)

0 commit comments

Comments
 (0)