Allow more flexible assistant and system response (#1256)
This commit is contained in:
@@ -844,8 +844,23 @@ def v1_chat_generate_request(
|
||||
if not isinstance(request.messages, str):
|
||||
# Apply chat template and its stop strings.
|
||||
if chat_template_name is None:
|
||||
openai_compatible_messages = []
|
||||
for message in request.messages:
|
||||
if isinstance(message.content, str):
|
||||
openai_compatible_messages.append(
|
||||
{"role": message.role, "content": message.content}
|
||||
)
|
||||
else:
|
||||
content_list = message.dict()["content"]
|
||||
for content in content_list:
|
||||
if content["type"] == "text":
|
||||
openai_compatible_messages.append(
|
||||
{"role": message.role, "content": content["text"]}
|
||||
)
|
||||
prompt_ids = tokenizer_manager.tokenizer.apply_chat_template(
|
||||
request.messages, tokenize=True, add_generation_prompt=True
|
||||
openai_compatible_messages,
|
||||
tokenize=True,
|
||||
add_generation_prompt=True,
|
||||
)
|
||||
stop = request.stop
|
||||
image_data = None
|
||||
|
||||
@@ -200,11 +200,6 @@ class CompletionStreamResponse(BaseModel):
|
||||
usage: Optional[UsageInfo] = None
|
||||
|
||||
|
||||
class ChatCompletionMessageGenericParam(BaseModel):
|
||||
role: Literal["system", "assistant"]
|
||||
content: str
|
||||
|
||||
|
||||
class ChatCompletionMessageContentTextPart(BaseModel):
|
||||
type: Literal["text"]
|
||||
text: str
|
||||
@@ -225,6 +220,11 @@ ChatCompletionMessageContentPart = Union[
|
||||
]
|
||||
|
||||
|
||||
class ChatCompletionMessageGenericParam(BaseModel):
|
||||
role: Literal["system", "assistant"]
|
||||
content: Union[str, List[ChatCompletionMessageContentTextPart]]
|
||||
|
||||
|
||||
class ChatCompletionMessageUserParam(BaseModel):
|
||||
role: Literal["user"]
|
||||
content: Union[str, List[ChatCompletionMessageContentPart]]
|
||||
|
||||
Reference in New Issue
Block a user