open_ai: Log inputs that caused parsing errors (#36063)

Oleksiy Syvokon and Michael Sloan created

Release Notes:

- N/A

Co-authored-by: Michael Sloan <mgsloan@gmail.com>

Change summary

Cargo.lock                    |  1 +
crates/open_ai/Cargo.toml     |  1 +
crates/open_ai/src/open_ai.rs | 10 +++++++++-
3 files changed, 11 insertions(+), 1 deletion(-)

Detailed changes

Cargo.lock 🔗

@@ -11242,6 +11242,7 @@ dependencies = [
  "anyhow",
  "futures 0.3.31",
  "http_client",
+ "log",
  "schemars",
  "serde",
  "serde_json",

crates/open_ai/Cargo.toml 🔗

@@ -20,6 +20,7 @@ anyhow.workspace = true
 futures.workspace = true
 http_client.workspace = true
 schemars = { workspace = true, optional = true }
+log.workspace = true
 serde.workspace = true
 serde_json.workspace = true
 strum.workspace = true

crates/open_ai/src/open_ai.rs 🔗

@@ -445,7 +445,15 @@ pub async fn stream_completion(
                                 Ok(ResponseStreamResult::Err { error }) => {
                                     Some(Err(anyhow!(error)))
                                 }
-                                Err(error) => Some(Err(anyhow!(error))),
+                                Err(error) => {
+                                    log::error!(
+                                        "Failed to parse OpenAI response into ResponseStreamResult: `{}`\n\
+                                        Response: `{}`",
+                                        error,
+                                        line,
+                                    );
+                                    Some(Err(anyhow!(error)))
+                                }
                             }
                         }
                     }