Skip to main content

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)]
10#[non_exhaustive]
11pub enum RouterBuilderError {
12    #[error("Invalid Router configuration: at least one of utterances or embedding must be provided, and utterances cannot be an empty vector.")]
13    InvalidConfiguration,
14}
15
16#[derive(Error, Debug)]
17#[non_exhaustive]
18pub enum RouteLayerBuilderError {
19    #[error("Route layer should have an embedder")]
20    MissingEmbedder,
21
22    #[error("Route layer should have an LLM")]
23    MissingLLM,
24
25    #[error("Missing Index")]
26    MissingIndex,
27
28    #[error("Route layer error: {0}")]
29    RouteLayerError(#[from] RouteLayerError),
30
31    #[error("Index error: {0}")]
32    IndexError(#[from] IndexError),
33
34    #[error("Embedding error: {0}")]
35    EmbeddingError(#[from] EmbedderError),
36
37    #[error("Chain error: {0}")]
38    ChainError(#[from] ChainError),
39}
40
41#[derive(Error, Debug)]
42#[non_exhaustive]
43pub enum RouteLayerError {
44    #[error("Embedding error: {0}")]
45    EmbeddingError(#[from] EmbedderError),
46
47    #[error("Index error: {0}")]
48    IndexError(#[from] IndexError),
49
50    #[error("LLM error: {0}")]
51    LLMError(#[from] LLMError),
52
53    #[error("Serialization error: {0}")]
54    SerializationError(#[from] SerdeJsonError),
55
56    #[error("Chain error: {0}")]
57    ChainError(#[from] ChainError),
58}