diff --git a/src/client.rs b/src/client.rs index abe7dff..122f0df 100644 --- a/src/client.rs +++ b/src/client.rs @@ -69,9 +69,13 @@ impl GeminiClient { match event { Ok(event) => { if let Event::Message(event) = event { - let response: GenerateContentResponse = - serde_json::from_str(&event.data).unwrap(); - cloned_queue.push(Some(response)); + let response: serde_json::error::Result = + serde_json::from_str(&event.data); + if let Ok(response) = response { + cloned_queue.push(Some(response)); + } else { + tracing::error!("Error parsing message: {}", event.data); + }; } } Err(e) => { diff --git a/src/types/generate_content.rs b/src/types/generate_content.rs index 67aea7c..40796c8 100644 --- a/src/types/generate_content.rs +++ b/src/types/generate_content.rs @@ -48,7 +48,7 @@ pub struct GenerationConfig { pub struct Candidate { pub content: Option, pub citation_metadata: Option, - pub safety_ratings: Vec, + pub safety_ratings: Option>, pub finish_reason: Option, }