mirror of
https://github.com/katanemo/plano.git
synced 2026-04-29 10:56:35 +02:00
Handle null prefer in inline routing policy (#856)
* Handle null prefer in inline routing policy * Use serde defaulting for null selection preference * Add tests for default selection policy behavior in routing preferences
This commit is contained in:
parent
3dbda9741e
commit
f68c21f8df
2 changed files with 68 additions and 1 deletions
|
|
@ -1,5 +1,5 @@
|
|||
use hermesllm::apis::openai::{ModelDetail, ModelObject, Models};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use serde::{Deserialize, Deserializer, Serialize};
|
||||
use std::collections::HashMap;
|
||||
use std::fmt::Display;
|
||||
|
||||
|
|
@ -111,14 +111,25 @@ pub enum SelectionPreference {
|
|||
Fastest,
|
||||
/// Return models in the same order they were defined — no reordering.
|
||||
#[default]
|
||||
#[serde(alias = "")]
|
||||
None,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
|
||||
pub struct SelectionPolicy {
|
||||
#[serde(default, deserialize_with = "deserialize_selection_preference")]
|
||||
pub prefer: SelectionPreference,
|
||||
}
|
||||
|
||||
fn deserialize_selection_preference<'de, D>(
|
||||
deserializer: D,
|
||||
) -> Result<SelectionPreference, D::Error>
|
||||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
Ok(Option::<SelectionPreference>::deserialize(deserializer)?.unwrap_or_default())
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Serialize, Deserialize)]
|
||||
pub struct TopLevelRoutingPreference {
|
||||
pub name: String,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue