ExLLM.Providers.Gemini.Content (ex_llm v0.8.1)

View Source

Google Gemini Content Generation API implementation.

Provides functionality for generating content using Gemini models including text generation, streaming, multimodal inputs, function calling, and structured outputs.

Summary

Functions

Converts Content struct to JSON format for API requests.

Generates content using a Gemini model.

Streams content generation using a Gemini model.

Types

options()

@type options() :: [{:config_provider, pid() | atom()}]

Functions

content_to_json(content)

@spec content_to_json(ExLLM.Providers.Gemini.Content.Content.t()) :: map()

Converts Content struct to JSON format for API requests.

generate_content(model, request, opts \\ [])

Generates content using a Gemini model.

Parameters

  • model - The model name (e.g., "gemini-2.0-flash")
  • request - A GenerateContentRequest struct
  • opts - Options including :config_provider

Examples

request = %GenerateContentRequest{
  contents: [
    %Content{
      role: "user",
      parts: [%Part{text: "Hello!"}]
    }
  ]
}

{:ok, response} = ExLLM.Providers.Gemini.Content.generate_content("gemini-2.0-flash", request)

stream_generate_content(model, request, opts \\ [])

@spec stream_generate_content(
  String.t(),
  ExLLM.Providers.Gemini.Content.GenerateContentRequest.t(),
  options()
) :: {:ok, Enumerable.t()} | {:error, term()}

Streams content generation using a Gemini model.

Returns a stream of GenerateContentResponse chunks.