summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2023-11-06 19:37:45 +0800
committerGitHub <noreply@github.com>2023-11-06 19:37:45 +0800
commit399ed3337f1c4edaab39a534b63cc9d00c09dd07 (patch)
tree9dd044c5a91d14854e732212f2f8b1dc43efd666 /src
parent5dabe723ed67cb3db18f897cbf42d107255c8edb (diff)
downloadaichat-399ed3337f1c4edaab39a534b63cc9d00c09dd07.tar.gz
refactor: improve error message for PaLM client (#213)
Diffstat (limited to 'src')
-rw-r--r--src/client/palm.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/client/palm.rs b/src/client/palm.rs
index 87b60d1..c59b269 100644
--- a/src/client/palm.rs
+++ b/src/client/palm.rs
@@ -86,7 +86,13 @@ async fn send_message(builder: RequestBuilder) -> Result<String> {
let output = data["candidates"][0]["content"]
.as_str()
- .ok_or_else(|| anyhow!("Unexpected response {data}"))?;
+ .ok_or_else(|| {
+ if let Some(reason) = data["filters"][0]["reason"].as_str() {
+ anyhow!("Content Filtering: {reason}")
+ } else {
+ anyhow!("Unexpected response")
+ }
+ })?;
Ok(output.to_string())
}
@@ -96,7 +102,7 @@ fn check_error(data: &Value) -> Result<()> {
if let Some(message) = error["message"].as_str() {
bail!("{message}");
} else {
- bail!("Request failed. {}", data);
+ bail!("Error {}", Value::Object(error.clone()));
}
}
Ok(())