Skip to content

Commit

Permalink
chore: Change no usage found warning to a debug trace (#1192)
Browse files Browse the repository at this point in the history
  • Loading branch information
ahau-square authored Feb 11, 2025
1 parent d56a92e commit 1af6784
Show file tree
Hide file tree
Showing 9 changed files with 26 additions and 24 deletions.
2 changes: 1 addition & 1 deletion crates/goose/src/providers/azure.rs
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ impl Provider for AzureProvider {
let usage = match get_usage(&response) {
Ok(usage) => usage,
Err(ProviderError::UsageError(e)) => {
tracing::warn!("Failed to get usage data: {}", e);
tracing::debug!("Failed to get usage data: {}", e);
Usage::default()
}
Err(e) => return Err(e),
Expand Down
2 changes: 1 addition & 1 deletion crates/goose/src/providers/databricks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ impl Provider for DatabricksProvider {
let usage = match get_usage(&response) {
Ok(usage) => usage,
Err(ProviderError::UsageError(e)) => {
tracing::warn!("Failed to get usage data: {}", e);
tracing::debug!("Failed to get usage data: {}", e);
Usage::default()
}
Err(e) => return Err(e),
Expand Down
2 changes: 1 addition & 1 deletion crates/goose/src/providers/formats/anthropic.rs
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,7 @@ pub fn get_usage(data: &Value) -> Result<Usage> {

Ok(Usage::new(input_tokens, output_tokens, total_tokens))
} else {
tracing::warn!(
tracing::debug!(
"Failed to get usage data: {}",
ProviderError::UsageError("No usage data found in response".to_string())
);
Expand Down
2 changes: 1 addition & 1 deletion crates/goose/src/providers/formats/google.rs
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ pub fn get_usage(data: &Value) -> Result<Usage> {
.map(|v| v as i32);
Ok(Usage::new(input_tokens, output_tokens, total_tokens))
} else {
tracing::warn!(
tracing::debug!(
"Failed to get usage data: {}",
ProviderError::UsageError("No usage data found in response".to_string())
);
Expand Down
2 changes: 1 addition & 1 deletion crates/goose/src/providers/groq.rs
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ impl Provider for GroqProvider {
let usage = match get_usage(&response) {
Ok(usage) => usage,
Err(ProviderError::UsageError(e)) => {
tracing::warn!("Failed to get usage data: {}", e);
tracing::debug!("Failed to get usage data: {}", e);
Usage::default()
}
Err(e) => return Err(e),
Expand Down
2 changes: 1 addition & 1 deletion crates/goose/src/providers/ollama.rs
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ impl Provider for OllamaProvider {
let usage = match get_usage(&response) {
Ok(usage) => usage,
Err(ProviderError::UsageError(e)) => {
tracing::warn!("Failed to get usage data: {}", e);
tracing::debug!("Failed to get usage data: {}", e);
Usage::default()
}
Err(e) => return Err(e),
Expand Down
2 changes: 1 addition & 1 deletion crates/goose/src/providers/openai.rs
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ impl Provider for OpenAiProvider {
let usage = match get_usage(&response) {
Ok(usage) => usage,
Err(ProviderError::UsageError(e)) => {
tracing::warn!("Failed to get usage data: {}", e);
tracing::debug!("Failed to get usage data: {}", e);
Usage::default()
}
Err(e) => return Err(e),
Expand Down
2 changes: 1 addition & 1 deletion crates/goose/src/providers/openrouter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ impl Provider for OpenRouterProvider {
let usage = match get_usage(&response) {
Ok(usage) => usage,
Err(ProviderError::UsageError(e)) => {
tracing::warn!("Failed to get usage data: {}", e);
tracing::debug!("Failed to get usage data: {}", e);
Usage::default()
}
Err(e) => return Err(e),
Expand Down
34 changes: 18 additions & 16 deletions crates/goose/src/providers/utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,31 +40,33 @@ pub fn convert_image(image: &ImageContent, image_format: &ImageFormat) -> Value
pub async fn handle_response_openai_compat(response: Response) -> Result<Value, ProviderError> {
let status = response.status();
// Try to parse the response body as JSON (if applicable)
let payload: Option<Value> = response.json().await.ok();
let payload = match response.json::<Value>().await {
Ok(json) => json,
Err(e) => return Err(ProviderError::RequestFailed(e.to_string())),
};

match status {
StatusCode::OK => payload.ok_or_else( || ProviderError::RequestFailed("Response body is not valid JSON".to_string()) ),
StatusCode::OK => Ok(payload),
StatusCode::UNAUTHORIZED | StatusCode::FORBIDDEN => {
Err(ProviderError::Authentication(format!("Authentication failed. Please ensure your API keys are valid and have the required permissions. \
Status: {}. Response: {:?}", status, payload)))
}
StatusCode::BAD_REQUEST => {
let mut message = "Unknown error".to_string();
if let Some(payload) = &payload {
if let Some(error) = payload.get("error") {
tracing::debug!("Bad Request Error: {error:?}");
message = error
.get("message")
.and_then(|m| m.as_str())
.unwrap_or("Unknown error")
.to_string();

if let Some(code) = error.get("code").and_then(|c| c.as_str()) {
if code == "context_length_exceeded" || code == "string_above_max_length" {
return Err(ProviderError::ContextLengthExceeded(message));
}
if let Some(error) = payload.get("error") {
tracing::debug!("Bad Request Error: {error:?}");
message = error
.get("message")
.and_then(|m| m.as_str())
.unwrap_or("Unknown error")
.to_string();

if let Some(code) = error.get("code").and_then(|c| c.as_str()) {
if code == "context_length_exceeded" || code == "string_above_max_length" {
return Err(ProviderError::ContextLengthExceeded(message));
}
}}
}
}
tracing::debug!(
"{}", format!("Provider request failed with status: {}. Payload: {:?}", status, payload)
);
Expand Down

0 comments on commit 1af6784

Please sign in to comment.