Skip to content

Commit 1e3b3f2

Browse files
committed
modified logic
1 parent fcd1c06 commit 1e3b3f2

File tree

5 files changed

+38
-14
lines changed

5 files changed

+38
-14
lines changed

lib/llm/src/local_model.rs

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ use crate::entrypoint::RouterConfig;
1414
use crate::mocker::protocols::MockEngineArgs;
1515
use crate::model_card::{self, ModelDeploymentCard};
1616
use crate::model_type::{ModelInput, ModelType};
17+
#[cfg(feature = "media-loading")]
1718
use crate::preprocessor::media::MediaDecoder;
1819
use crate::request_template::RequestTemplate;
1920

@@ -53,6 +54,7 @@ pub struct LocalModelBuilder {
5354
namespace: Option<String>,
5455
custom_backend_metrics_endpoint: Option<String>,
5556
custom_backend_metrics_polling_interval: Option<f64>,
57+
#[cfg(feature = "media-loading")]
5658
media_decoder: Option<MediaDecoder>,
5759
}
5860

@@ -79,6 +81,7 @@ impl Default for LocalModelBuilder {
7981
namespace: Default::default(),
8082
custom_backend_metrics_endpoint: Default::default(),
8183
custom_backend_metrics_polling_interval: Default::default(),
84+
#[cfg(feature = "media-loading")]
8285
media_decoder: Default::default(),
8386
}
8487
}
@@ -187,6 +190,7 @@ impl LocalModelBuilder {
187190
self
188191
}
189192

