pub enum LlmError {
ConfigError(String),
ConnectionError(String),
AuthenticationError,
RateLimitError {
retry_after: Option<u64>,
},
ModelNotFound {
model: String,
},
ServerError {
status: u16,
message: String,
},
ParseError(String),
OpenAiError(OpenAIError),
ContentModeration {
detail: String,
},
ContentModerationInput {
detail: String,
},
ProviderError {
code: String,
message: String,
},
}Expand description
Unified error type for LLM operations.
Variants§
ConfigError(String)
ConnectionError(String)
AuthenticationError
RateLimitError
ModelNotFound
ServerError
ParseError(String)
OpenAiError(OpenAIError)
ContentModeration
The provider’s content moderation blocked the model OUTPUT, pushed as
an error event into the SSE stream (no choices field, so async-openai
reports a JSON deserialization failure with the cause buried inside).
ContentModerationInput
The provider’s content moderation blocked the INPUT (the request / conversation context was rejected with e.g. HTTP 400). Every subsequent turn resends the same context, so the session stays blocked until the context is cleared.
ProviderError
Implementations§
Source§impl LlmError
impl LlmError
Sourcepub fn from_openai_error(err: OpenAIError) -> Self
pub fn from_openai_error(err: OpenAIError) -> Self
Map an async-openai error to a friendlier one where possible.
Two cases are improved:
ApiErrorwhose code/type is a known content-moderation code (e.g. DashScopedata_inspection_failed) — the provider rejects the request outright with HTTP 400.JSONDeserializewhere the raw payload is actually a provider error event{"error": {...}}pushed into the SSE stream — async-openai cannot parse it as a chunk (nochoices), so the real cause would otherwise be buried in the deserialize error.
Everything else is passed through unchanged.
Trait Implementations§
Source§impl Error for LlmError
impl Error for LlmError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl From<OpenAIError> for LlmError
impl From<OpenAIError> for LlmError
Source§fn from(source: OpenAIError) -> Self
fn from(source: OpenAIError) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl !RefUnwindSafe for LlmError
impl !UnwindSafe for LlmError
impl Freeze for LlmError
impl Send for LlmError
impl Sync for LlmError
impl Unpin for LlmError
impl UnsafeUnpin for LlmError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more