@@ -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) ]
4848pub 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 ) ]
5656pub 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 ) ]
6777pub 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 ) ]
140149pub struct FunctionCall {
141150 #[ serde( skip_serializing_if = "Option::is_none" ) ]
142151 pub name : Option < String > ,
0 commit comments