|
use super::ErrorResponse; |
|
|
|
pub enum ChatError { |
|
ModelNotSupported(String), |
|
EmptyMessages, |
|
NoTokens, |
|
RequestFailed(String), |
|
Unauthorized, |
|
} |
|
|
|
impl ChatError { |
|
pub fn to_json(&self) -> ErrorResponse { |
|
let (error, message) = match self { |
|
ChatError::ModelNotSupported(model) => ( |
|
"model_not_supported", |
|
format!("Model '{}' is not supported", model), |
|
), |
|
ChatError::EmptyMessages => ( |
|
"empty_messages", |
|
"Message array cannot be empty".to_string(), |
|
), |
|
ChatError::NoTokens => ("no_tokens", "No available tokens".to_string()), |
|
ChatError::RequestFailed(err) => ("request_failed", format!("Request failed: {}", err)), |
|
ChatError::Unauthorized => ("unauthorized", "Invalid authorization token".to_string()), |
|
}; |
|
|
|
ErrorResponse { |
|
status: super::ApiStatus::Error, |
|
code: None, |
|
error: Some(error.to_string()), |
|
message: Some(message), |
|
} |
|
} |
|
} |
|
|