Skip to main content

module pixeltable.functions.gemini

View source on GitHub Pixeltable UDFs that wrap various endpoints from the Google Gemini API. In order to use them, you must first pip install google-genai and configure your Gemini credentials, as described in the Working with Gemini tutorial.

func invoke_tools()

invoke_tools(
    tools: pixeltable.func.tools.Tools,
    response: pixeltable.exprs.expr.Expr
) -> pixeltable.exprs.inline_expr.InlineDict
Converts an OpenAI response dict to Pixeltable tool invocation format and calls tools._invoke().

udf generate_content()

generate_content(
    contents: String,
    *,
    model: String,
    config: Json | None = None,
    tools: Json | None = None
) -> Json
Generate content from the specified model. For additional details, see: https://ai.google.dev/gemini-api/docs/text-generation Request throttling: Applies the rate limit set in the config (section gemini.rate_limits; use the model id as the key). If no rate limit is configured, uses a default of 600 RPM. Requirements:
  • pip install google-genai
Parameters:
  • contents (String): The input content to generate from.
  • model (String): The name of the model to use.
  • config (Json | None): Configuration for generation, corresponding to keyword arguments of genai.types.GenerateContentConfig. For details on the parameters, see: https://googleapis.github.io/python-genai/genai.html#module-genai.types
  • tools (Json | None): An optional list of Pixeltable tools to use. It is also possible to specify tools manually via the config['tools'] parameter, but at most one of config['tools'] or tools may be used.
Returns:
  • Json: A dictionary containing the response and other metadata.
Examples: Add a computed column that applies the model gemini-2.0-flash to an existing Pixeltable column tbl.prompt of the table tbl:
tbl.add_computed_column(response=generate_content(tbl.prompt, model='gemini-2.0-flash'))

udf generate_images()

generate_images(
    prompt: String,
    *,
    model: String,
    config: Json | None = None
) -> Image
Generates images based on a text description and configuration. For additional details, see: https://ai.google.dev/gemini-api/docs/image-generation Request throttling: Applies the rate limit set in the config (section imagen.rate_limits; use the model id as the key). If no rate limit is configured, uses a default of 600 RPM. Requirements:
  • pip install google-genai
Parameters: Returns:
  • Image: The generated image.
Examples: Add a computed column that applies the model imagen-4.0-generate-001 to an existing Pixeltable column tbl.prompt of the table tbl:
tbl.add_computed_column(response=generate_images(tbl.prompt, model='imagen-4.0-generate-001'))

udf generate_videos()

generate_videos(
    prompt: String | None = None,
    image: Image | None = None,
    *,
    model: String,
    config: Json | None = None
) -> Video
Generates videos based on a text description and configuration. For additional details, see: https://ai.google.dev/gemini-api/docs/video-generation Request throttling: Applies the rate limit set in the config (section veo.rate_limits; use the model id as the key). If no rate limit is configured, uses a default of 600 RPM. Requirements:
  • pip install google-genai
Parameters:
  • prompt (String | None): A text description of the videos to generate.
  • image (Image | None): An optional image to use as the first frame of the video. At least one of prompt or image must be provided. (It is ok to specify both.)
  • model (String): The model to use.
  • config (Json | None): Configuration for generation, corresponding to keyword arguments of genai.types.GenerateVideosConfig. For details on the parameters, see: https://googleapis.github.io/python-genai/genai.html#module-genai.types
Returns:
  • Video: The generated video.
Examples: Add a computed column that applies the model veo-2.0-generate-001 to an existing Pixeltable column tbl.prompt of the table tbl:
tbl.add_computed_column(response=generate_videos(tbl.prompt, model='veo-2.0-generate-001'))