open_ai: Make Assistant message content optional (#31418)
Fixes regression caused by: https://github.com/zed-industries/zed/pull/30639 Assistant messages can come back with no content, and we no longer allowed that in the deserialization. Release Notes: - open_ai: fixed deserialization issue if assistant content was empty
This commit is contained in:
parent
c73af0a52f
commit
ef0e1cb2ba
2 changed files with 17 additions and 10 deletions
|
@ -278,7 +278,7 @@ pub struct FunctionDefinition {
|
|||
#[serde(tag = "role", rename_all = "lowercase")]
|
||||
pub enum RequestMessage {
|
||||
Assistant {
|
||||
content: MessageContent,
|
||||
content: Option<MessageContent>,
|
||||
#[serde(default, skip_serializing_if = "Vec::is_empty")]
|
||||
tool_calls: Vec<ToolCall>,
|
||||
},
|
||||
|
@ -562,16 +562,16 @@ fn adapt_response_to_stream(response: Response) -> ResponseStreamEvent {
|
|||
.into_iter()
|
||||
.map(|choice| {
|
||||
let content = match &choice.message {
|
||||
RequestMessage::Assistant { content, .. } => content,
|
||||
RequestMessage::User { content } => content,
|
||||
RequestMessage::System { content } => content,
|
||||
RequestMessage::Tool { content, .. } => content,
|
||||
RequestMessage::Assistant { content, .. } => content.as_ref(),
|
||||
RequestMessage::User { content } => Some(content),
|
||||
RequestMessage::System { content } => Some(content),
|
||||
RequestMessage::Tool { content, .. } => Some(content),
|
||||
};
|
||||
|
||||
let mut text_content = String::new();
|
||||
match content {
|
||||
MessageContent::Plain(text) => text_content.push_str(&text),
|
||||
MessageContent::Multipart(parts) => {
|
||||
Some(MessageContent::Plain(text)) => text_content.push_str(&text),
|
||||
Some(MessageContent::Multipart(parts)) => {
|
||||
for part in parts {
|
||||
match part {
|
||||
MessagePart::Text { text } => text_content.push_str(&text),
|
||||
|
@ -579,6 +579,7 @@ fn adapt_response_to_stream(response: Response) -> ResponseStreamEvent {
|
|||
}
|
||||
}
|
||||
}
|
||||
None => {}
|
||||
};
|
||||
|
||||
ChoiceDelta {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue