ExLLM.Providers.Gemini.Files (ex_llm v0.8.1)
View SourceGoogle Gemini Files API implementation.
Provides functionality to upload, manage, and delete files that can be used with Gemini models for multimodal generation.
Summary
Functions
Deletes a file.
Gets metadata for a specific file.
Lists files owned by the requesting project.
Uploads a file to the Gemini API using resumable upload.
Waits for a file to become active (processed).
Types
Functions
Deletes a file.
Parameters
file_name
- The file name (e.g., "files/abc-123")opts
- Options including:config_provider
Examples
:ok = ExLLM.Providers.Gemini.Files.delete_file("files/abc-123")
@spec get_file(String.t(), Keyword.t()) :: {:ok, ExLLM.Providers.Gemini.Files.File.t()} | {:error, term()}
Gets metadata for a specific file.
Parameters
file_name
- The file name (e.g., "files/abc-123")opts
- Options including:config_provider
Examples
{:ok, file} = ExLLM.Providers.Gemini.Files.get_file("files/abc-123")
@spec list_files(list_options()) :: {:ok, %{ files: [ExLLM.Providers.Gemini.Files.File.t()], next_page_token: String.t() | nil }} | {:error, term()}
Lists files owned by the requesting project.
Parameters
opts
- Options including:page_size
,:page_token
, and:config_provider
Examples
{:ok, %{files: files, next_page_token: token}} = ExLLM.Providers.Gemini.Files.list_files(page_size: 10)
@spec upload_file(String.t(), upload_options()) :: {:ok, ExLLM.Providers.Gemini.Files.File.t()} | {:error, term()}
Uploads a file to the Gemini API using resumable upload.
Parameters
file_path
- Path to the file to uploadopts
- Upload options including:display_name
and:config_provider
Examples
{:ok, file} = ExLLM.Providers.Gemini.Files.upload_file("/path/to/image.png", display_name: "My Image")
@spec wait_for_file(String.t(), wait_options()) :: {:ok, ExLLM.Providers.Gemini.Files.File.t()} | {:error, term()}
Waits for a file to become active (processed).
Parameters
file_name
- The file name (e.g., "files/abc-123")opts
- Options including:timeout
,:poll_interval
, and:config_provider
Examples
{:ok, file} = ExLLM.Providers.Gemini.Files.wait_for_file("files/abc-123", timeout: 30_000)