deepseek_ocr mes metadata add base_size,image_size,crop_mode

This commit is contained in:
jhqxxx
2025-11-24 19:08:01 +08:00
parent 44d7dd755d
commit 08a73bfcc5
2 changed files with 38 additions and 7 deletions
+34 -1
View File
@@ -28,6 +28,7 @@ pub struct DeepseekOCRGenerateModel {
bos_token_id: u32,
eos_token_id: u32,
device: Device,
size: Vec<u32>,
}
impl DeepseekOCRGenerateModel {
@@ -44,6 +45,7 @@ impl DeepseekOCRGenerateModel {
let model_list = find_type_files(path, "safetensors")?;
let vb = unsafe { VarBuilder::from_mmaped_safetensors(&model_list, dtype, device)? };
let deepseekocr_model = DeepseekOCRModel::new(vb, cfg)?;
let size = vec![512u32, 640, 1024, 1280];
Ok(Self {
tokenizer,
processor,
@@ -51,16 +53,47 @@ impl DeepseekOCRGenerateModel {
bos_token_id,
eos_token_id,
device: device.clone(),
size,
})
}
}
impl GenerateModel for DeepseekOCRGenerateModel {
fn generate(&mut self, mes: ChatCompletionParameters) -> Result<ChatCompletionResponse> {
let base_size = if let Some(map) = &mes.metadata
&& map.contains_key("base_size")
{
let size = map.get("base_size").unwrap();
let size = size.parse::<u32>().unwrap_or(640);
if self.size.contains(&size) { size } else { 640 }
} else {
640
};
let image_size = if let Some(map) = &mes.metadata
&& map.contains_key("image_size")
{
let size = map.get("image_size").unwrap();
let size = size.parse::<u32>().unwrap_or(640);
if self.size.contains(&size) { size } else { 640 }
} else {
640
};
let crop_mode = if let Some(map) = &mes.metadata
&& map.contains_key("crop_mode")
{
let size = map.get("crop_mode").unwrap();
size.parse::<bool>().unwrap_or(false)
} else {
false
};
println!(
"base_size: {}, image_size: {}, crop_mode: {}",
base_size, image_size, crop_mode
);
let mut logit_processor = get_logit_processor(mes.temperature, mes.top_p, None);
let (mut input_ids, images_ori, image_crop, images_seq_mask, images_spatial_crop_t) = self
.processor
.process_info(&mes, &self.tokenizer, 640, 640, true)?;
.process_info(&mes, &self.tokenizer, base_size, image_size, crop_mode)?;
let mut images_ori = Some(&images_ori);
let mut image_crop = Some(&image_crop);
let mut images_seq_mask = Some(&images_seq_mask);
+4 -6
View File
@@ -27,12 +27,9 @@ fn deepseek_ocr_generate() -> Result<()> {
"text": "<image>\n<|grounding|>Convert the document to markdown. "
}
]
},
{
"role": "assistant",
"content": ""
}
]
],
"metadata": {"base_size": "640", "image_size": "640", "crop_mode": "false"}
}
"#;
let model_path = "/home/jhq/huggingface_model/deepseek-ai/DeepSeek-OCR/";
@@ -77,7 +74,8 @@ async fn deepseek_ocr_stream() -> Result<()> {
"role": "assistant",
"content": ""
}
]
],
"metadata": {"base_size": "640", "image_size": "640", "crop_mode": "false"}
}
"#;
let model_path = "/home/jhq/huggingface_model/deepseek-ai/DeepSeek-OCR/";