diff options
| author | sigoden <sigoden@gmail.com> | 2024-09-01 08:27:08 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-01 08:27:08 +0800 |
| commit | 573e0d58b44cd0686c9e7405723e5cc3a5c5126f (patch) | |
| tree | 238266a756e26a0d3543a44bf901fc5111ebfd88 /src/client/openai_compatible.rs | |
| parent | 55e36c7e9da2e1c93ebeaabdc8355d0a22361f03 (diff) | |
| download | aichat-573e0d58b44cd0686c9e7405723e5cc3a5c5126f.tar.gz | |
feat: migrate `ollama`/`qianwen` clients to `openai-compatible` (#816)
Diffstat (limited to 'src/client/openai_compatible.rs')
| -rw-r--r-- | src/client/openai_compatible.rs | 14 |
1 files changed, 13 insertions, 1 deletions
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<String>, pub api_key: Option<String>, pub chat_endpoint: Option<String>, + pub embeddings_endpoint: Option<String>, #[serde(default)] pub models: Vec<ModelData>, pub patch: Option<RequestPatch>, @@ -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); |
