@@ -513,11 +513,24 @@ async def format_prompt_mixtral(messages):
513513 formatted_prompt += f" { message .content } </s> " # Prep for user follow-up
514514 return formatted_prompt
515515
516+
516517async def format_prompt_commandr (messages ):
517518 formatted_prompt = ""
519+ system_message_found = False
520+
521+ # Check for a system message first
522+ for message in messages :
523+ if message .role == "system" :
524+ system_message_found = True
525+ break
526+
527+ # If no system message was found, prepend a default one
528+ if not system_message_found :
529+ formatted_prompt += f"<BOS_TOKEN><|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|>{ message .content } <|END_OF_TURN_TOKEN|>"
530+
518531 for message in messages :
519532 if message .role == "system" :
520- formatted_prompt += f"<|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|>{ message .content } <|END_OF_TURN_TOKEN|>"
533+ formatted_prompt += f"<BOS_TOKEN>< |START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|>{ message .content } <|END_OF_TURN_TOKEN|>"
521534 elif message .role == "user" :
522535 formatted_prompt += f"<|START_OF_TURN_TOKEN|><|USER_TOKEN|>{ message .content } <|END_OF_TURN_TOKEN|>"
523536 elif message .role == "assistant" :
@@ -527,7 +540,6 @@ async def format_prompt_commandr(messages):
527540 return formatted_prompt
528541
529542
530-
531543@app .post ('/v1/chat/completions' )
532544async def mainchat (request : ChatCompletionRequest ):
533545
@@ -547,7 +559,7 @@ async def mainchat(request: ChatCompletionRequest):
547559 prompt = await format_prompt_nous (request .messages )
548560 elif repo_str == 'tess-xl-exl2' or repo_str == 'tess-xl-exl2-speculative' :
549561 prompt = await format_prompt_tess (request .messages )
550- elif repo_str == 'commandr-exl2' :
562+ elif repo_str == 'commandr-exl2' or repo_str == 'commandr-exl2-speculative' :
551563 prompt = await format_prompt_commandr (request .messages )
552564 else :
553565 prompt = await format_prompt (request .messages )
0 commit comments