diff --git a/examples/function_call_role.rs b/examples/function_call_role.rs index df4ff13..2df42ce 100644 --- a/examples/function_call_role.rs +++ b/examples/function_call_role.rs @@ -92,10 +92,10 @@ async fn main() -> Result<(), Box> { }, chat_completion::ChatCompletionMessage { role: chat_completion::MessageRole::function, - content: ({ + content: { let price = get_coin_price(&coin).await; format!("{{\"price\": {}}}", price) - }), + }, name: Some(String::from("get_coin_price")), function_call: None, }, diff --git a/src/v1/chat_completion.rs b/src/v1/chat_completion.rs index 690f3f3..6de6381 100644 --- a/src/v1/chat_completion.rs +++ b/src/v1/chat_completion.rs @@ -62,10 +62,21 @@ pub struct ChatCompletionMessage { pub function_call: Option, } +#[derive(Debug, Serialize, Deserialize)] +pub struct ChatCompletionMessageForResponse { + pub role: MessageRole, + #[serde(skip_serializing_if = "Option::is_none")] + pub content: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub name: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub function_call: Option, +} + #[derive(Debug, Deserialize)] pub struct ChatCompletionChoice { pub index: i64, - pub message: ChatCompletionMessage, + pub message: ChatCompletionMessageForResponse, pub finish_reason: FinishReason, }