@@ -487,16 +487,23 @@ def create_rft_command(args) -> int:
487487 return 1
488488
489489 # Build training config/body
490- # Ensure base model is explicitly provided for clarity
491- if not getattr (args , "base_model" , None ):
492- print (
493- "Error: --base-model is required. Please specify the base model resource id (e.g., accounts/{account}/models/<model_id>)."
494- )
490+ # Exactly one of base-model or warm-start-from must be provided
491+ base_model_raw = getattr (args , "base_model" , None )
492+ warm_start_from_raw = getattr (args , "warm_start_from" , None )
493+ # Treat empty/whitespace strings as not provided
494+ base_model = base_model_raw .strip () if isinstance (base_model_raw , str ) else base_model_raw
495+ warm_start_from = warm_start_from_raw .strip () if isinstance (warm_start_from_raw , str ) else warm_start_from_raw
496+ has_base_model = bool (base_model )
497+ has_warm_start = bool (warm_start_from )
498+ if (not has_base_model and not has_warm_start ) or (has_base_model and has_warm_start ):
499+ print ("Error: exactly one of --base-model or --warm-start-from must be specified." )
495500 return 1
496501
497- training_config : Dict [str , Any ] = {"baseModel" : args .base_model }
498- if getattr (args , "warm_start_from" , None ):
499- training_config ["warmStartFrom" ] = args .warm_start_from
502+ training_config : Dict [str , Any ] = {}
503+ if has_base_model :
504+ training_config ["baseModel" ] = base_model
505+ if has_warm_start :
506+ training_config ["warmStartFrom" ] = warm_start_from
500507
501508 # Optional hyperparameters
502509 for key , arg_name in [
0 commit comments