use serde::{Deserialize, Serialize}; use std::option::Option; use crate::impl_builder_methods; #[derive(Debug, Deserialize)] pub struct EmbeddingData { pub object: String, pub embedding: Vec, pub index: i32, } #[derive(Debug, Serialize, Clone)] pub struct EmbeddingRequest { pub model: String, pub input: String, #[serde(skip_serializing_if = "Option::is_none")] pub user: Option, } impl EmbeddingRequest { pub fn new(model: String, input: String) -> Self { Self { model, input, user: None, } } } impl_builder_methods!( EmbeddingRequest, user: String ); #[derive(Debug, Deserialize)] pub struct EmbeddingResponse { pub object: String, pub data: Vec, pub model: String, pub usage: Usage, } #[derive(Debug, Deserialize)] pub struct Usage { pub prompt_tokens: i32, pub total_tokens: i32, }