193+
#[cfg(feature = "media-loading")]
190194
pub fn media_decoder(&mut self, media_decoder: Option<MediaDecoder>) -> &mut Self {
191195
self.media_decoder = media_decoder;
192196
self
@@ -238,8 +242,11 @@ impl LocalModelBuilder {
238242
card.migration_limit = self.migration_limit;
239243
card.user_data = self.user_data.take();
240244
card.runtime_config = self.runtime_config.clone();
241-
//card.media_decoder = self.media_decoder.clone();
242-
card.media_decoder = Some(MediaDecoder::default());
245+
#[cfg(feature = "media-loading")]
246+
{
247+
//card.media_decoder = self.media_decoder.clone();
248+
card.media_decoder = Some(MediaDecoder::default());
249+
}
243250

244251
return Ok(LocalModel {
245252
card,
@@ -290,7 +297,10 @@ impl LocalModelBuilder {
290297
card.migration_limit = self.migration_limit;
291298
card.user_data = self.user_data.take();
292299
card.runtime_config = self.runtime_config.clone();
293-
card.media_decoder = Some(MediaDecoder::default());
300+
#[cfg(feature = "media-loading")]
301+
{
302+
card.media_decoder = Some(MediaDecoder::default());
303+
}
294304

295305
Ok(LocalModel {
296306
card,

lib/llm/src/model_card.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ use dynamo_runtime::{slug::Slug, storage::key_value_store::Versioned};
2525
use serde::{Deserialize, Serialize};
2626
use tokenizers::Tokenizer as HfTokenizer;
2727

28+
#[cfg(feature = "media-loading")]
2829
use crate::preprocessor::media::MediaDecoder;
2930
use crate::protocols::TokenIdType;
3031

@@ -219,6 +220,7 @@ pub struct ModelDeploymentCard {
219220
pub runtime_config: ModelRuntimeConfig,
220221

221222
/// Media decoding configuration
223+
#[cfg(feature = "media-loading")]
222224
#[serde(default)]
223225
pub media_decoder: Option<MediaDecoder>,
224226

@@ -525,6 +527,7 @@ impl ModelDeploymentCard {
525527
model_input: Default::default(), // set later
526528
user_data: None,
527529
runtime_config: ModelRuntimeConfig::default(),
530+
#[cfg(feature = "media-loading")]
528531
media_decoder: None,
529532
checksum: OnceLock::new(),
530533
})

lib/llm/src/preprocessor.rs

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ use std::{collections::HashMap, pin::Pin, sync::Arc};
2727
use tracing;
2828

2929
use crate::model_card::{ModelDeploymentCard, ModelInfo};
30+
#[cfg(feature = "media-loading")]
3031
use crate::preprocessor::media::{MediaDecoder, MediaLoader};
3132
use crate::preprocessor::prompt::OAIChatLikeRequest;
3233
use crate::protocols::common::preprocessor::{
@@ -115,6 +116,7 @@ pub struct OpenAIPreprocessor {
115116
/// Per-model runtime configuration propagated to response generator (e.g., reasoning/tool parser)
116117
runtime_config: crate::local_model::runtime_config::ModelRuntimeConfig,
117118
tool_call_parser: Option<String>,
119+
#[cfg(feature = "media-loading")]
118120
media_loader: Option<MediaLoader>,
119121
}
120122

@@ -154,19 +156,14 @@ impl OpenAIPreprocessor {
154156
}
155157
};
156158

157-
#[cfg(not(feature = "media-loading"))]
158-
let media_loader = {
159-
let _ = mdc; // silence unused warning when feature disabled
160-
None
161-
};
162-
163159
Ok(Arc::new(Self {
164160
formatter,
165161
tokenizer,
166162
model_info,
167163
mdcsum,
168164
runtime_config,
169165
tool_call_parser,
166+
#[cfg(feature = "media-loading")]
170167
media_loader,
171168
}))
172169
}
@@ -329,10 +326,18 @@ impl OpenAIPreprocessor {
329326

330327
let map_item = media_map.entry(type_str.clone()).or_default();
331328

332-
if let Some(loader) = &self.media_loader {
333-
let rdma_descriptor = loader.fetch_and_decode_media_part(content_part).await?;
334-
map_item.push(MultimodalData::Decoded(rdma_descriptor));
335-
} else {
329+
#[cfg(feature = "media-loading")]
330+
{
331+
if let Some(loader) = &self.media_loader {
332+
let rdma_descriptor = loader.fetch_and_decode_media_part(content_part).await?;
333+
map_item.push(MultimodalData::Decoded(rdma_descriptor));
334+
} else {
335+
map_item.push(MultimodalData::Url(url));
336+
}
337+
}
338+
#[cfg(not(feature = "media-loading"))]
339+
{
340+
let _ = content_part; // silence unused
336341
map_item.push(MultimodalData::Url(url));
337342
}
338343
}

lib/llm/src/preprocessor/media/mod.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,12 @@ mod common;
66
mod decoders;
77
mod loader;
88
mod rdma;
9-
9+
#[cfg(feature = "media-loading")]
1010
pub use common::EncodedMediaData;
11+
#[cfg(feature = "media-loading")]
1112
pub use decoders::{Decoder, ImageDecoder, MediaDecoder, VideoDecoder};
13+
#[cfg(feature = "media-loading")]
1214
pub use loader::MediaLoader;
15+
#[cfg(feature = "media-loading")]
1316
pub use rdma::{DecodedMediaData, RdmaMediaDataDescriptor};
17+

lib/llm/src/protocols/common/preprocessor.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ use serde::{Deserialize, Serialize};
66

77
use super::{OutputOptions, SamplingOptions, StopConditions};
88
use crate::kv_router::RouterConfigOverride;
9+
#[cfg(feature = "media-loading")]
910
use crate::preprocessor::media::RdmaMediaDataDescriptor;
1011
use crate::protocols::TokenIdType;
1112

1213
#[derive(Serialize, Deserialize, Debug, Clone)]
1314
#[serde(untagged)]
1415
pub enum MultimodalData {
1516
Url(url::Url),
17+
#[cfg(feature = "media-loading")]
1618
Decoded(RdmaMediaDataDescriptor),
1719
}
1820

0 commit comments

Comments
 (0)