1use endpoints::chat::ChatCompletionRole;
2use thiserror::Error;
3
4pub type Result<T> = std::result::Result<T, PromptError>;
5
6#[derive(Error, Clone, Debug, PartialEq, Eq)]
7pub enum PromptError {
8 #[error("There must be at least one user message to create a prompt from.")]
9 NoMessages,
10 #[error("No user message to create prompt from.")]
11 NoUserMessage,
12 #[error("No content in the assistant message when the `tool_calls` is not specified.")]
13 NoAssistantMessage,
14 #[error("No available tools to create prompt from.")]
15 NoAvailableTools,
16 #[error("Bad messages. {0}")]
17 BadMessages(String),
18 #[error("Unknown chat completion role: {0:?}")]
19 UnknownRole(ChatCompletionRole),
20 #[error("Unknown prompt template type: {0}")]
21 UnknownPromptTemplateType(String),
22 #[error("Unknown merge RAG context policy: {0}")]
23 UnknownMergeRagContextPolicy(String),
24 #[error("Unsupported content. Reason: {0}")]
25 UnsupportedContent(String),
26 #[error("Failed to build prompt. Reason: {0}")]
27 Operation(String),
28}