model: Minicpmo (#3023)
This commit is contained in:
@@ -899,6 +899,7 @@ def v1_chat_generate_request(
|
||||
input_ids = []
|
||||
sampling_params_list = []
|
||||
image_data_list = []
|
||||
audio_data_list = []
|
||||
return_logprobs = []
|
||||
logprob_start_lens = []
|
||||
top_logprobs_nums = []
|
||||
@@ -912,6 +913,7 @@ def v1_chat_generate_request(
|
||||
# - prompt: The full prompt string.
|
||||
# - stop: Custom stop tokens.
|
||||
# - image_data: None or a list of image strings (URLs or base64 strings).
|
||||
# - audio_data: None or a list of audio strings (URLs).
|
||||
# None skips any image processing in GenerateReqInput.
|
||||
if not isinstance(request.messages, str):
|
||||
# Apply chat template and its stop strings.
|
||||
@@ -956,7 +958,7 @@ def v1_chat_generate_request(
|
||||
)
|
||||
except:
|
||||
# This except branch will be triggered when the chosen model
|
||||
# has a different tools input format that is not compatiable
|
||||
# has a different tools input format that is not compatible
|
||||
# with openAI's apply_chat_template tool_call format, like Mistral.
|
||||
tools = [t if "function" in t else {"function": t} for t in tools]
|
||||
prompt_ids = tokenizer_manager.tokenizer.apply_chat_template(
|
||||
@@ -976,11 +978,13 @@ def v1_chat_generate_request(
|
||||
prompt_ids += encoded
|
||||
stop = request.stop
|
||||
image_data = None
|
||||
audio_data = None
|
||||
modalities = []
|
||||
else:
|
||||
conv = generate_chat_conv(request, chat_template_name)
|
||||
prompt = conv.get_prompt()
|
||||
image_data = conv.image_data
|
||||
audio_data = conv.audio_data
|
||||
modalities = conv.modalities
|
||||
stop = conv.stop_str or []
|
||||
if request.stop:
|
||||
@@ -994,6 +998,7 @@ def v1_chat_generate_request(
|
||||
prompt_ids = request.messages
|
||||
stop = request.stop
|
||||
image_data = None
|
||||
audio_data = None
|
||||
modalities = []
|
||||
input_ids.append(prompt_ids)
|
||||
return_logprobs.append(request.logprobs)
|
||||
@@ -1034,6 +1039,7 @@ def v1_chat_generate_request(
|
||||
sampling_params_list.append(sampling_params)
|
||||
|
||||
image_data_list.append(image_data)
|
||||
audio_data_list.append(audio_data)
|
||||
modalities_list.append(modalities)
|
||||
if len(all_requests) == 1:
|
||||
if isinstance(input_ids[0], str):
|
||||
@@ -1042,6 +1048,7 @@ def v1_chat_generate_request(
|
||||
prompt_kwargs = {"input_ids": input_ids[0]}
|
||||
sampling_params_list = sampling_params_list[0]
|
||||
image_data_list = image_data_list[0]
|
||||
audio_data_list = audio_data_list[0]
|
||||
return_logprobs = return_logprobs[0]
|
||||
logprob_start_lens = logprob_start_lens[0]
|
||||
top_logprobs_nums = top_logprobs_nums[0]
|
||||
@@ -1056,6 +1063,7 @@ def v1_chat_generate_request(
|
||||
adapted_request = GenerateReqInput(
|
||||
**prompt_kwargs,
|
||||
image_data=image_data_list,
|
||||
audio_data=audio_data_list,
|
||||
sampling_params=sampling_params_list,
|
||||
return_logprob=return_logprobs,
|
||||
logprob_start_len=logprob_start_lens,
|
||||
|
||||
@@ -227,14 +227,25 @@ class ChatCompletionMessageContentImageURL(BaseModel):
|
||||
detail: Optional[Literal["auto", "low", "high"]] = "auto"
|
||||
|
||||
|
||||
class ChatCompletionMessageContentAudioURL(BaseModel):
|
||||
url: str
|
||||
|
||||
|
||||
class ChatCompletionMessageContentImagePart(BaseModel):
|
||||
type: Literal["image_url"]
|
||||
image_url: ChatCompletionMessageContentImageURL
|
||||
modalities: Optional[Literal["image", "multi-images", "video"]] = "image"
|
||||
|
||||
|
||||
class ChatCompletionMessageContentAudioPart(BaseModel):
|
||||
type: Literal["audio_url"]
|
||||
audio_url: ChatCompletionMessageContentAudioURL
|
||||
|
||||
|
||||
ChatCompletionMessageContentPart = Union[
|
||||
ChatCompletionMessageContentTextPart, ChatCompletionMessageContentImagePart
|
||||
ChatCompletionMessageContentTextPart,
|
||||
ChatCompletionMessageContentImagePart,
|
||||
ChatCompletionMessageContentAudioPart,
|
||||
]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user