{
  "id": "gemini-2-5-flash",
  "identity": {
    "family": "gemini",
    "display_name": "Gemini 2.5 Flash",
    "hub_id": null,
    "api_name": "gemini-2.5-flash",
    "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; tenants can bring their own key.",
    "release_date": "2025-06",
    "paper_url": "https://arxiv.org/abs/2507.06261",
    "repo_url": null
  },
  "task": {
    "category": "generation",
    "modalities_in": [
      "text",
      "image",
      "video",
      "document"
    ],
    "modalities_out": [
      "text",
      "structured"
    ],
    "best_at": "The extractors' default for structured extraction and vision work: video description and OCR in multimodal_extractor v2, web page extraction, PDF layout (document_graph), scrolling-text OCR.",
    "worst_at": "It is a thinking model: the thinking budget can eat the output tokens on long extractions (llm_extractor.py comments); slower and costlier than gemini-3.5-flash-lite."
  },
  "io": {
    "input": {
      "text": "prompt plus content",
      "image": "page images, frames, panoramas",
      "video": "segments up to 120 s"
    },
    "output": {
      "text": "free text, or JSON against response_shape / response_schema"
    }
  },
  "mixpeek_wiring": {
    "extractors": [
      {
        "extractor": "multimodal_extractor@v2",
        "selected_by": "fixed (description and ocr_text when run_video_description or run_ocr)"
      },
      {
        "extractor": "web_scraper@v1",
        "selected_by": "llm_model unset (default), also forced when a blocked expensive model is named"
      },
      {
        "extractor": "document_graph_extractor@v1",
        "selected_by": "vlm_model unset (default gemini-2.5-flash)"
      },
      {
        "extractor": "text_extractor@v1",
        "selected_by": "response_shape set and llm_model unset (llm_provider google)"
      },
      {
        "extractor": "scrolling_text_extractor@v1",
        "selected_by": "fixed (panorama OCR via CentralLLMService)"
      }
    ],
    "feature_uris": [],
    "vector_indexes": [],
    "retriever_stages": [],
    "composes_with": [
      "multimodal_extractor v2: Gemini description and OCR text -> E5 description and OCR vectors, and the description feeds the Gemini Embedding 2 vector"
    ]
  },
  "run": {
    "status": "api",
    "status_reason": "Provider API, called from extractor batch steps through CentralLLMService or the Gemini video client; universal__api routes it for POST /v1/inference.",
    "serve_apps": [
      "universal__api"
    ],
    "runtime": "Gemini developer API or Vertex AI (GoogleModel.GEMINI_2_5_FLASH, GoogleProvider)",
    "weights_format": "api",
    "trust_remote_code": false,
    "size_on_disk_mb": null,
    "params_millions": null,
    "preprocessing": "Prompt per extractor; structured output forced to JSON when OCR and description must be split.",
    "postprocessing": "JSON parsed into columns (description, ocr_text, extracted_data).",
    "serving_shape": "batch",
    "batch_size": null,
    "serve_batch": null,
    "scale_to_zero": {
      "min_replicas": 0,
      "max_replicas": 6,
      "idle_timeout_s": 600,
      "memory_gb": null,
      "num_cpus": 0.1,
      "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": "Billed per token by Google; no committed throughput and cost measurement."
  },
  "evidence": {
    "unmeasured": true,
    "items": []
  },
  "refs": [
    "api://google/gemini-2.5-flash"
  ],
  "formats": [
    {
      "ref": "api://google/gemini-2.5-flash",
      "format": "api",
      "file": null,
      "loader": "provider SDK, called by model name",
      "supported_today": true
    }
  ],
  "use_cases": [
    "video-understanding",
    "tagging",
    "captioning",
    "ocr",
    "brand-detection"
  ],
  "recommended": {
    "value": false,
    "for": [],
    "reason": null
  },
  "demos": [],
  "seo": {
    "title": "Gemini 2.5 Flash: language model",
    "description": "Gemini 2.5 Flash is a language model. Called on Mixpeek through the provider API.",
    "keywords": [
      "Gemini 2.5 Flash",
      "gemini",
      "language",
      "gemini-2.5-flash",
      "video-understanding",
      "tagging",
      "captioning",
      "ocr",
      "brand-detection"
    ],
    "faqs": [
      {
        "q": "What is Gemini 2.5 Flash best at?",
        "a": "The extractors' default for structured extraction and vision work: video description and OCR in multimodal_extractor v2, web page extraction, PDF layout (document_graph), scrolling-text OCR."
      },
      {
        "q": "What are the limits of Gemini 2.5 Flash?",
        "a": "It is a thinking model: the thinking budget can eat the output tokens on long extractions (llm_extractor.py comments); slower and costlier than gemini-3.5-flash-lite."
      },
      {
        "q": "Can Gemini 2.5 Flash be used commercially?",
        "a": "Yes. Paid Google API under Google's terms; tenants can bring their own key."
      },
      {
        "q": "How does Gemini 2.5 Flash run on Mixpeek?",
        "a": "Provider API, called from extractor batch steps through CentralLLMService or the Gemini video client; universal__api routes it for POST /v1/inference."
      }
    ]
  },
  "last_verified": "2026-11-05",
  "sources": [
    "https://ai.google.dev/gemini-api/docs/models",
    "https://arxiv.org/abs/2507.06261",
    "server/engine/extractors/multimodal_extractor/v2/pipeline.py",
    "server/engine/extractors/web_scraper/v1/pipeline.py",
    "server/engine/extractors/web_scraper/v1/definition.py",
    "server/engine/extractors/document_graph_extractor/v1/definition.py",
    "server/engine/extractors/text_extractor/v1/pipeline.py",
    "server/engine/extractors/scrolling_text_extractor/v1/processors/scrolling_text_batch.py"
  ],
  "registry": {
    "universal__api": {
      "deployment": "universal__api",
      "service_id": "universal/api",
      "routes": "engine/inference/llm/routes.py",
      "route_prefix": "/universal/api",
      "enabled": true,
      "description": "Universal inference endpoint routing to multiple providers and modalities. Supports: OpenAI (GPT, embeddings, Whisper), Google (Gemini, Vertex embeddings), Anthropic (Claude). Routes based on model parameter.",
      "capabilities": {
        "category": "generation",
        "modality_input": [
          "text"
        ],
        "modality_output": "text",
        "supports_batch": true,
        "reranking_mode": null
      },
      "vector_config": null,
      "serve": {
        "min_replicas": 0,
        "max_replicas": 6,
        "idle_timeout_s": 600,
        "target_ongoing_requests": 25,
        "num_cpus": 0.1,
        "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": [
    "footage-intelligence"
  ],
  "usage": {
    "namespaces": null,
    "collections": null,
    "uncounted": true,
    "templates": 1,
    "counted_at": null,
    "source": null
  },
  "facets": {
    "status": "api",
    "category": "generation",
    "family": "gemini",
    "license": "Google Gemini API / Vertex AI terms of service",
    "commercial_use": true,
    "modalities_in": [
      "text",
      "image",
      "video",
      "document"
    ],
    "modalities_out": [
      "text",
      "structured"
    ],
    "use_cases": [
      "video-understanding",
      "tagging",
      "captioning",
      "ocr",
      "brand-detection"
    ],
    "recommended": false,
    "release_date": "2025-06",
    "params_millions": null,
    "size_on_disk_mb": null,
    "vector_dims": null,
    "vector_distance": null,
    "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": "batch",
    "served": true,
    "ref_schemes": [
      "api"
    ],
    "has_evidence": false,
    "cost_measured": false,
    "template_count": 1,
    "usage_namespaces": null,
    "usage_collections": null,
    "usage_uncounted": true,
    "has_demo": false,
    "rank_score": 3.5
  },
  "rank_score": 3.5
}
