Skip to content

Commit bcefc1a

Browse files
author
Guantong
committed
Message Role enum
1 parent 6f93345 commit bcefc1a

File tree

6 files changed

+29
-33
lines changed

6 files changed

+29
-33
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,7 @@ fn main() {
6363
frequency_penalty: None,
6464
logit_bias: None,
6565
user: None,
66-
messages: vec![Message {
67-
role: "user".to_string(),
68-
content: "Hello!".to_string(),
69-
}],
66+
messages: vec![Message { role: Role::User, content: "Hello!".to_string() }],
7067
};
7168
let rs = openai.chat_completion_create(&body);
7269
let choice = rs.unwrap().choices;

src/apis/chat.rs

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@ use crate::requests::Requests;
99
use crate::*;
1010
use serde::{Deserialize, Serialize};
1111

12-
use super::{
13-
completions::{Completion, Message},
14-
CHAT_COMPLETION_CREATE,
15-
};
12+
use super::{completions::Completion, CHAT_COMPLETION_CREATE};
1613

1714
#[derive(Debug, Serialize, Deserialize)]
1815
pub struct ChatBody {
@@ -98,10 +95,7 @@ impl ChatApi for OpenAI {
9895

9996
#[cfg(test)]
10097
mod tests {
101-
use crate::{
102-
apis::{chat::ChatBody, completions::Message},
103-
openai::new_test_openai,
104-
};
98+
use crate::{apis::chat::ChatBody, openai::new_test_openai, Message, Role};
10599

106100
use super::ChatApi;
107101

@@ -120,10 +114,7 @@ mod tests {
120114
frequency_penalty: None,
121115
logit_bias: None,
122116
user: None,
123-
messages: vec![Message {
124-
role: "user".to_string(),
125-
content: "Hello!".to_string(),
126-
}],
117+
messages: vec![Message { role: Role::User, content: "Hello!".to_string() }],
127118
};
128119
let rs = openai.chat_completion_create(&body);
129120
let choice = rs.unwrap().choices;

src/apis/completions.rs

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -126,21 +126,6 @@ pub struct CompletionsBody {
126126
pub user: Option<String>,
127127
}
128128

129-
#[derive(Debug, Serialize, Deserialize)]
130-
pub struct Choice {
131-
pub text: Option<String>,
132-
pub index: u32,
133-
pub logprobs: Option<String>,
134-
pub finish_reason: Option<String>,
135-
pub message: Option<Message>,
136-
}
137-
138-
#[derive(Debug, Serialize, Deserialize)]
139-
pub struct Message {
140-
pub role: String,
141-
pub content: String,
142-
}
143-
144129
pub trait CompletionsApi {
145130
/// Creates a completion for the provided prompt and parameters
146131
fn completion_create(&self, completions_body: &CompletionsBody) -> ApiResult<Completion>;

src/apis/mod.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,26 @@ pub struct Usage {
3333
pub completion_tokens: Option<u32>,
3434
pub total_tokens: Option<u32>,
3535
}
36+
37+
#[derive(Debug, Serialize, Deserialize)]
38+
pub struct Choice {
39+
pub text: Option<String>,
40+
pub index: u32,
41+
pub logprobs: Option<String>,
42+
pub finish_reason: Option<String>,
43+
pub message: Option<Message>,
44+
}
45+
46+
#[derive(Debug, Serialize, Deserialize)]
47+
pub struct Message {
48+
pub role: Role,
49+
pub content: String,
50+
}
51+
52+
#[derive(Debug, Serialize, Deserialize)]
53+
#[serde(rename_all = "lowercase")]
54+
pub enum Role {
55+
System,
56+
Assistant,
57+
User,
58+
}

src/openai.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ impl OpenAI {
5858
_ => {
5959
log::warn!("Missing http_proxy or https_proxy");
6060
None
61-
}
61+
},
6262
};
6363
if let Some(proxy) = proxy {
6464
let proxy = ureq::Proxy::new(&proxy).unwrap();

0 commit comments

Comments
 (0)