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");