#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct ChatCompletionRequestMessage {
#[serde(rename = "role")]
pub role: Role,
#[serde(rename = "content")]
pub content: String,
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
impl ChatCompletionRequestMessage {
pub fn new(role: Role, content: String) -> ChatCompletionRequestMessage {
ChatCompletionRequestMessage {
role,
content,
name: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Role {
#[serde(rename = "system")]
System,
#[serde(rename = "user")]
User,
#[serde(rename = "assistant")]
Assistant,
}
impl Default for Role {
fn default() -> Role {
Self::System
}
}