Python 88.3%
TypeScript 7.6%
Shell 4.1%
1"""embedContent / batchEmbedContents on gemini-embedding-001 and gemini-embedding-2. Verified 2026-09-18 (≈ free)."""2from __future__ import annotations34from tests.gemini._core_helpers import call56E1, E2 = "gemini-embedding-001", "gemini-embedding-2"789def test_embed_001_task_type_and_dims(gemini):10 st, r, _ = call(gemini, "POST", f"/v1beta/models/{E1}:embedContent", {"content": {"parts": [{"text": "Hello world"}]}, "taskType": "SEMANTIC_SIMILARITY", "outputDimensionality": 64}, note="test_embeddings 001 dims 64")11 assert st == 200, r12 assert len(r["embedding"]["values"]) == 64 and "usageMetadata" not in r13 assert all(isinstance(v, float) for v in r["embedding"]["values"])141516def test_embed_2_usage_and_config(gemini):17 st, r, _ = call(gemini, "POST", f"/v1beta/models/{E2}:embedContent", {"content": {"parts": [{"text": "task: classification | query: Hello world"}]}, "embedContentConfig": {"outputDimensionality": 64}}, note="test_embeddings 2 dims 64")18 assert st == 200, r19 assert len(r["embedding"]["values"]) == 6420 assert r["usageMetadata"]["promptTokenCount"] > 0 and r["usageMetadata"]["promptTokenDetails"][0]["modality"] == "TEXT"212223def test_batch_embed_and_model_required(gemini):24 st, r, _ = call(gemini, "POST", f"/v1beta/models/{E1}:batchEmbedContents", {"requests": [{"model": f"models/{E1}", "content": {"parts": [{"text": "Hello"}]}, "outputDimensionality": 64}, {"model": f"models/{E1}", "content": {"parts": [{"text": "World"}]}, "outputDimensionality": 64}]}, note="test_embeddings batch")25 assert st == 200 and [len(e["values"]) for e in r["embeddings"]] == [64, 64]26 st, r, _ = call(gemini, "POST", f"/v1beta/models/{E1}:batchEmbedContents", {"requests": [{"content": {"parts": [{"text": "Hello"}]}}]}, note="test_embeddings batch no model")27 assert st == 400 and "model is not specified" in r["error"]["message"]282930def test_bad_dimensionality_and_wrong_model(gemini, models):31 st, r, _ = call(gemini, "POST", f"/v1beta/models/{E1}:embedContent", {"content": {"parts": [{"text": "Hello"}]}, "outputDimensionality": 4096}, note="test_embeddings dims 4096")32 assert st == 400 and "outputDimensionality" in r["error"]["message"]33 st, r, _ = call(gemini, "POST", f"/v1beta/models/{models['gemini']}:embedContent", {"content": {"parts": [{"text": "Hello"}]}}, note="test_embeddings generation model")34 assert st == 404 and "not supported for embedContent" in r["error"]["message"]35