1use thiserror::Error;
2
3#[derive(Debug, Error)]
11pub enum AiError {
12 #[error("Embedding error: {0}")]
13 Embedding(String),
14
15 #[error("Vector store error: {0}")]
16 Vector(String),
17
18 #[error("RAG error: {0}")]
19 RAG(String),
20
21 #[error("Config error: {0}")]
22 Config(String),
23
24 #[error("Model not found: {0}")]
25 ModelNotFound(String),
26
27 #[error("Not supported: {0}")]
28 NotSupported(String),
29
30 #[error("API error (status {0}): {1}")]
32 ApiError(u16, String),
33
34 #[error("Network error: {0}")]
36 NetworkError(String),
37
38 #[error("Config error: {0}")]
40 ConfigError(String),
41}
42
43impl From<std::io::Error> for AiError {
44 fn from(err: std::io::Error) -> Self {
45 AiError::Config(err.to_string())
46 }
47}
48
49impl From<serde_json::Error> for AiError {
50 fn from(err: serde_json::Error) -> Self {
51 AiError::Config(err.to_string())
52 }
53}