langchain_rust/semantic_router/route_layer/
error.rs1use thiserror::Error;
2
3use crate::{
4 chain::ChainError, embedding::EmbedderError, language_models::LLMError,
5 semantic_router::IndexError,
6};
7use serde_json::Error as SerdeJsonError;
8
9#[derive(Error, Debug)]
10pub enum RouterBuilderError {
11 #[error("Invalid Router configuration: at least one of utterances or embedding must be provided, and utterances cannot be an empty vector.")]
12 InvalidConfiguration,
13}
14
15#[derive(Error, Debug)]
16pub enum RouteLayerBuilderError {
17 #[error("Route layer should have an embedder")]
18 MissingEmbedder,
19
20 #[error("Route layer should have an LLM")]
21 MissingLLM,
22
23 #[error("Missing Index")]
24 MissingIndex,
25
26 #[error("Route layer error: {0}")]
27 RouteLayerError(#[from] RouteLayerError),
28
29 #[error("Index error: {0}")]
30 IndexError(#[from] IndexError),
31
32 #[error("Embedding error: {0}")]
33 EmbeddingError(#[from] EmbedderError),
34
35 #[error("Chain error: {0}")]
36 ChainError(#[from] ChainError),
37}
38
39#[derive(Error, Debug)]
40pub enum RouteLayerError {
41 #[error("Embedding error: {0}")]
42 EmbeddingError(#[from] EmbedderError),
43
44 #[error("Index error: {0}")]
45 IndexError(#[from] IndexError),
46
47 #[error("LLM error: {0}")]
48 LLMError(#[from] LLMError),
49
50 #[error("Serialization error: {0}")]
51 SerializationError(#[from] SerdeJsonError),
52
53 #[error("Chain error: {0}")]
54 ChainError(#[from] ChainError),
55}