use std::collections::HashMap;
use async_openai::types::chat::ChatCompletionRequestMessage;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Deserialize)]
pub struct RoutingExplainResult {
pub would_select: Option<HashMap<String, String>>,
pub firewall_decision: String,
pub reasoning: Option<String>,
pub routing_rule_id: Option<String>,
}
#[derive(Debug, Clone, Serialize)]
pub struct RoutingExplainParams {
pub model: String,
pub messages: Vec<ChatCompletionRequestMessage>,
#[serde(skip_serializing_if = "Option::is_none")]
pub temperature: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_tokens: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub top_p: Option<f64>,
}
impl RoutingExplainParams {
#[must_use]
pub fn new(model: impl Into<String>, messages: Vec<ChatCompletionRequestMessage>) -> Self {
Self {
model: model.into(),
messages,
temperature: None,
max_tokens: None,
top_p: None,
}
}
}