vapi_client/models/
open_ai_message.rs1use crate::models;
2use serde::{Deserialize, Serialize};
3use serde_json::Value;
4
5#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
6pub struct OpenAiMessage {
7 #[serde(default)]
9 pub content: Option<String>,
10
11 pub role: Role,
12
13 #[serde(rename = "tool_calls", default)]
16 pub tool_calls: Option<Value>,
17}
18
19impl OpenAiMessage {
20 pub fn new(content: Option<String>, role: Role) -> Self {
21 Self { content, role, tool_calls: None }
22 }
23}
24
25#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
26pub enum Role {
27 #[serde(rename = "assistant")]
28 Assistant,
29 #[serde(rename = "function")]
30 Function,
31 #[serde(rename = "user")]
32 User,
33 #[serde(rename = "system")]
34 System,
35 #[serde(rename = "tool")]
36 Tool,
37}
38
39impl Default for Role {
40 fn default() -> Role {
41 Role::Assistant
42 }
43}