add qwen3 and fun-asr-nano
This commit is contained in:
+23
-2
@@ -1,10 +1,12 @@
|
||||
pub mod common;
|
||||
pub mod deepseek_ocr;
|
||||
pub mod fun_asr_nano;
|
||||
pub mod glm_asr_nano;
|
||||
pub mod hunyuan_ocr;
|
||||
pub mod minicpm4;
|
||||
pub mod paddleocr_vl;
|
||||
pub mod qwen2_5vl;
|
||||
pub mod qwen3;
|
||||
pub mod qwen3vl;
|
||||
pub mod rmbg2_0;
|
||||
pub mod voxcpm;
|
||||
@@ -17,11 +19,12 @@ use rocket::futures::Stream;
|
||||
|
||||
use crate::models::{
|
||||
deepseek_ocr::generate::DeepseekOCRGenerateModel,
|
||||
fun_asr_nano::generate::FunAsrNanoGenerateModel,
|
||||
glm_asr_nano::generate::GlmAsrNanoGenerateModel,
|
||||
hunyuan_ocr::generate::HunyuanOCRGenerateModel, minicpm4::generate::MiniCPMGenerateModel,
|
||||
paddleocr_vl::generate::PaddleOCRVLGenerateModel, qwen2_5vl::generate::Qwen2_5VLGenerateModel,
|
||||
qwen3vl::generate::Qwen3VLGenerateModel, rmbg2_0::generate::RMBG2_0Model,
|
||||
voxcpm::generate::VoxCPMGenerate,
|
||||
qwen3::generate::Qwen3GenerateModel, qwen3vl::generate::Qwen3VLGenerateModel,
|
||||
rmbg2_0::generate::RMBG2_0Model, voxcpm::generate::VoxCPMGenerate,
|
||||
};
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, clap::ValueEnum)]
|
||||
@@ -32,6 +35,8 @@ pub enum WhichModel {
|
||||
Qwen2_5vl3B,
|
||||
#[value(name = "qwen2.5vl-7b")]
|
||||
Qwen2_5vl7B,
|
||||
#[value(name = "qwen3-0.6b")]
|
||||
Qwen3_0_6B,
|
||||
#[value(name = "qwen3vl-2b")]
|
||||
Qwen3vl2B,
|
||||
#[value(name = "qwen3vl-4b")]
|
||||
@@ -54,6 +59,8 @@ pub enum WhichModel {
|
||||
VoxCPM1_5,
|
||||
#[value(name = "glm-asr-nano-2512")]
|
||||
GlmASRNano2512,
|
||||
#[value(name = "fun-asr-nano-2512")]
|
||||
FunASRNano2512,
|
||||
}
|
||||
|
||||
pub trait GenerateModel {
|
||||
@@ -74,6 +81,7 @@ pub trait GenerateModel {
|
||||
pub enum ModelInstance<'a> {
|
||||
MiniCPM4(MiniCPMGenerateModel<'a>),
|
||||
Qwen2_5VL(Qwen2_5VLGenerateModel<'a>),
|
||||
Qwen3(Qwen3GenerateModel<'a>),
|
||||
Qwen3VL(Qwen3VLGenerateModel<'a>),
|
||||
DeepSeekOCR(DeepseekOCRGenerateModel),
|
||||
HunyuanOCR(HunyuanOCRGenerateModel<'a>),
|
||||
@@ -81,6 +89,7 @@ pub enum ModelInstance<'a> {
|
||||
RMBG2_0(Box<RMBG2_0Model>),
|
||||
VoxCPM(Box<VoxCPMGenerate>),
|
||||
GlmASRNano(GlmAsrNanoGenerateModel<'a>),
|
||||
FunASRNano(FunAsrNanoGenerateModel),
|
||||
}
|
||||
|
||||
impl<'a> GenerateModel for ModelInstance<'a> {
|
||||
@@ -88,6 +97,7 @@ impl<'a> GenerateModel for ModelInstance<'a> {
|
||||
match self {
|
||||
ModelInstance::MiniCPM4(model) => model.generate(mes),
|
||||
ModelInstance::Qwen2_5VL(model) => model.generate(mes),
|
||||
ModelInstance::Qwen3(model) => model.generate(mes),
|
||||
ModelInstance::Qwen3VL(model) => model.generate(mes),
|
||||
ModelInstance::DeepSeekOCR(model) => model.generate(mes),
|
||||
ModelInstance::HunyuanOCR(model) => model.generate(mes),
|
||||
@@ -95,6 +105,7 @@ impl<'a> GenerateModel for ModelInstance<'a> {
|
||||
ModelInstance::RMBG2_0(model) => model.generate(mes),
|
||||
ModelInstance::VoxCPM(model) => model.generate(mes),
|
||||
ModelInstance::GlmASRNano(model) => model.generate(mes),
|
||||
ModelInstance::FunASRNano(model) => model.generate(mes),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,6 +123,7 @@ impl<'a> GenerateModel for ModelInstance<'a> {
|
||||
match self {
|
||||
ModelInstance::MiniCPM4(model) => model.generate_stream(mes),
|
||||
ModelInstance::Qwen2_5VL(model) => model.generate_stream(mes),
|
||||
ModelInstance::Qwen3(model) => model.generate_stream(mes),
|
||||
ModelInstance::Qwen3VL(model) => model.generate_stream(mes),
|
||||
ModelInstance::DeepSeekOCR(model) => model.generate_stream(mes),
|
||||
ModelInstance::HunyuanOCR(model) => model.generate_stream(mes),
|
||||
@@ -119,6 +131,7 @@ impl<'a> GenerateModel for ModelInstance<'a> {
|
||||
ModelInstance::RMBG2_0(model) => model.generate_stream(mes),
|
||||
ModelInstance::VoxCPM(model) => model.generate_stream(mes),
|
||||
ModelInstance::GlmASRNano(model) => model.generate_stream(mes),
|
||||
ModelInstance::FunASRNano(model) => model.generate_stream(mes),
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -137,6 +150,10 @@ pub fn load_model(model_type: WhichModel, path: &str) -> Result<ModelInstance<'_
|
||||
let model = Qwen2_5VLGenerateModel::init(path, None, None)?;
|
||||
ModelInstance::Qwen2_5VL(model)
|
||||
}
|
||||
WhichModel::Qwen3_0_6B => {
|
||||
let model = Qwen3GenerateModel::init(path, None, None)?;
|
||||
ModelInstance::Qwen3(model)
|
||||
}
|
||||
WhichModel::Qwen3vl2B => {
|
||||
let model = Qwen3VLGenerateModel::init(path, None, None)?;
|
||||
ModelInstance::Qwen3VL(model)
|
||||
@@ -181,6 +198,10 @@ pub fn load_model(model_type: WhichModel, path: &str) -> Result<ModelInstance<'_
|
||||
let model = GlmAsrNanoGenerateModel::init(path, None, None)?;
|
||||
ModelInstance::GlmASRNano(model)
|
||||
}
|
||||
WhichModel::FunASRNano2512 => {
|
||||
let model = FunAsrNanoGenerateModel::init(path, None, None)?;
|
||||
ModelInstance::FunASRNano(model)
|
||||
}
|
||||
};
|
||||
Ok(model)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user