1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4pub struct Message {
5 pub role: Role,
6 pub content: String,
7}
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
10pub enum Role {
11 #[serde(rename = "system")]
12 System,
13 #[serde(rename = "user")]
14 User,
15 #[serde(rename = "assistant")]
16 Assistant,
17}
18
19#[derive(Debug, Clone, Serialize, Deserialize)]
20pub struct Choice {
21 pub index: u32,
22 pub message: Message,
23 pub finish_reason: Option<String>,
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
27pub struct Usage {
28 pub prompt_tokens: u32,
29 pub completion_tokens: u32,
30 pub total_tokens: u32,
31}