98 lines
4.1 KiB
TypeScript
98 lines
4.1 KiB
TypeScript
import test from "node:test";
|
|
import assert from "node:assert/strict";
|
|
import {
|
|
getAllEmbeddingModels,
|
|
getEmbeddingProvider,
|
|
parseEmbeddingModel,
|
|
} from "../../open-sse/config/embeddingRegistry.ts";
|
|
import {
|
|
getAllRerankModels,
|
|
getRerankProvider,
|
|
parseRerankModel,
|
|
} from "../../open-sse/config/rerankRegistry.ts";
|
|
|
|
test("voyage-ai embedding registry exposes current embedding models", () => {
|
|
const provider = getEmbeddingProvider("voyage-ai");
|
|
|
|
assert.ok(provider);
|
|
assert.equal(provider.baseUrl, "https://api.voyageai.com/v1/embeddings");
|
|
assert.ok(provider.models.some((model) => model.id === "voyage-4-large"));
|
|
assert.ok(provider.models.some((model) => model.id === "voyage-code-3"));
|
|
assert.ok(provider.models.some((model) => model.id === "voyage-4"));
|
|
|
|
const parsed = parseEmbeddingModel("voyage-ai/voyage-4-large");
|
|
assert.equal(parsed.provider, "voyage-ai");
|
|
assert.equal(parsed.model, "voyage-4-large");
|
|
|
|
const all = getAllEmbeddingModels().filter((model) => model.provider === "voyage-ai");
|
|
assert.ok(all.length >= 3);
|
|
});
|
|
|
|
test("voyage-ai and jina-ai rerank registries expose supported models", () => {
|
|
const voyage = getRerankProvider("voyage-ai");
|
|
const jina = getRerankProvider("jina-ai");
|
|
|
|
assert.ok(voyage);
|
|
assert.equal(voyage.baseUrl, "https://api.voyageai.com/v1/rerank");
|
|
assert.ok(voyage.models.some((model) => model.id === "rerank-2.5"));
|
|
assert.ok(voyage.models.some((model) => model.id === "rerank-2.5-lite"));
|
|
|
|
assert.ok(jina);
|
|
assert.equal(jina.baseUrl, "https://api.jina.ai/v1/rerank");
|
|
assert.ok(jina.models.some((model) => model.id === "jina-reranker-v3"));
|
|
assert.ok(jina.models.some((model) => model.id === "jina-reranker-m0"));
|
|
|
|
const parsedVoyage = parseRerankModel("voyage-ai/rerank-2.5");
|
|
assert.equal(parsedVoyage.provider, "voyage-ai");
|
|
assert.equal(parsedVoyage.model, "rerank-2.5");
|
|
|
|
const parsedJina = parseRerankModel("jina-ai/jina-reranker-v3");
|
|
assert.equal(parsedJina.provider, "jina-ai");
|
|
assert.equal(parsedJina.model, "jina-reranker-v3");
|
|
|
|
const parsedJinaAlias = parseRerankModel("jina/jina-reranker-v3");
|
|
assert.equal(parsedJinaAlias.provider, "jina-ai");
|
|
assert.equal(parsedJinaAlias.model, "jina-reranker-v3");
|
|
|
|
const all = getAllRerankModels();
|
|
assert.ok(all.some((model) => model.id === "voyage-ai/rerank-2.5"));
|
|
assert.ok(all.some((model) => model.id === "jina-ai/jina-reranker-v3"));
|
|
});
|
|
|
|
test("upstage embedding registry exposes current embedding models", () => {
|
|
const provider = getEmbeddingProvider("upstage");
|
|
|
|
assert.ok(provider);
|
|
assert.equal(provider.baseUrl, "https://api.upstage.ai/v1/embeddings");
|
|
assert.ok(provider.models.some((model) => model.id === "embedding-query"));
|
|
assert.ok(provider.models.some((model) => model.id === "embedding-passage"));
|
|
|
|
const parsed = parseEmbeddingModel("upstage/embedding-query");
|
|
assert.equal(parsed.provider, "upstage");
|
|
assert.equal(parsed.model, "embedding-query");
|
|
|
|
const all = getAllEmbeddingModels().filter((model) => model.provider === "upstage");
|
|
assert.deepEqual(
|
|
all.map((model) => model.id),
|
|
["upstage/embedding-query", "upstage/embedding-passage"]
|
|
);
|
|
});
|
|
|
|
test("nvidia embedding and rerank parsing preserves provider-prefixed upstream model IDs", () => {
|
|
const parsedEmbedding = parseEmbeddingModel("nvidia/nv-embedqa-e5-v5");
|
|
assert.equal(parsedEmbedding.provider, "nvidia");
|
|
assert.equal(parsedEmbedding.model, "nvidia/nv-embedqa-e5-v5");
|
|
|
|
const parsedDoublePrefixedEmbedding = parseEmbeddingModel("nvidia/nvidia/nv-embedqa-e5-v5");
|
|
assert.equal(parsedDoublePrefixedEmbedding.provider, "nvidia");
|
|
assert.equal(parsedDoublePrefixedEmbedding.model, "nvidia/nv-embedqa-e5-v5");
|
|
|
|
const parsedRerank = parseRerankModel("nvidia/nv-rerankqa-mistral-4b-v3");
|
|
assert.equal(parsedRerank.provider, "nvidia");
|
|
assert.equal(parsedRerank.model, "nvidia/nv-rerankqa-mistral-4b-v3");
|
|
|
|
const parsedDoublePrefixedRerank = parseRerankModel("nvidia/nvidia/nv-rerankqa-mistral-4b-v3");
|
|
assert.equal(parsedDoublePrefixedRerank.provider, "nvidia");
|
|
assert.equal(parsedDoublePrefixedRerank.model, "nvidia/nv-rerankqa-mistral-4b-v3");
|
|
});
|