Skip to content

Commit 786335b

Browse files
author
Dongri Jin
authored
Merge pull request #17 from dongri/fix-required
Fix required
2 parents 8280733 + 5ee3321 commit 786335b

File tree

8 files changed

+31
-21
lines changed

8 files changed

+31
-21
lines changed

examples/chat_completion.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
99
model: chat_completion::GPT4.to_string(),
1010
messages: vec![chat_completion::ChatCompletionMessage {
1111
role: chat_completion::MessageRole::user,
12-
content: Some(String::from("What is Bitcoin?")),
12+
content: String::from("What is Bitcoin?"),
1313
name: None,
1414
function_call: None,
1515
}],

examples/completion.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
77
let client = Client::new(env::var("OPENAI_API_KEY").unwrap().to_string());
88
let req = CompletionRequest {
99
model: completion::GPT3_TEXT_DAVINCI_003.to_string(),
10-
prompt: Some(String::from("What is Bitcoin?")),
10+
prompt: String::from("What is Bitcoin?"),
1111
suffix: None,
1212
max_tokens: Some(3000),
1313
temperature: Some(0.9),

examples/function_call.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,18 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
3434
model: chat_completion::GPT3_5_TURBO_0613.to_string(),
3535
messages: vec![chat_completion::ChatCompletionMessage {
3636
role: chat_completion::MessageRole::user,
37-
content: Some(String::from("What is the price of Ethereum?")),
37+
content: String::from("What is the price of Ethereum?"),
3838
name: None,
3939
function_call: None,
4040
}],
4141
functions: Some(vec![chat_completion::Function {
4242
name: String::from("get_coin_price"),
4343
description: Some(String::from("Get the price of a cryptocurrency")),
44-
parameters: Some(chat_completion::FunctionParameters {
44+
parameters: chat_completion::FunctionParameters {
4545
schema_type: chat_completion::JSONSchemaType::Object,
4646
properties: Some(properties),
4747
required: Some(vec![String::from("coin")]),
48-
}),
48+
},
4949
}]),
5050
function_call: Some("auto".to_string()),
5151
temperature: None,

examples/function_call_role.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,18 +34,18 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
3434
model: chat_completion::GPT3_5_TURBO_0613.to_string(),
3535
messages: vec![chat_completion::ChatCompletionMessage {
3636
role: chat_completion::MessageRole::user,
37-
content: Some(String::from("What is the price of Ethereum?")),
37+
content: String::from("What is the price of Ethereum?"),
3838
name: None,
3939
function_call: None,
4040
}],
4141
functions: Some(vec![chat_completion::Function {
4242
name: String::from("get_coin_price"),
4343
description: Some(String::from("Get the price of a cryptocurrency")),
44-
parameters: Some(chat_completion::FunctionParameters {
44+
parameters: chat_completion::FunctionParameters {
4545
schema_type: chat_completion::JSONSchemaType::Object,
4646
properties: Some(properties),
4747
required: Some(vec![String::from("coin")]),
48-
}),
48+
},
4949
}]),
5050
function_call: None,
5151
temperature: None,
@@ -86,16 +86,16 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
8686
messages: vec![
8787
chat_completion::ChatCompletionMessage {
8888
role: chat_completion::MessageRole::user,
89-
content: Some(String::from("What is the price of Ethereum?")),
89+
content: String::from("What is the price of Ethereum?"),
9090
name: None,
9191
function_call: None,
9292
},
9393
chat_completion::ChatCompletionMessage {
9494
role: chat_completion::MessageRole::function,
95-
content: Some({
95+
content: {
9696
let price = get_coin_price(&coin).await;
9797
format!("{{\"price\": {}}}", price)
98-
}),
98+
},
9999
name: Some(String::from("get_coin_price")),
100100
function_call: None,
101101
},

src/v1/audio.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ pub const WHISPER_1: &str = "whisper-1";
44

55
#[derive(Debug, Serialize)]
66
pub struct AudioTranscriptionRequest {
7-
pub model: String,
87
pub file: String,
8+
pub model: String,
99
#[serde(skip_serializing_if = "Option::is_none")]
1010
pub prompt: Option<String>,
1111
#[serde(skip_serializing_if = "Option::is_none")]
@@ -23,8 +23,8 @@ pub struct AudioTranscriptionResponse {
2323

2424
#[derive(Debug, Serialize)]
2525
pub struct AudioTranslationRequest {
26-
pub model: String,
2726
pub file: String,
27+
pub model: String,
2828
#[serde(skip_serializing_if = "Option::is_none")]
2929
pub prompt: Option<String>,
3030
#[serde(skip_serializing_if = "Option::is_none")]

src/v1/chat_completion.rs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ pub struct ChatCompletionRequest {
4343
pub user: Option<String>,
4444
}
4545

46-
#[derive(Debug, Serialize, Deserialize)]
46+
#[derive(Debug, Serialize, Deserialize, Clone)]
4747
#[allow(non_camel_case_types)]
4848
pub enum MessageRole {
4949
user,
@@ -52,8 +52,18 @@ pub enum MessageRole {
5252
function,
5353
}
5454

55-
#[derive(Debug, Serialize, Deserialize)]
55+
#[derive(Debug, Serialize, Deserialize, Clone)]
5656
pub struct ChatCompletionMessage {
57+
pub role: MessageRole,
58+
pub content: String,
59+
#[serde(skip_serializing_if = "Option::is_none")]
60+
pub name: Option<String>,
61+
#[serde(skip_serializing_if = "Option::is_none")]
62+
pub function_call: Option<FunctionCall>,
63+
}
64+
65+
#[derive(Debug, Serialize, Deserialize)]
66+
pub struct ChatCompletionMessageForResponse {
5767
pub role: MessageRole,
5868
#[serde(skip_serializing_if = "Option::is_none")]
5969
pub content: Option<String>,
@@ -66,7 +76,7 @@ pub struct ChatCompletionMessage {
6676
#[derive(Debug, Deserialize)]
6777
pub struct ChatCompletionChoice {
6878
pub index: i64,
69-
pub message: ChatCompletionMessage,
79+
pub message: ChatCompletionMessageForResponse,
7080
pub finish_reason: FinishReason,
7181
}
7282

@@ -85,8 +95,7 @@ pub struct Function {
8595
pub name: String,
8696
#[serde(skip_serializing_if = "Option::is_none")]
8797
pub description: Option<String>,
88-
#[serde(skip_serializing_if = "Option::is_none")]
89-
pub parameters: Option<FunctionParameters>,
98+
pub parameters: FunctionParameters,
9099
}
91100

92101
#[derive(Debug, Serialize, Deserialize)]
@@ -136,7 +145,7 @@ pub enum FinishReason {
136145
null,
137146
}
138147

139-
#[derive(Debug, Serialize, Deserialize)]
148+
#[derive(Debug, Serialize, Deserialize, Clone)]
140149
pub struct FunctionCall {
141150
#[serde(skip_serializing_if = "Option::is_none")]
142151
pub name: Option<String>,

src/v1/completion.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,7 @@ pub const GPT3_BABBAGE: &str = "babbage";
2020
#[derive(Debug, Serialize)]
2121
pub struct CompletionRequest {
2222
pub model: String,
23-
#[serde(skip_serializing_if = "Option::is_none")]
24-
pub prompt: Option<String>,
23+
pub prompt: String,
2524
#[serde(skip_serializing_if = "Option::is_none")]
2625
pub suffix: Option<String>,
2726
#[serde(skip_serializing_if = "Option::is_none")]

src/v1/moderation.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ use serde::{Deserialize, Serialize};
33
#[derive(Debug, Serialize)]
44
pub struct CreateModerationRequest {
55
pub input: String,
6+
#[serde(skip_serializing_if = "Option::is_none")]
7+
pub model: Option<String>,
68
}
79

810
#[derive(Debug, Deserialize)]

0 commit comments

Comments
 (0)