use serde::{Deserialize, Serialize};
#[derive(Serialize, Debug, Clone)]
pub struct EmbeddingsArguments {
pub model: String,
pub input: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
}
impl EmbeddingsArguments {
pub fn new(model: impl AsRef<str>, input: String) -> EmbeddingsArguments {
EmbeddingsArguments {
model: model.as_ref().to_owned(),
input,
user: None,
}
}
}
#[derive(Deserialize, Debug, Clone)]
pub struct EmbeddingsResponse {
pub data: Vec<EmbeddingsData>,
pub model: String,
pub usage: Usage,
}
#[derive(Deserialize, Debug, Clone)]
pub struct EmbeddingsData {
pub embedding: Vec<f32>,
pub index: usize,
}
#[derive(Deserialize, Debug, Clone)]
pub struct Usage {
pub prompt_tokens: u32,
pub total_tokens: u32,
}