{
  "id": "gemini-embedding-2",
  "identity": {
    "family": "gemini-embedding",
    "display_name": "Gemini Embedding 2",
    "hub_id": null,
    "api_name": "gemini-embedding-2",
    "revision": null,
    "variants": [],
    "license": "Google Gemini API / Vertex AI terms of service",
    "commercial_use": true,
    "commercial_use_note": "Paid Google API under Google's terms; Mixpeek resells the call and pays per token.",
    "release_date": "2026-03",
    "paper_url": null,
    "repo_url": null
  },
  "task": {
    "category": "embedding",
    "modalities_in": [
      "text",
      "image",
      "video",
      "audio",
      "document"
    ],
    "modalities_out": [
      "vector"
    ],
    "best_at": "One vector space for video segments, images, PDFs, audio and text queries; the default for object-level multimodal extractors (multimodal_extractor v2, universal_extractor).",
    "worst_at": "Cost and latency per call (provider API, 1.9 to 7 s query spikes after a lull per the routes comment); no task_type parameter, so Mixpeek prepends instruction text instead; 3072-d vectors are large to store."
  },
  "io": {
    "input": {
      "text": {
        "max_tokens": 8192
      },
      "image": "inline or URI parts",
      "video": "segments up to 120 s (multimodal_extractor caps Gemini segments at 120 s)",
      "prompts": "embedding_task maps to a text prefix: RETRIEVAL_QUERY 'Represent this query for retrieving relevant documents: ', RETRIEVAL_DOCUMENT 'Represent this document for retrieval: ', SEMANTIC_SIMILARITY ..."
    },
    "output": {
      "vector": {
        "dims": 3072,
        "distance": "cosine",
        "matryoshka": "outputDimensionality when dimensions != 3072"
      }
    }
  },
  "mixpeek_wiring": {
    "extractors": [
      {
        "extractor": "multimodal_extractor@v2",
        "selected_by": "fixed"
      },
      {
        "extractor": "universal_extractor@v1",
        "selected_by": "fixed (GEMINI_EMBEDDING_MODEL env, default gemini-embedding-2)"
      }
    ],
    "feature_uris": [
      "mixpeek://multimodal_extractor@v2/gemini-embedding-2",
      "mixpeek://universal_extractor@v1/gemini-embedding-2"
    ],
    "vector_indexes": [
      "multimodal_extractor_v2_multimodal_embedding",
      "universal_extractor_v1_embedding"
    ],
    "retriever_stages": [
      "feature_search"
    ],
    "composes_with": [
      "multimodal_extractor v2: video segment + Gemini description -> one Gemini Embedding 2 vector, beside E5 transcription/OCR/description vectors"
    ]
  },
  "run": {
    "status": "api",
    "status_reason": "Provider API (Gemini developer API or Vertex). The google__gemini_embedding_2 registry app proxies query embeds; on the planes it is hosted inside mixpeek__api_inference. Extractors call the API directly from the batch step.",
    "serve_apps": [
      "google__gemini_embedding_2"
    ],
    "runtime": "Gemini REST embedContent (gemini_rest_endpoint) for queries; google-genai client.models.embed_content in extractors",
    "weights_format": "api",
    "trust_remote_code": false,
    "size_on_disk_mb": null,
    "params_millions": null,
    "preprocessing": "Build content parts (text, image, video, PDF), prepend the task instruction to text.",
    "postprocessing": "Vector as returned (3072 dims unless dimensions is set); responses cached by model, task, dims and content.",
    "serving_shape": "both",
    "batch_size": null,
    "serve_batch": null,
    "scale_to_zero": {
      "min_replicas": 0,
      "max_replicas": 6,
      "idle_timeout_s": 300,
      "memory_gb": null,
      "num_cpus": 0.5,
      "num_gpus": 0,
      "cold_start_s": {
        "warm_node_s": null,
        "new_node_s": null,
        "source": null
      },
      "cpu_fallback": true
    }
  },
  "cost": {
    "unmeasured": true,
    "measured": null,
    "note": "No committed throughput+latency+cost measurement; billed per token by Google."
  },
  "evidence": {
    "unmeasured": true,
    "items": []
  },
  "refs": [
    "api://google/gemini-embedding-2"
  ],
  "formats": [
    {
      "ref": "api://google/gemini-embedding-2",
      "format": "api",
      "file": null,
      "loader": "provider SDK, called by model name",
      "supported_today": true
    }
  ],
  "use_cases": [
    "visual-search",
    "text-search",
    "multilingual-search",
    "video-understanding",
    "audio-search",
    "document-search"
  ],
  "recommended": {
    "value": false,
    "for": [],
    "reason": null
  },
  "demos": [],
  "seo": {
    "title": "Gemini Embedding 2: embedding model",
    "description": "Gemini Embedding 2 is a embedding model. Called on Mixpeek through the provider API.",
    "keywords": [
      "Gemini Embedding 2",
      "gemini-embedding",
      "embedding",
      "gemini-embedding-2",
      "visual-search",
      "text-search",
      "multilingual-search",
      "video-understanding",
      "audio-search",
      "document-search"
    ],
    "faqs": [
      {
        "q": "What is Gemini Embedding 2 best at?",
        "a": "One vector space for video segments, images, PDFs, audio and text queries; the default for object-level multimodal extractors (multimodal_extractor v2, universal_extractor)."
      },
      {
        "q": "What are the limits of Gemini Embedding 2?",
        "a": "Cost and latency per call (provider API, 1.9 to 7 s query spikes after a lull per the routes comment); no task_type parameter, so Mixpeek prepends instruction text instead; 3072-d vectors are large to store."
      },
      {
        "q": "Can Gemini Embedding 2 be used commercially?",
        "a": "Yes. Paid Google API under Google's terms; Mixpeek resells the call and pays per token."
      },
      {
        "q": "How does Gemini Embedding 2 run on Mixpeek?",
        "a": "Provider API (Gemini developer API or Vertex). The google__gemini_embedding_2 registry app proxies query embeds; on the planes it is hosted inside mixpeek__api_inference. Extractors call the API directly from the batch step."
      },
      {
        "q": "What does Gemini Embedding 2 output?",
        "a": "A 3072-dimensional dense vector, compared by cosine similarity."
      }
    ]
  },
  "last_verified": "2026-11-05",
  "sources": [
    "https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-embedding-2/",
    "server/engine/inference/google/gemini_embedding/services.py",
    "server/engine/inference/google/gemini_embedding/routes.py",
    "server/engine/extractors/multimodal_extractor/v2/definition.py",
    "server/engine/extractors/universal_extractor/v1/processors/gemini_client.py",
    "server/shared/models/embeddings/registry.py"
  ],
  "registry": {
    "google__gemini_embedding_2": {
      "deployment": "google__gemini_embedding_2",
      "service_id": "google/gemini-embedding-2",
      "routes": "engine/inference/google/gemini_embedding/routes.py",
      "route_prefix": "/google_gemini_embedding_2/v1",
      "enabled": true,
      "description": "Gemini Embedding 2 — Google's natively multimodal embedding model. Generates 3072-dimensional dense embeddings for text, images, video, audio, and PDFs. CPU-only API proxy (no GPU required).",
      "capabilities": {
        "category": "embedding",
        "modality_input": [
          "text",
          "image",
          "video",
          "audio"
        ],
        "modality_output": "vector",
        "supports_batch": false,
        "reranking_mode": null
      },
      "vector_config": {
        "dimensions": 3072,
        "distance": "cosine",
        "vector_type": "dense"
      },
      "serve": {
        "min_replicas": 0,
        "max_replicas": 6,
        "idle_timeout_s": 300,
        "target_ongoing_requests": 3,
        "num_cpus": 0.5,
        "num_gpus": 0,
        "memory_gb": null,
        "pinnable": false,
        "placement": "worker",
        "enabled": true
      },
      "interactive_twin": false,
      "interactive_serve": null,
      "schemas": {
        "input": null,
        "output": null,
        "config": null
      }
    }
  },
  "templates": [
    "rtsp-live-monitoring",
    "video-moderation"
  ],
  "usage": {
    "namespaces": null,
    "collections": null,
    "uncounted": true,
    "templates": 2,
    "counted_at": null,
    "source": null
  },
  "facets": {
    "status": "api",
    "category": "embedding",
    "family": "gemini-embedding",
    "license": "Google Gemini API / Vertex AI terms of service",
    "commercial_use": true,
    "modalities_in": [
      "text",
      "image",
      "video",
      "audio",
      "document"
    ],
    "modalities_out": [
      "vector"
    ],
    "use_cases": [
      "visual-search",
      "text-search",
      "multilingual-search",
      "video-understanding",
      "audio-search",
      "document-search"
    ],
    "recommended": false,
    "release_date": "2026-03",
    "params_millions": null,
    "size_on_disk_mb": null,
    "vector_dims": 3072,
    "vector_distance": "cosine",
    "weights_format": "api",
    "formats": [
      "api"
    ],
    "loadable_today": true,
    "trust_remote_code": false,
    "cpu_fallback": true,
    "num_gpus": 0,
    "memory_gb": null,
    "min_replicas": 0,
    "serving_shape": "both",
    "served": true,
    "ref_schemes": [
      "api"
    ],
    "has_evidence": false,
    "cost_measured": false,
    "template_count": 2,
    "usage_namespaces": null,
    "usage_collections": null,
    "usage_uncounted": true,
    "has_demo": false,
    "rank_score": 5
  },
  "rank_score": 5
}
