update fmt
This commit is contained in:
@@ -222,9 +222,9 @@ impl<'a> GenerateModel for Qwen2_5VLGenerateModel<'a> {
|
|||||||
"</tool_call>" => {
|
"</tool_call>" => {
|
||||||
// 结束工具调用
|
// 结束工具调用
|
||||||
let chunk = build_completion_chunk_response(
|
let chunk = build_completion_chunk_response(
|
||||||
decoded_token,
|
decoded_token,
|
||||||
&self.model_name,
|
&self.model_name,
|
||||||
tool_call_id.clone(),
|
tool_call_id.clone(),
|
||||||
Some(tool_call_content.clone())
|
Some(tool_call_content.clone())
|
||||||
);
|
);
|
||||||
tool_call_id = None;
|
tool_call_id = None;
|
||||||
@@ -245,15 +245,15 @@ impl<'a> GenerateModel for Qwen2_5VLGenerateModel<'a> {
|
|||||||
} else {
|
} else {
|
||||||
// 正常文本输出
|
// 正常文本输出
|
||||||
let chunk = build_completion_chunk_response(
|
let chunk = build_completion_chunk_response(
|
||||||
decoded_token,
|
decoded_token,
|
||||||
&self.model_name,
|
&self.model_name,
|
||||||
None,
|
None,
|
||||||
None
|
None
|
||||||
);
|
);
|
||||||
yield Ok(chunk);
|
yield Ok(chunk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// let chunk = build_completion_chunk_response(decoded_token, &self.model_name, None, None);
|
// let chunk = build_completion_chunk_response(decoded_token, &self.model_name, None, None);
|
||||||
// yield Ok(chunk);
|
// yield Ok(chunk);
|
||||||
if next_token == self.endoftext_id || next_token == self.im_end_id {
|
if next_token == self.endoftext_id || next_token == self.im_end_id {
|
||||||
|
|||||||
@@ -72,9 +72,9 @@ impl Qwen2_5VLProcessor {
|
|||||||
if let ChatMessageContentPart::Image(img_part) = part {
|
if let ChatMessageContentPart::Image(img_part) = part {
|
||||||
let img_url = img_part.image_url;
|
let img_url = img_part.image_url;
|
||||||
vision_map.get_mut("image").unwrap().push(img_url.url);
|
vision_map.get_mut("image").unwrap().push(img_url.url);
|
||||||
// } else if let ChatMessageContentPart::Video(video_part) = part {
|
// } else if let ChatMessageContentPart::Video(video_part) = part {
|
||||||
// let video_url = video_part.video_url;
|
// let video_url = video_part.video_url;
|
||||||
// vision_map.get_mut("video").unwrap().push(video_url.url);
|
// vision_map.get_mut("video").unwrap().push(video_url.url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+17
-18
@@ -137,24 +137,23 @@ pub fn ceil_by_factor(num: f32, factor: u32) -> u32 {
|
|||||||
ceil * factor
|
ceil * factor
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn build_completion_response(res: String, model_name: &str, num_tokens: Option<u32>) -> ChatCompletionResponse {
|
pub fn build_completion_response(
|
||||||
|
res: String,
|
||||||
|
model_name: &str,
|
||||||
|
num_tokens: Option<u32>,
|
||||||
|
) -> ChatCompletionResponse {
|
||||||
let id = uuid::Uuid::new_v4().to_string();
|
let id = uuid::Uuid::new_v4().to_string();
|
||||||
let usage = match num_tokens {
|
let usage = num_tokens.map(|num| Usage {
|
||||||
Some(num) => {
|
input_tokens: None,
|
||||||
Some(Usage {
|
input_tokens_details: None,
|
||||||
input_tokens: None,
|
output_tokens: None,
|
||||||
input_tokens_details: None,
|
output_tokens_details: None,
|
||||||
output_tokens: None,
|
prompt_tokens: None,
|
||||||
output_tokens_details: None,
|
completion_tokens: None,
|
||||||
prompt_tokens: None,
|
total_tokens: num,
|
||||||
completion_tokens: None,
|
prompt_tokens_details: None,
|
||||||
total_tokens: num,
|
completion_tokens_details: None,
|
||||||
prompt_tokens_details: None,
|
});
|
||||||
completion_tokens_details: None
|
|
||||||
})
|
|
||||||
},
|
|
||||||
None => None,
|
|
||||||
};
|
|
||||||
let mut response = ChatCompletionResponse {
|
let mut response = ChatCompletionResponse {
|
||||||
id: Some(id),
|
id: Some(id),
|
||||||
choices: vec![],
|
choices: vec![],
|
||||||
@@ -163,7 +162,7 @@ pub fn build_completion_response(res: String, model_name: &str, num_tokens: Opti
|
|||||||
service_tier: None,
|
service_tier: None,
|
||||||
system_fingerprint: None,
|
system_fingerprint: None,
|
||||||
object: "chat.completion".to_string(),
|
object: "chat.completion".to_string(),
|
||||||
usage
|
usage,
|
||||||
};
|
};
|
||||||
let choice = if res.contains("<tool_call>") {
|
let choice = if res.contains("<tool_call>") {
|
||||||
let mes: Vec<&str> = res.split("<tool_call>").collect();
|
let mes: Vec<&str> = res.split("<tool_call>").collect();
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ fn deepseek_ocr_generate() -> Result<()> {
|
|||||||
let tps = num_token as f64 / duration_secs;
|
let tps = num_token as f64 / duration_secs;
|
||||||
println!("Tokens per second (TPS): {:.2}", tps);
|
println!("Tokens per second (TPS): {:.2}", tps);
|
||||||
}
|
}
|
||||||
println!("Time elapsed in generate is: {:?}", i_duration);
|
println!("Time elapsed in generate is: {:?}", i_duration);
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ fn hunyuan_ocr_generate() -> Result<()> {
|
|||||||
println!("Tokens per second (TPS): {:.2}", tps);
|
println!("Tokens per second (TPS): {:.2}", tps);
|
||||||
}
|
}
|
||||||
println!("Time elapsed in generate is: {:?}", i_duration);
|
println!("Time elapsed in generate is: {:?}", i_duration);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ fn paddleocr_vl_generate() -> Result<()> {
|
|||||||
let tps = num_token as f64 / duration_secs;
|
let tps = num_token as f64 / duration_secs;
|
||||||
println!("Tokens per second (TPS): {:.2}", tps);
|
println!("Tokens per second (TPS): {:.2}", tps);
|
||||||
}
|
}
|
||||||
println!("Time elapsed in generate is: {:?}", i_duration);
|
println!("Time elapsed in generate is: {:?}", i_duration);
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ fn qwen2_5vl_generate() -> Result<()> {
|
|||||||
println!("Time elapsed in load model is: {:?}", i_duration);
|
println!("Time elapsed in load model is: {:?}", i_duration);
|
||||||
|
|
||||||
let i_start = Instant::now();
|
let i_start = Instant::now();
|
||||||
let result = model.generate(mes)?;
|
let result = model.generate(mes)?;
|
||||||
let i_duration = i_start.elapsed();
|
let i_duration = i_start.elapsed();
|
||||||
println!("generate: \n {:?}", result);
|
println!("generate: \n {:?}", result);
|
||||||
if result.usage.is_some() {
|
if result.usage.is_some() {
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ fn robo_brain_generate() -> Result<()> {
|
|||||||
let i_start = Instant::now();
|
let i_start = Instant::now();
|
||||||
let result = model.generate(mes)?;
|
let result = model.generate(mes)?;
|
||||||
let i_duration = i_start.elapsed();
|
let i_duration = i_start.elapsed();
|
||||||
println!("generate: \n {:?}", result);
|
println!("generate: \n {:?}", result);
|
||||||
if result.usage.is_some() {
|
if result.usage.is_some() {
|
||||||
let num_token = result.usage.as_ref().unwrap().total_tokens;
|
let num_token = result.usage.as_ref().unwrap().total_tokens;
|
||||||
let duration_secs = i_duration.as_secs_f64();
|
let duration_secs = i_duration.as_secs_f64();
|
||||||
|
|||||||
Reference in New Issue
Block a user