@@ -223,17 +223,18 @@ impl OpenAIPreprocessor {
223
223
. nvext ( )
224
224
. is_some_and ( |ext| ext. use_raw_prompt . unwrap_or ( false ) ) ;
225
225
226
- if use_raw_prompt {
226
+ let formatted_prompt = if use_raw_prompt {
227
227
match request. raw_prompt ( ) {
228
- Some ( prompt) => Ok ( Some ( prompt) ) ,
228
+ Some ( prompt) => prompt,
229
229
None => {
230
230
tracing:: warn!( "Raw prompt requested but not available" ) ;
231
- Ok ( Some ( self . formatter . render ( request) ?) )
231
+ self . formatter . render ( request) ?
232
232
}
233
233
}
234
234
} else {
235
- Ok ( Some ( self . formatter . render ( request) ?) )
236
- }
235
+ self . formatter . render ( request) ?
236
+ } ;
237
+ Ok ( Some ( formatted_prompt) )
237
238
} else {
238
239
Ok ( None )
239
240
}
@@ -275,8 +276,16 @@ impl OpenAIPreprocessor {
275
276
PromptInput :: Text ( _) => {
276
277
if let Some ( text_input) = request. extract_text ( ) {
277
278
match text_input {
278
- TextInput :: Single ( _) => {
279
- let formatted_prompt = formatted_prompt. expect ( "Could not find a prompt. The paired match statements earlier should make this unreachable" ) ;
279
+ TextInput :: Single ( raw_prompt) => {
280
+ if let Some ( f) = formatted_prompt. as_ref ( )
281
+ && request. has_annotation ( ANNOTATION_FORMATTED_PROMPT )
282
+ {
283
+ annotations
284
+ . insert ( ANNOTATION_FORMATTED_PROMPT . to_string ( ) , f. to_string ( ) ) ;
285
+ }
286
+
287
+ // Completions will use raw_prompt, no template
288
+ let prompt = formatted_prompt. unwrap_or ( raw_prompt) ;
280
289
281
290
// Check if backend_instance_id is present and token_data is provided
282
291
let has_backend_instance_id = request
@@ -299,22 +308,15 @@ impl OpenAIPreprocessor {
299
308
tracing:: warn!(
300
309
"backend_instance_id provided but no token_data; tokenizing prompt"
301
310
) ;
302
- let encoding = self . tokenizer . encode ( & formatted_prompt ) ?;
311
+ let encoding = self . tokenizer . encode ( & prompt ) ?;
303
312
( encoding. token_ids ( ) . to_vec ( ) , false )
304
313
}
305
314
} else {
306
315
// No backend_instance_id provided, continue the normal flow.
307
- let encoding = self . tokenizer . encode ( & formatted_prompt ) ?;
316
+ let encoding = self . tokenizer . encode ( & prompt ) ?;
308
317
( encoding. token_ids ( ) . to_vec ( ) , false )
309
318
} ;
310
319
311
- if request. has_annotation ( ANNOTATION_FORMATTED_PROMPT ) {
312
- annotations. insert (
313
- ANNOTATION_FORMATTED_PROMPT . to_string ( ) ,
314
- formatted_prompt,
315
- ) ;
316
- }
317
-
318
320
if request. has_annotation ( ANNOTATION_TOKEN_IDS )
319
321
&& !skip_token_annotation
320
322
{
0 commit comments