kproc_llm/
error.rs

1use std::sync::PoisonError;
2
3/// Error enum for kproc
4#[derive(thiserror::Error, Debug)]
5#[allow(missing_docs)]
6#[non_exhaustive]
7pub enum Error
8{
9  #[error("SendError in streams communication, most likely end of stream: {0}.")]
10  SendError(String),
11  #[error("IO Error: {0}.")]
12  IOError(#[from] std::io::Error),
13  #[error("Deserialization error: {0}")]
14  DeserializationError(String),
15  #[cfg(feature = "ollama")]
16  #[error("Ollama error: {0}")]
17  OllamaError(#[from] ollama_rs::error::OllamaError),
18  #[error("Poison (Mutex/RwLock) error: {0}")]
19  PoisonError(String),
20  #[error("{0}")]
21  FuturesMpscSendError(#[from] futures::channel::mpsc::SendError),
22  #[cfg(feature = "image")]
23  #[error("{0}")]
24  ValueError(#[from] kproc_values::Error),
25  #[cfg(feature = "llama.cpp")]
26  #[error("{0}")]
27  HfApiError(#[from] hf_hub::api::sync::ApiError),
28  #[error("Invalid HugginFace uri.")]
29  HfInvalidUri,
30  #[cfg(feature = "llama.cpp")]
31  #[error("{0}")]
32  LlamaCpp(#[from] llama_cpp_2::LLamaCppError),
33  #[cfg(feature = "llama.cpp")]
34  #[error("{0}")]
35  LlamaModelLoad(#[from] llama_cpp_2::LlamaModelLoadError),
36  #[cfg(feature = "llama.cpp")]
37  #[error("{0}")]
38  LlamaContextLoad(#[from] llama_cpp_2::LlamaContextLoadError),
39  #[cfg(feature = "llama.cpp")]
40  #[error("{0}")]
41  LlamaStringToToken(#[from] llama_cpp_2::StringToTokenError),
42  #[cfg(feature = "llama.cpp")]
43  #[error("{0}")]
44  LlamaBatchAddError(#[from] llama_cpp_2::llama_batch::BatchAddError),
45  #[cfg(feature = "llama.cpp")]
46  #[error("{0}")]
47  LlamaDecodeError(#[from] llama_cpp_2::DecodeError),
48  #[cfg(feature = "llama.cpp")]
49  #[error("{0}")]
50  LlamaTokenToString(#[from] llama_cpp_2::TokenToStringError),
51  #[cfg(feature = "template")]
52  #[error("{0}")]
53  MinijinjaError(#[from] minijinja::Error),
54  #[cfg(feature = "llama.cpp")]
55  #[error("{0}")]
56  CCUtilsServerError(#[from] ccutils::servers::ServerError),
57  #[cfg(feature = "llama.cpp")]
58  #[error("Invalid JSON Grammar")]
59  InvalidJsonGrammar,
60}
61
62impl<T> From<PoisonError<T>> for Error
63{
64  fn from(value: PoisonError<T>) -> Self
65  {
66    Error::PoisonError(value.to_string())
67  }
68}