From 573e0d58b44cd0686c9e7405723e5cc3a5c5126f Mon Sep 17 00:00:00 2001 From: sigoden Date: Sun, 1 Sep 2024 08:27:08 +0800 Subject: feat: migrate `ollama`/`qianwen` clients to `openai-compatible` (#816) --- src/client/openai_compatible.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/client/openai_compatible.rs') diff --git a/src/client/openai_compatible.rs b/src/client/openai_compatible.rs index 2bde884..da261b3 100644 --- a/src/client/openai_compatible.rs +++ b/src/client/openai_compatible.rs @@ -12,6 +12,7 @@ pub struct OpenAICompatibleConfig { pub api_base: Option, pub api_key: Option, pub chat_endpoint: Option, + pub embeddings_endpoint: Option, #[serde(default)] pub models: Vec, pub patch: Option, @@ -82,7 +83,18 @@ fn prepare_embeddings(self_: &OpenAICompatibleClient, data: EmbeddingsData) -> R let api_key = self_.get_api_key().ok(); let api_base = get_api_base_ext(self_)?; - let url = format!("{api_base}/embeddings"); + let embeddings_endpoint = match self_.config.embeddings_endpoint.clone() { + Some(v) => { + if v.starts_with('/') { + v + } else { + format!("/{}", v) + } + } + None => "/embeddings".into(), + }; + + let url = format!("{api_base}{embeddings_endpoint}"); let body = openai_build_embeddings_body(data, &self_.model); -- cgit v1.2.3