@@ -1278,15 +1278,6 @@ def process_call_model(
12781278 concrete_block , "parameters" , scope , loc
12791279 )
12801280
1281- # Apply PDL defaults to model invocation
1282- if concrete_block .parameters is None or isinstance (
1283- concrete_block .parameters , dict
1284- ):
1285- concrete_block .parameters = apply_defaults (
1286- str (model_id ),
1287- concrete_block .parameters or {},
1288- scope .get ("pdl_model_default_parameters" , []),
1289- )
12901281 case GraniteioModelBlock ():
12911282 _ , concrete_block = process_expr_of (concrete_block , "backend" , scope , loc )
12921283 if concrete_block .processor is not None :
@@ -1339,7 +1330,9 @@ def get_transformed_inputs(kwargs):
13391330 if getenv ("OTEL_EXPORTER" ) and getenv ("OTEL_ENDPOINT" ):
13401331 litellm .callbacks = ["otel" ]
13411332
1342- msg , raw_result = generate_client_response (state , concrete_block , model_input )
1333+ msg , raw_result = generate_client_response (
1334+ state , scope , concrete_block , str (model_id ), model_input
1335+ )
13431336 background : LazyMessages = PdlList ([lazy_apply (lambda msg : msg | {"defsite" : block .pdl__id }, msg )]) # type: ignore
13441337 result = lazy_apply (
13451338 lambda msg : "" if msg ["content" ] is None else msg ["content" ], msg
@@ -1368,17 +1361,19 @@ def get_transformed_inputs(kwargs):
13681361
13691362def generate_client_response (
13701363 state : InterpreterState ,
1364+ scope : ScopeType ,
13711365 block : LitellmModelBlock | GraniteioModelBlock ,
1366+ model_id : str ,
13721367 model_input : ModelInput ,
13731368) -> tuple [LazyMessage , PdlLazy [Any ]]:
13741369 match state .batch :
13751370 case 0 :
13761371 model_output , raw_result = generate_client_response_streaming (
1377- state , block , model_input
1372+ state , scope , block , model_id , model_input
13781373 )
13791374 case 1 :
13801375 model_output , raw_result = generate_client_response_single (
1381- state , block , model_input
1376+ state , scope , block , model_id , model_input
13821377 )
13831378 case _:
13841379 assert False
@@ -1387,7 +1382,9 @@ def generate_client_response(
13871382
13881383def generate_client_response_streaming (
13891384 state : InterpreterState ,
1385+ scope : ScopeType ,
13901386 block : LitellmModelBlock | GraniteioModelBlock ,
1387+ model_id : str ,
13911388 model_input : ModelInput ,
13921389) -> tuple [LazyMessage , PdlLazy [Any ]]:
13931390 msg_stream : Generator [dict [str , Any ], Any , Any ]
@@ -1400,6 +1397,13 @@ def generate_client_response_streaming(
14001397 assert parameters is None or isinstance (
14011398 parameters , dict
14021399 ) # block is a "concrete block"
1400+ # Apply PDL defaults to model invocation
1401+
1402+ parameters = apply_defaults (
1403+ model_id ,
1404+ parameters or {},
1405+ scope .get ("pdl_model_default_parameters" , []),
1406+ )
14031407 msg_stream = LitellmModel .generate_text_stream (
14041408 model_id = value_of_expr (block .model ),
14051409 messages = model_input ,
@@ -1408,7 +1412,9 @@ def generate_client_response_streaming(
14081412 )
14091413 case GraniteioModelBlock ():
14101414 # TODO: curently fallback to the non-streaming interface
1411- return generate_client_response_single (state , block , model_input )
1415+ return generate_client_response_single (
1416+ state , scope , block , model_id , model_input
1417+ )
14121418 case _:
14131419 assert False
14141420 complete_msg : Optional [dict [str , Any ]] = None
@@ -1465,7 +1471,9 @@ def litellm_parameters_to_dict(
14651471
14661472def generate_client_response_single (
14671473 state : InterpreterState ,
1474+ scope : ScopeType ,
14681475 block : LitellmModelBlock | GraniteioModelBlock ,
1476+ model_id : str ,
14691477 model_input : ModelInput ,
14701478) -> tuple [LazyMessage , PdlLazy [Any ]]:
14711479 if block .parameters is None :
@@ -1475,6 +1483,11 @@ def generate_client_response_single(
14751483 assert parameters is None or isinstance (
14761484 parameters , dict
14771485 ) # block is a "concrete block"
1486+ parameters = apply_defaults (
1487+ model_id ,
1488+ parameters or {},
1489+ scope .get ("pdl_model_default_parameters" , []),
1490+ )
14781491 block .pdl__usage = PdlUsage ()
14791492 match block :
14801493 case LitellmModelBlock ():
0 commit comments