From 6847d93ee88650816fe13cf62df3bf0c3a394eb0 Mon Sep 17 00:00:00 2001 From: Kamenka Dzmitry <81700662+kamenkadmitry@users.noreply.github.com> Date: Thu, 16 Jul 2026 13:48:27 +0200 Subject: [PATCH] fix(embeddings): remove non-existent voyage-multilingual-3.5, add missing models Cherry-picked from PR #7425 (org-fork branch cannot receive pushes; the PR stays open for reference). Refs #7425 --- .../fixes/7425-voyage-embedding-models.md | 1 + open-sse/config/embeddingRegistry.ts | 4 ++- ...embedding-rerank-provider-registry.test.ts | 25 +++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 changelog.d/fixes/7425-voyage-embedding-models.md diff --git a/changelog.d/fixes/7425-voyage-embedding-models.md b/changelog.d/fixes/7425-voyage-embedding-models.md new file mode 100644 index 0000000000..3ac41f57eb --- /dev/null +++ b/changelog.d/fixes/7425-voyage-embedding-models.md @@ -0,0 +1 @@ +- fix(embeddings): remove the non-existent `voyage-multilingual-3.5` from the embedding registry and add the missing Voyage models (#7425 — thanks @kamenkadmitry) diff --git a/open-sse/config/embeddingRegistry.ts b/open-sse/config/embeddingRegistry.ts index 54a9cf2103..dde332c337 100644 --- a/open-sse/config/embeddingRegistry.ts +++ b/open-sse/config/embeddingRegistry.ts @@ -258,7 +258,9 @@ export const EMBEDDING_PROVIDERS: Record = { { id: "voyage-4", name: "Voyage 4", dimensions: 1024 }, { id: "voyage-4-lite", name: "Voyage 4 Lite", dimensions: 1024 }, { id: "voyage-3-large", name: "Voyage 3 Large", dimensions: 1024 }, - { id: "voyage-multilingual-3.5", name: "Voyage Multilingual 3.5", dimensions: 1024 }, + { id: "voyage-3.5", name: "Voyage 3.5", dimensions: 1024 }, + { id: "voyage-3.5-lite", name: "Voyage 3.5 Lite", dimensions: 512 }, + { id: "voyage-multilingual-2", name: "Voyage Multilingual 2", dimensions: 1024 }, { id: "voyage-code-3", name: "Voyage Code 3", dimensions: 1024 }, { id: "voyage-code-2", name: "Voyage Code 2", dimensions: 1536 }, { id: "voyage-finance-2", name: "Voyage Finance 2", dimensions: 1024 }, diff --git a/tests/unit/embedding-rerank-provider-registry.test.ts b/tests/unit/embedding-rerank-provider-registry.test.ts index a4e0129e45..de96830f0e 100644 --- a/tests/unit/embedding-rerank-provider-registry.test.ts +++ b/tests/unit/embedding-rerank-provider-registry.test.ts @@ -28,6 +28,31 @@ test("voyage-ai embedding registry exposes current embedding models", () => { assert.ok(all.length >= 3); }); +// #7351: voyage-multilingual-3.5 does not exist in the Voyage AI API — it was +// added to the registry by mistake and caused HTTP 400 on every test/request. +// voyage-multilingual-2 is the real model and was missing from the registry. +test("#7351 voyage-ai registry does not list non-existent voyage-multilingual-3.5", () => { + const provider = getEmbeddingProvider("voyage-ai"); + assert.ok(provider); + assert.ok( + !provider.models.some((model) => model.id === "voyage-multilingual-3.5"), + "voyage-multilingual-3.5 must not be in the registry — it does not exist in the Voyage AI API" + ); +}); + +test("#7351 voyage-ai registry includes voyage-multilingual-2 (real model)", () => { + const provider = getEmbeddingProvider("voyage-ai"); + assert.ok(provider); + assert.ok(provider.models.some((model) => model.id === "voyage-multilingual-2")); +}); + +test("#7351 voyage-ai registry includes voyage-3.5 and voyage-3.5-lite", () => { + const provider = getEmbeddingProvider("voyage-ai"); + assert.ok(provider); + assert.ok(provider.models.some((model) => model.id === "voyage-3.5")); + assert.ok(provider.models.some((model) => model.id === "voyage-3.5-lite")); +}); + test("voyage-ai and jina-ai rerank registries expose supported models", () => { const voyage = getRerankProvider("voyage-ai"); const jina = getRerankProvider("jina-ai");