ADK.LLM behaviour (ADK v0.0.1-alpha.1)

Copy Markdown View Source

LLM behaviour and mock implementation for testing.

Summary

Functions

Returns the Gemini backend module.

Generate a response using the configured LLM backend.

Types

response()

@type response() :: %{content: map(), usage_metadata: map() | nil}

Callbacks

generate(model, request)

@callback generate(model :: String.t(), request :: map()) ::
  {:ok, response()} | {:error, term()}

Functions

gemini_backend()

@spec gemini_backend() :: module()

Returns the Gemini backend module.

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

@spec generate(String.t(), map(), keyword()) :: {:ok, response()} | {:error, term()}

Generate a response using the configured LLM backend.

Options

  • :retry - Retry options keyword list, or false to disable (default: enabled with defaults)
  • :circuit_breaker - Circuit breaker server name/pid, or nil to disable (default: nil)

Examples

ADK.LLM.generate("gemini-flash-latest", %{messages: msgs})
ADK.LLM.generate("gemini-flash-latest", %{messages: msgs}, retry: [max_retries: 5])
ADK.LLM.generate("gemini-flash-latest", %{messages: msgs}, retry: false)
ADK.LLM.generate("gemini-flash-latest", %{messages: msgs}, circuit_breaker: :llm_breaker)