langchain_rust/semantic_router/route_layer/
error.rs

1use 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}