From 0e740d81e94505bd57036755abaaecb12c3b26e3 Mon Sep 17 00:00:00 2001 From: sigoden Date: Sun, 28 Jul 2024 06:04:36 +0800 Subject: feat: abandon rag_dedicated client and improve (#757) --- src/client/common.rs | 77 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 46 insertions(+), 31 deletions(-) (limited to 'src/client/common.rs') diff --git a/src/client/common.rs b/src/client/common.rs index 3321511..2108941 100644 --- a/src/client/common.rs +++ b/src/client/common.rs @@ -8,7 +8,6 @@ use crate::{ }; use anyhow::{bail, Context, Result}; -use async_trait::async_trait; use fancy_regex::Regex; use indexmap::IndexMap; use lazy_static::lazy_static; @@ -25,7 +24,7 @@ lazy_static! { static ref ESCAPE_SLASH_RE: Regex = Regex::new(r"(? &GlobalConfig; @@ -110,6 +109,35 @@ pub trait Client: Sync + Send { .context("Failed to call rerank api") } + async fn chat_completions_inner( + &self, + client: &ReqwestClient, + data: ChatCompletionsData, + ) -> Result; + + async fn chat_completions_streaming_inner( + &self, + client: &ReqwestClient, + handler: &mut SseHandler, + data: ChatCompletionsData, + ) -> Result<()>; + + async fn embeddings_inner( + &self, + _client: &ReqwestClient, + _data: EmbeddingsData, + ) -> Result { + bail!("The client doesn't support embeddings api") + } + + async fn rerank_inner( + &self, + _client: &ReqwestClient, + _data: RerankData, + ) -> Result { + bail!("The client doesn't support rerank api") + } + fn request_builder( &self, client: &reqwest::Client, @@ -147,35 +175,6 @@ pub trait Client: Sync + Send { } } } - - async fn chat_completions_inner( - &self, - client: &ReqwestClient, - data: ChatCompletionsData, - ) -> Result; - - async fn chat_completions_streaming_inner( - &self, - client: &ReqwestClient, - handler: &mut SseHandler, - data: ChatCompletionsData, - ) -> Result<()>; - - async fn embeddings_inner( - &self, - _client: &ReqwestClient, - _data: EmbeddingsData, - ) -> Result { - bail!("The client doesn't support embeddings api") - } - - async fn rerank_inner( - &self, - _client: &ReqwestClient, - _data: RerankData, - ) -> Result { - bail!("The client doesn't support rerank api") - } } impl Default for ClientConfig { @@ -448,6 +447,22 @@ where Ok(()) } +pub fn noop_prepare_embeddings(_client: &T, _data: EmbeddingsData) -> Result { + bail!("The client doesn't support embeddings api") +} + +pub async fn noop_embeddings(_builder: RequestBuilder, _model: &Model) -> Result { + bail!("The client doesn't support embeddings api") +} + +pub fn noop_prepare_rerank(_client: &T, _data: RerankData) -> Result { + bail!("The client doesn't support rerank api") +} + +pub async fn noop_rerank(_builder: RequestBuilder, _model: &Model) -> Result { + bail!("The client doesn't support rerank api") +} + pub fn catch_error(data: &Value, status: u16) -> Result<()> { if (200..300).contains(&status) { return Ok(()); -- cgit v1.2.3