@@ -86,6 +86,7 @@ def create_llm_inputs(
86
86
add_model_name : bool = False ,
87
87
add_stream : bool = False ,
88
88
tokenizer : AutoTokenizer = DEFAULT_TOKENIZER ,
89
+ extra_inputs : Dict = {},
89
90
) -> Dict :
90
91
"""
91
92
Given an input type, input format, and output type. Output a string of LLM Inputs
@@ -109,9 +110,11 @@ def create_llm_inputs(
109
110
length:
110
111
Number of entries to gather
111
112
add_model_name:
112
- If true adds a model name field to each payload
113
+ If true, adds a model name field to each payload
113
114
add_stream:
114
- If true adds a steam field to each payload
115
+ If true, adds a steam field to each payload
116
+ extra_inputs:
117
+ If provided, append these inputs to every request
115
118
116
119
Required Synthetic Prompt Generation Parameters
117
120
-----------------------------------------------
@@ -164,7 +167,12 @@ def create_llm_inputs(
164
167
)
165
168
166
169
json_in_pa_format = LlmInputs ._convert_generic_json_to_output_format (
167
- output_format , generic_dataset_json , add_model_name , add_stream , model_name
170
+ output_format ,
171
+ generic_dataset_json ,
172
+ add_model_name ,
173
+ add_stream ,
174
+ model_name ,
175
+ extra_inputs ,
168
176
)
169
177
LlmInputs ._write_json_to_file (json_in_pa_format )
170
178
@@ -309,24 +317,29 @@ def _convert_generic_json_to_output_format(
309
317
add_model_name : bool ,
310
318
add_stream : bool ,
311
319
model_name : str = "" ,
320
+ extra_inputs : Dict = {},
312
321
) -> Dict :
313
322
if output_format == OutputFormat .OPENAI_CHAT_COMPLETIONS :
314
323
output_json = (
315
324
LlmInputs ._convert_generic_json_to_openai_chat_completions_format (
316
- generic_dataset , add_model_name , add_stream , model_name
325
+ generic_dataset ,
326
+ add_model_name ,
327
+ add_stream ,
328
+ model_name ,
329
+ extra_inputs ,
317
330
)
318
331
)
319
332
elif output_format == OutputFormat .OPENAI_COMPLETIONS :
320
333
output_json = LlmInputs ._convert_generic_json_to_openai_completions_format (
321
- generic_dataset , add_model_name , add_stream , model_name
334
+ generic_dataset , add_model_name , add_stream , model_name , extra_inputs
322
335
)
323
336
elif output_format == OutputFormat .VLLM :
324
337
output_json = LlmInputs ._convert_generic_json_to_vllm_format (
325
- generic_dataset , add_model_name , add_stream , model_name
338
+ generic_dataset , add_model_name , add_stream , model_name , extra_inputs
326
339
)
327
340
elif output_format == OutputFormat .TRTLLM :
328
341
output_json = LlmInputs ._convert_generic_json_to_trtllm_format (
329
- generic_dataset , add_model_name , add_stream , model_name
342
+ generic_dataset , add_model_name , add_stream , model_name , extra_inputs
330
343
)
331
344
else :
332
345
raise GenAIPerfException (
@@ -342,6 +355,7 @@ def _convert_generic_json_to_openai_chat_completions_format(
342
355
add_model_name : bool ,
343
356
add_stream : bool ,
344
357
model_name : str = "" ,
358
+ extra_inputs : Dict = {},
345
359
) -> Dict :
346
360
# TODO (TMA-1757): Implement a way to select a role for `text_input`
347
361
(
@@ -356,6 +370,7 @@ def _convert_generic_json_to_openai_chat_completions_format(
356
370
add_model_name ,
357
371
add_stream ,
358
372
model_name ,
373
+ extra_inputs ,
359
374
)
360
375
361
376
return pa_json
@@ -367,6 +382,7 @@ def _convert_generic_json_to_openai_completions_format(
367
382
add_model_name : bool ,
368
383
add_stream : bool ,
369
384
model_name : str = "" ,
385
+ extra_inputs : Dict = {},
370
386
) -> Dict :
371
387
(
372
388
system_role_headers ,
@@ -381,6 +397,7 @@ def _convert_generic_json_to_openai_completions_format(
381
397
add_model_name ,
382
398
add_stream ,
383
399
model_name ,
400
+ extra_inputs ,
384
401
)
385
402
386
403
return pa_json
@@ -392,6 +409,7 @@ def _convert_generic_json_to_vllm_format(
392
409
add_model_name : bool ,
393
410
add_stream : bool ,
394
411
model_name : str = "" ,
412
+ extra_inputs : Dict = {},
395
413
) -> Dict :
396
414
(
397
415
system_role_headers ,
@@ -407,6 +425,7 @@ def _convert_generic_json_to_vllm_format(
407
425
add_model_name ,
408
426
add_stream ,
409
427
model_name ,
428
+ extra_inputs ,
410
429
)
411
430
412
431
return pa_json
@@ -418,6 +437,7 @@ def _convert_generic_json_to_trtllm_format(
418
437
add_model_name : bool ,
419
438
add_stream : bool ,
420
439
model_name : str = "" ,
440
+ extra_inputs : Dict = {},
421
441
) -> Dict :
422
442
(
423
443
system_role_headers ,
@@ -433,6 +453,7 @@ def _convert_generic_json_to_trtllm_format(
433
453
add_model_name ,
434
454
add_stream ,
435
455
model_name ,
456
+ extra_inputs ,
436
457
)
437
458
438
459
return pa_json
@@ -480,6 +501,7 @@ def _populate_openai_chat_completions_output_json(
480
501
add_model_name : bool ,
481
502
add_stream : bool ,
482
503
model_name : str = "" ,
504
+ extra_inputs : Dict = {},
483
505
) -> Dict :
484
506
pa_json = LlmInputs ._create_empty_openai_pa_json ()
485
507
@@ -497,7 +519,7 @@ def _populate_openai_chat_completions_output_json(
497
519
)
498
520
499
521
pa_json = LlmInputs ._add_optional_tags_to_openai_json (
500
- pa_json , index , add_model_name , add_stream , model_name
522
+ pa_json , index , add_model_name , add_stream , model_name , extra_inputs
501
523
)
502
524
503
525
return pa_json
@@ -512,6 +534,7 @@ def _populate_openai_completions_output_json(
512
534
add_model_name : bool ,
513
535
add_stream : bool ,
514
536
model_name : str = "" ,
537
+ extra_inputs : Dict = {},
515
538
) -> Dict :
516
539
pa_json = LlmInputs ._create_empty_openai_pa_json ()
517
540
@@ -531,7 +554,7 @@ def _populate_openai_completions_output_json(
531
554
pa_json = LlmInputs ._add_new_prompt_to_json (pa_json , index , new_prompt )
532
555
533
556
pa_json = LlmInputs ._add_optional_tags_to_openai_json (
534
- pa_json , index , add_model_name , add_stream , model_name
557
+ pa_json , index , add_model_name , add_stream , model_name , extra_inputs
535
558
)
536
559
537
560
return pa_json
@@ -546,6 +569,7 @@ def _populate_vllm_output_json(
546
569
add_model_name : bool ,
547
570
add_stream : bool ,
548
571
model_name : str = "" ,
572
+ extra_inputs : Dict = {},
549
573
) -> Dict :
550
574
pa_json = LlmInputs ._create_empty_vllm_pa_json ()
551
575
@@ -566,7 +590,7 @@ def _populate_vllm_output_json(
566
590
)
567
591
568
592
pa_json = LlmInputs ._add_optional_tags_to_vllm_json (
569
- pa_json , index , add_model_name , add_stream , model_name
593
+ pa_json , index , add_model_name , add_stream , model_name , extra_inputs
570
594
)
571
595
572
596
return pa_json
@@ -581,6 +605,7 @@ def _populate_trtllm_output_json(
581
605
add_model_name : bool ,
582
606
add_stream : bool ,
583
607
model_name : str = "" ,
608
+ extra_inputs : Dict = {},
584
609
) -> Dict :
585
610
pa_json = LlmInputs ._create_empty_trtllm_pa_json ()
586
611
@@ -602,7 +627,7 @@ def _populate_trtllm_output_json(
602
627
603
628
pa_json = LlmInputs ._add_required_tags_to_trtllm_json (pa_json , index )
604
629
pa_json = LlmInputs ._add_optional_tags_to_trtllm_json (
605
- pa_json , index , add_model_name , add_stream , model_name
630
+ pa_json , index , add_model_name , add_stream , model_name , extra_inputs
606
631
)
607
632
608
633
return pa_json
@@ -737,11 +762,14 @@ def _add_optional_tags_to_openai_json(
737
762
add_model_name : bool ,
738
763
add_stream : bool ,
739
764
model_name : str = "" ,
765
+ extra_inputs : Dict = {},
740
766
) -> Dict :
741
767
if add_model_name :
742
768
pa_json ["data" ][index ]["payload" ][0 ]["model" ] = model_name
743
769
if add_stream :
744
770
pa_json ["data" ][index ]["payload" ][0 ]["stream" ] = True
771
+ for key , value in extra_inputs .items ():
772
+ pa_json ["data" ][index ]["payload" ][0 ][key ] = value
745
773
746
774
return pa_json
747
775
@@ -753,11 +781,14 @@ def _add_optional_tags_to_vllm_json(
753
781
add_model_name : bool ,
754
782
add_stream : bool ,
755
783
model_name : str = "" ,
784
+ extra_inputs : Dict = {},
756
785
) -> Dict :
757
786
if add_model_name :
758
787
pa_json ["data" ][index ]["model" ] = model_name
759
788
if add_stream :
760
789
pa_json ["data" ][index ]["stream" ] = [True ]
790
+ for key , value in extra_inputs .items ():
791
+ pa_json ["data" ][index ][key ] = [value ]
761
792
762
793
return pa_json
763
794
@@ -769,11 +800,14 @@ def _add_optional_tags_to_trtllm_json(
769
800
add_model_name : bool ,
770
801
add_stream : bool ,
771
802
model_name : str = "" ,
803
+ extra_inputs : Dict = {},
772
804
) -> Dict :
773
805
if add_model_name :
774
806
pa_json ["data" ][index ]["model" ] = model_name
775
807
if add_stream :
776
808
pa_json ["data" ][index ]["stream" ] = [True ]
809
+ for key , value in extra_inputs .items ():
810
+ pa_json ["data" ][index ][key ] = [value ]
777
811
778
812
return pa_json
779
813
0 commit comments