Skip to main content
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. View source on GitHub

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.
Example: 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.
Example: Add a computed column that applies the model imagen-3.0-generate-002 to an existing Pixeltable column tbl.prompt of the table tbl:
tbl.add_computed_column(response=generate_images(tbl.prompt, model='imagen-3.0-generate-002'))

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.
Example: 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'))