mentedb_extraction/
error.rs1use thiserror::Error;
2
3#[derive(Debug, Error)]
5pub enum ExtractionError {
6 #[error("provider error: {0}")]
8 ProviderError(String),
9
10 #[error("authentication failed: {0}")]
12 AuthError(String),
13
14 #[error("model not found: {0}")]
16 ModelNotFound(String),
17
18 #[error("parse error: {0}")]
20 ParseError(String),
21
22 #[error("config error: {0}")]
24 ConfigError(String),
25
26 #[error("http error: {0}")]
28 HttpError(String),
29
30 #[error("embedding error: {0}")]
32 EmbeddingError(String),
33
34 #[error(
36 "{model} hit the output limit of {max_output_tokens} tokens before finishing; \
37 raise max_output_tokens (MENTEDB_LLM_MAX_OUTPUT_TOKENS) or lower effort"
38 )]
39 Truncated {
40 model: String,
41 max_output_tokens: u32,
42 },
43
44 #[error("rate limit exceeded after {attempts} attempts")]
46 RateLimitExceeded { attempts: usize },
47}
48
49impl From<reqwest::Error> for ExtractionError {
50 fn from(e: reqwest::Error) -> Self {
51 ExtractionError::HttpError(e.to_string())
52 }
53}
54
55impl From<serde_json::Error> for ExtractionError {
56 fn from(e: serde_json::Error) -> Self {
57 ExtractionError::ParseError(e.to_string())
58 }
59}