diff --git a/src/transformer_backends/anthropic.rs b/src/transformer_backends/anthropic.rs index 5406e44..58f9ffb 100644 --- a/src/transformer_backends/anthropic.rs +++ b/src/transformer_backends/anthropic.rs @@ -1,3 +1,5 @@ +use std::collections::HashMap; + use anyhow::Context; use serde::Deserialize; use serde_json::{json, Value}; @@ -52,6 +54,9 @@ struct AnthropicChatMessage { struct AnthropicChatResponse { content: Option>, error: Option, + #[serde(default)] + #[serde(flatten)] + pub other: HashMap, } impl Anthropic { @@ -103,7 +108,10 @@ impl Anthropic { } else if let Some(mut content) = res.content { Ok(std::mem::take(&mut content[0].text)) } else { - anyhow::bail!("Uknown error while making request to OpenAI") + anyhow::bail!( + "Uknown error while making request to Anthropic: {:?}", + res.other + ) } } diff --git a/src/transformer_backends/mistral_fim.rs b/src/transformer_backends/mistral_fim.rs index bddc906..93f5c72 100644 --- a/src/transformer_backends/mistral_fim.rs +++ b/src/transformer_backends/mistral_fim.rs @@ -97,7 +97,10 @@ impl MistralFIM { } else if let Some(choices) = res.choices { Ok(choices[0].message.content.clone()) } else { - anyhow::bail!("Unknown error while making request to OpenAI") + anyhow::bail!( + "Unknown error while making request to MistralFIM: {:?}", + res.other + ); } } } diff --git a/src/transformer_backends/open_ai/mod.rs b/src/transformer_backends/open_ai/mod.rs index 53d1d52..405f36b 100644 --- a/src/transformer_backends/open_ai/mod.rs +++ b/src/transformer_backends/open_ai/mod.rs @@ -1,3 +1,5 @@ +use std::collections::HashMap; + use anyhow::Context; use serde::Deserialize; use serde_json::{json, Value}; @@ -64,6 +66,9 @@ struct OpenAICompletionsChoice { struct OpenAICompletionsResponse { choices: Option>, error: Option, + #[serde(default)] + #[serde(flatten)] + pub other: HashMap, } #[derive(Deserialize)] @@ -75,6 +80,9 @@ pub struct OpenAIChatChoices { pub struct OpenAIChatResponse { pub choices: Option>, pub error: Option, + #[serde(default)] + #[serde(flatten)] + pub other: HashMap, } impl OpenAI { @@ -130,7 +138,10 @@ impl OpenAI { } else if let Some(mut choices) = res.choices { Ok(std::mem::take(&mut choices[0].text)) } else { - anyhow::bail!("Uknown error while making request to OpenAI") + anyhow::bail!( + "Uknown error while making request to OpenAI: {:?}", + res.other + ) } } @@ -170,7 +181,10 @@ impl OpenAI { } else if let Some(choices) = res.choices { Ok(choices[0].message.content.clone()) } else { - anyhow::bail!("Unknown error while making request to OpenAI") + anyhow::bail!( + "Unknown error while making request to OpenAI: {:?}", + res.other + ) } }