Allow more flexible assistant and system response (#1256)

This commit is contained in:
Christopher Chou
2024-08-30 11:51:44 -07:00
committed by GitHub
parent 79ece2c51f
commit 51c554d812
4 changed files with 95 additions and 8 deletions

View File

@@ -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

View File

@@ -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]]