Output is pure text.

This commit is contained in:
Nicolas Patry 2024-05-16 14:43:03 +02:00
parent 31865be72f
commit 74eb16cb00

View File

@ -535,10 +535,9 @@ impl ChatCompletion {
tool_calls: Option<Vec<ToolCall>>, tool_calls: Option<Vec<ToolCall>>,
) -> Self { ) -> Self {
let message = match (output, tool_calls) { let message = match (output, tool_calls) {
(Some(output), None) => OutputMessage::ChatMessage(Message { (Some(content), None) => OutputMessage::ChatMessage(TextMessage {
role: "assistant".into(), role: "assistant".into(),
content: vec![MessageChunk::Text(Text { text: output })], content,
name: None,
}), }),
(None, Some(tool_calls)) => OutputMessage::ToolCall(ToolCallMessage { (None, Some(tool_calls)) => OutputMessage::ToolCall(ToolCallMessage {
role: "assistant".to_string(), role: "assistant".to_string(),
@ -546,18 +545,16 @@ impl ChatCompletion {
}), }),
(Some(output), Some(_)) => { (Some(output), Some(_)) => {
warn!("Received both chat and tool call"); warn!("Received both chat and tool call");
OutputMessage::ChatMessage(Message { OutputMessage::ChatMessage(TextMessage {
role: "assistant".into(), role: "assistant".into(),
content: vec![MessageChunk::Text(Text { text: output })], content: output,
name: None,
}) })
} }
(None, None) => { (None, None) => {
warn!("Didn't receive an answer"); warn!("Didn't receive an answer");
OutputMessage::ChatMessage(Message { OutputMessage::ChatMessage(TextMessage {
role: "assistant".into(), role: "assistant".into(),
content: vec![], content: "".to_string(),
name: None,
}) })
} }
}; };
@ -1004,7 +1001,7 @@ pub struct ToolCallMessage {
#[derive(Clone, Deserialize, ToSchema, Serialize, Debug, PartialEq)] #[derive(Clone, Deserialize, ToSchema, Serialize, Debug, PartialEq)]
#[serde(untagged)] #[serde(untagged)]
pub(crate) enum OutputMessage { pub(crate) enum OutputMessage {
ChatMessage(Message), ChatMessage(TextMessage),
ToolCall(ToolCallMessage), ToolCall(ToolCallMessage),
} }