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
@@ -616,18 +617,12 @@ def fast_api_common_options():
616
617
617
618
def decorator (func ):
618
619
@click .option (
619
- "--host " ,
620
+ "--base_url " ,
620
621
type = str ,
621
- help = "Optional. The binding host of the server" ,
622
- default = "127.0.0.1 " ,
622
+ help = "Optional. The base URL of the server. " ,
623
+ default = "http:// 127\.0\.0\.1:8000 " ,
623
624
show_default = True ,
624
625
)
625
- @click .option (
626
- "--port" ,
627
- type = int ,
628
- help = "Optional. The port of the server" ,
629
- default = 8000 ,
630
- )
631
626
@click .option (
632
627
"--allow_origins" ,
633
628
help = "Optional. Any additional origins to allow for CORS." ,
@@ -719,8 +714,7 @@ def cli_web(
719
714
eval_storage_uri : Optional [str ] = None ,
720
715
log_level : str = "INFO" ,
721
716
allow_origins : Optional [list [str ]] = None ,
722
- host : str = "127.0.0.1" ,
723
- port : int = 8000 ,
717
+ base_url = "http://127.0.0.1:8000" ,
724
718
trace_to_cloud : bool = False ,
725
719
reload : bool = True ,
726
720
session_service_uri : Optional [str ] = None ,
@@ -741,6 +735,9 @@ def cli_web(
741
735
adk web --session_service_uri=[uri] --port=[port] path/to/agents_dir
742
736
"""
743
737
logs .setup_adk_logger (getattr (logging , log_level .upper ()))
738
+ parsed_url = urlparse (base_url )
739
+ host = parsed_url .hostname
740
+ port = parsed_url .port
744
741
745
742
@asynccontextmanager
746
743
async def _lifespan (app : FastAPI ):
@@ -777,8 +774,7 @@ async def _lifespan(app: FastAPI):
777
774
trace_to_cloud = trace_to_cloud ,
778
775
lifespan = _lifespan ,
779
776
a2a = a2a ,
780
- host = host ,
781
- port = port ,
777
+ base_url = base_url ,
782
778
reload_agents = reload_agents ,
783
779
)
784
780
config = uvicorn .Config (
@@ -810,8 +806,7 @@ def cli_api_server(
810
806
eval_storage_uri : Optional [str ] = None ,
811
807
log_level : str = "INFO" ,
812
808
allow_origins : Optional [list [str ]] = None ,
813
- host : str = "127.0.0.1" ,
814
- port : int = 8000 ,
809
+ base_url = "http://127.0.0.1:8000" ,
815
810
trace_to_cloud : bool = False ,
816
811
reload : bool = True ,
817
812
session_service_uri : Optional [str ] = None ,
@@ -833,6 +828,9 @@ def cli_api_server(
833
828
"""
834
829
logs .setup_adk_logger (getattr (logging , log_level .upper ()))
835
830
831
+ parsed_url = urlparse (base_url )
832
+ host = parsed_url .hostname
833
+ port = parsed_url .port
836
834
session_service_uri = session_service_uri or session_db_url
837
835
artifact_service_uri = artifact_service_uri or artifact_storage_uri
838
836
config = uvicorn .Config (
@@ -846,8 +844,7 @@ def cli_api_server(
846
844
web = False ,
847
845
trace_to_cloud = trace_to_cloud ,
848
846
a2a = a2a ,
849
- host = host ,
850
- port = port ,
847
+ base_url = base_url ,
851
848
reload_agents = reload_agents ,
852
849
),
853
850
host = host ,
0 commit comments