ai_lib/types/
common.rs

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}