Files
aha/src/lib.rs
T

34 lines
971 B
Rust
Raw Normal View History

2025-09-25 12:09:25 +08:00
use crate::models::{minicpm4::generate::MiniCPMGenerateModel, qwen2_5vl::generate::Qwen2_5VLGenerateModel, GenerateModel};
2025-09-22 16:38:12 +08:00
use anyhow::{Ok, Result};
use candle_core::{DType, Device};
pub mod chat_template;
pub mod models;
pub mod position_embed;
pub mod tokenizer;
pub mod utils;
pub enum ModelType {
Qwen2_5VL,
2025-09-25 12:09:25 +08:00
MiniCPM4,
2025-09-22 16:38:12 +08:00
}
impl ModelType {
pub fn init(
model_type: ModelType,
model_path: &str,
device: Option<&Device>,
dtype: Option<DType>,
2025-09-25 12:25:24 +08:00
) -> Result<Box<dyn GenerateModel>> {
2025-09-22 16:38:12 +08:00
match model_type {
ModelType::Qwen2_5VL => {
let model = Qwen2_5VLGenerateModel::init(model_path, device, dtype)?;
2025-09-25 12:25:24 +08:00
Ok(Box::new(model) as Box<dyn GenerateModel>)
2025-09-25 12:09:25 +08:00
},
ModelType::MiniCPM4 => {
let model = MiniCPMGenerateModel::init(model_path, device, dtype)?;
2025-09-25 12:25:24 +08:00
Ok(Box::new(model)as Box<dyn GenerateModel>)
2025-09-25 12:44:17 +08:00
}
2025-09-22 16:38:12 +08:00
}
}
}