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)]
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}