Adds error logging when failing o parse response

This commit is contained in:
2024-10-06 08:18:05 +01:00
parent eb36c49493
commit e6de1d1ce7
3 changed files with 17 additions and 2 deletions

View File

@@ -3,6 +3,7 @@ use std::sync::Arc;
use deadqueue::unlimited::Queue;
use futures_util::stream::StreamExt;
use reqwest_eventsource::{Event, EventSource};
use tracing::error;
use crate::dialogue::{Message, Role};
use crate::error::{Error, Result};
@@ -274,6 +275,13 @@ impl<T: TokenProvider + Clone> GeminiClient<T> {
.await?;
let txt_json = resp.text().await?;
Ok(serde_json::from_str(&txt_json)?)
match serde_json::from_str::<PredictImageResponse>(&txt_json) {
Ok(response) => return Ok(response),
Err(e) => {
error!(response = txt_json, error = ?e, "Failed to parse response");
return Err(e.into());
}
}
}
}

View File

@@ -70,6 +70,7 @@ pub struct PredictImageRequestParameters {
/// - "watercolor"
/// - "cyberpunk"
/// - "pop_art"
/// Pre-defined styles is only supported for model imagegeneration@002
#[serde(skip_serializing_if = "Option::is_none")]
pub sample_image_style: Option<String>,