23
23
import os
24
24
import tempfile
25
25
from typing import Optional
26
+ from urllib .parse import urlparse
26
27
27
28
import click
28
29
from click .core import ParameterSource
@@ -553,18 +554,12 @@ def fast_api_common_options():
553
554
554
555
def decorator (func ):
555
556
@click .option (
556
- "--host " ,
557
+ "--base_url " ,
557
558
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 " ,
560
561
show_default = True ,
561
562
)
562
- @click .option (
563
- "--port" ,
564
- type = int ,
565
- help = "Optional. The port of the server" ,
566
- default = 8000 ,
567
- )
568
563
@click .option (
569
564
"--allow_origins" ,
570
565
help = "Optional. Any additional origins to allow for CORS." ,
@@ -647,8 +642,7 @@ def cli_web(
647
642
eval_storage_uri : Optional [str ] = None ,
648
643
log_level : str = "INFO" ,
649
644
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" ,
652
646
trace_to_cloud : bool = False ,
653
647
reload : bool = True ,
654
648
session_service_uri : Optional [str ] = None ,
@@ -669,6 +663,9 @@ def cli_web(
669
663
adk web --session_service_uri=[uri] --port=[port] path/to/agents_dir
670
664
"""
671
665
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
672
669
673
670
@asynccontextmanager
674
671
async def _lifespan (app : FastAPI ):
@@ -705,8 +702,7 @@ async def _lifespan(app: FastAPI):
705
702
trace_to_cloud = trace_to_cloud ,
706
703
lifespan = _lifespan ,
707
704
a2a = a2a ,
708
- host = host ,
709
- port = port ,
705
+ base_url = base_url ,
710
706
reload_agents = reload_agents ,
711
707
)
712
708
config = uvicorn .Config (
@@ -738,8 +734,7 @@ def cli_api_server(
738
734
eval_storage_uri : Optional [str ] = None ,
739
735
log_level : str = "INFO" ,
740
736
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" ,
743
738
trace_to_cloud : bool = False ,
744
739
reload : bool = True ,
745
740
session_service_uri : Optional [str ] = None ,
@@ -761,6 +756,9 @@ def cli_api_server(
761
756
"""
762
757
logs .setup_adk_logger (getattr (logging , log_level .upper ()))
763
758
759
+ parsed_url = urlparse (base_url )
760
+ host = parsed_url .hostname
761
+ port = parsed_url .port
764
762
session_service_uri = session_service_uri or session_db_url
765
763
artifact_service_uri = artifact_service_uri or artifact_storage_uri
766
764
config = uvicorn .Config (
@@ -774,8 +772,7 @@ def cli_api_server(
774
772
web = False ,
775
773
trace_to_cloud = trace_to_cloud ,
776
774
a2a = a2a ,
777
- host = host ,
778
- port = port ,
775
+ base_url = base_url ,
779
776
reload_agents = reload_agents ,
780
777
),
781
778
host = host ,
0 commit comments