





















@@ -62,8 +62,8 @@ async function createProviderWithFetch(
6262return provider;
6363}
646465-describe("buildGeminiTextEmbeddingRequest", () => {
66-it("builds a text embedding request with optional model and dimensions", () => {
65+describe("Gemini embedding request helpers", () => {
66+it("builds text and multimodal requests", () => {
6767expect(
6868buildGeminiTextEmbeddingRequest({
6969text: "hello",
@@ -77,11 +77,6 @@ describe("buildGeminiTextEmbeddingRequest", () => {
7777taskType: "RETRIEVAL_DOCUMENT",
7878outputDimensionality: 1536,
7979});
80-});
81-});
82-83-describe("buildGeminiEmbeddingRequest", () => {
84-it("builds a multimodal request from structured input parts", () => {
8580expect(
8681buildGeminiEmbeddingRequest({
8782input: {
@@ -107,59 +102,42 @@ describe("buildGeminiEmbeddingRequest", () => {
107102outputDimensionality: 1536,
108103});
109104});
110-});
111105112-// ---------- Model detection ----------
113-114-describe("isGeminiEmbedding2Model", () => {
115-it("returns true for gemini-embedding-2-preview", () => {
106+it("detects v2 model names", () => {
107+expect(GEMINI_EMBEDDING_2_MODELS.has("gemini-embedding-2-preview")).toBe(true);
116108expect(isGeminiEmbedding2Model("gemini-embedding-2-preview")).toBe(true);
117-});
118-119-it("returns false for gemini-embedding-001", () => {
120109expect(isGeminiEmbedding2Model("gemini-embedding-001")).toBe(false);
121-});
122-123-it("returns false for text-embedding-004", () => {
124110expect(isGeminiEmbedding2Model("text-embedding-004")).toBe(false);
125111});
126-});
127-128-describe("GEMINI_EMBEDDING_2_MODELS", () => {
129-it("contains gemini-embedding-2-preview", () => {
130-expect(GEMINI_EMBEDDING_2_MODELS.has("gemini-embedding-2-preview")).toBe(true);
131-});
132-});
133112134-// ---------- Dimension resolution ----------
135-136-describe("resolveGeminiOutputDimensionality", () => {
137-it("returns undefined for non-v2 models", () => {
113+it("resolves v2 dimensions and rejects invalid values", () => {
138114expect(resolveGeminiOutputDimensionality("gemini-embedding-001")).toBeUndefined();
139115expect(resolveGeminiOutputDimensionality("text-embedding-004")).toBeUndefined();
140-});
141-142-it("returns 3072 by default for v2 models", () => {
143116expect(resolveGeminiOutputDimensionality("gemini-embedding-2-preview")).toBe(3072);
144-});
145-146-it("accepts valid dimension values", () => {
147117expect(resolveGeminiOutputDimensionality("gemini-embedding-2-preview", 768)).toBe(768);
148118expect(resolveGeminiOutputDimensionality("gemini-embedding-2-preview", 1536)).toBe(1536);
149119expect(resolveGeminiOutputDimensionality("gemini-embedding-2-preview", 3072)).toBe(3072);
150-});
151-152-it("throws for invalid dimension values", () => {
153120expect(() => resolveGeminiOutputDimensionality("gemini-embedding-2-preview", 512)).toThrow(
154121/Invalid outputDimensionality 512/,
155122);
156123expect(() => resolveGeminiOutputDimensionality("gemini-embedding-2-preview", 1024)).toThrow(
157124/Valid values: 768, 1536, 3072/,
158125);
159126});
160-});
161127162-// ---------- Provider behavior ----------
128+it("normalizes known model prefixes and default model", () => {
129+expect(normalizeGeminiModel("models/gemini-embedding-2-preview")).toBe(
130+"gemini-embedding-2-preview",
131+);
132+expect(normalizeGeminiModel("gemini/gemini-embedding-2-preview")).toBe(
133+"gemini-embedding-2-preview",
134+);
135+expect(normalizeGeminiModel("google/gemini-embedding-2-preview")).toBe(
136+"gemini-embedding-2-preview",
137+);
138+expect(normalizeGeminiModel("")).toBe(DEFAULT_GEMINI_EMBEDDING_MODEL);
139+});
140+});
163141164142describe("gemini embedding provider", () => {
165143it("handles legacy and v2 request/response behavior", async () => {
@@ -253,20 +231,3 @@ describe("gemini embedding provider", () => {
253231]);
254232});
255233});
256-257-// ---------- Model normalization ----------
258-259-describe("gemini model normalization", () => {
260-it("normalizes known model prefixes and default model", () => {
261-expect(normalizeGeminiModel("models/gemini-embedding-2-preview")).toBe(
262-"gemini-embedding-2-preview",
263-);
264-expect(normalizeGeminiModel("gemini/gemini-embedding-2-preview")).toBe(
265-"gemini-embedding-2-preview",
266-);
267-expect(normalizeGeminiModel("google/gemini-embedding-2-preview")).toBe(
268-"gemini-embedding-2-preview",
269-);
270-expect(normalizeGeminiModel("")).toBe(DEFAULT_GEMINI_EMBEDDING_MODEL);
271-});
272-});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。