mirror of
https://github.com/katanemo/plano.git
synced 2026-06-17 15:25:17 +02:00
* updating the implementation of /v1/chat/completions to use the generic provider interfaces * saving changes, although we will need a small re-factor after this as well * more refactoring changes, getting close * more refactoring changes to avoid unecessary re-direction and duplication * more clean up * more refactoring * more refactoring to clean code and make stream_context.rs work * removing unecessary trait implemenations * some more clean-up * fixed bugs * fixing test cases, and making sure all references to the ChatCOmpletions* objects point to the new types * refactored changes to support enum dispatch * removed the dependency on try_streaming_from_bytes into a try_from trait implementation * updated readme based on new usage * updated code based on code review comments --------- Co-authored-by: Salman Paracha <salmanparacha@MacBook-Pro-2.local> Co-authored-by: Salman Paracha <salmanparacha@MacBook-Pro-4.local>
45 lines
1.3 KiB
Rust
45 lines
1.3 KiB
Rust
use proxy_wasm::types::Status;
|
|
|
|
use crate::{api::open_ai::ChatCompletionChunkResponseError, ratelimit};
|
|
use hermesllm::apis::openai::OpenAIError;
|
|
|
|
#[derive(thiserror::Error, Debug)]
|
|
pub enum ClientError {
|
|
#[error("Error dispatching HTTP call to `{upstream_name}/{path}`, error: {internal_status:?}")]
|
|
DispatchError {
|
|
upstream_name: String,
|
|
path: String,
|
|
internal_status: Status,
|
|
},
|
|
}
|
|
|
|
#[derive(thiserror::Error, Debug)]
|
|
pub enum ServerError {
|
|
#[error(transparent)]
|
|
HttpDispatch(ClientError),
|
|
#[error(transparent)]
|
|
Deserialization(serde_json::Error),
|
|
#[error(transparent)]
|
|
Serialization(serde_json::Error),
|
|
#[error("{0}")]
|
|
LogicError(String),
|
|
#[error("upstream application error host={host}, path={path}, status={status}, body={body}")]
|
|
Upstream {
|
|
host: String,
|
|
path: String,
|
|
status: String,
|
|
body: String,
|
|
},
|
|
#[error("jailbreak detected: {0}")]
|
|
Jailbreak(String),
|
|
#[error("{why}")]
|
|
NoMessagesFound { why: String },
|
|
#[error(transparent)]
|
|
ExceededRatelimit(ratelimit::Error),
|
|
#[error("{why}")]
|
|
BadRequest { why: String },
|
|
#[error("error in streaming response")]
|
|
Streaming(#[from] ChatCompletionChunkResponseError),
|
|
#[error("error parsing openai message: {0}")]
|
|
OpenAIPError(#[from] OpenAIError),
|
|
}
|