use serde_derive::Deserialize;
use serde_derive::Serialize;
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ChatCompletionResponse {
pub id: String,
pub object: String,
pub created: i64,
pub choices: Vec<Choice>,
pub usage: Usage,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Choice {
pub index: i64,
pub message: Message,
#[serde(rename = "finish_reason")]
pub finish_reason: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Message {
pub role: String,
pub content: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Usage {
#[serde(rename = "prompt_tokens")]
pub prompt_tokens: i64,
#[serde(rename = "completion_tokens")]
pub completion_tokens: i64,
#[serde(rename = "total_tokens")]
pub total_tokens: i64,
}