use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogprobCandidate {
pub token: String,
pub token_id: i32,
pub log_probability: f64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TopCandidates {
#[serde(default)]
pub candidates: Vec<LogprobCandidate>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogprobsResult {
#[serde(default)]
pub top_candidates: Vec<TopCandidates>,
#[serde(default)]
pub chosen_candidates: Vec<LogprobCandidate>,
#[serde(skip_serializing_if = "Option::is_none")]
pub log_probability_sum: Option<f64>,
}
pub type LogprobsResultCandidate = LogprobCandidate;
pub type LogprobsResultTopCandidates = TopCandidates;