LeXtract.Error.External.Annotation exception (lextract v0.1.2)

View Source

Error for LLM annotation/inference failures.

Raised when LLM API calls fail, including network errors, rate limits, authentication issues, or invalid responses.

Examples

iex> error = LeXtract.Error.External.Annotation.exception(
...>   reason: "API rate limit exceeded"
...> )
iex> Exception.message(error)
"LLM annotation failed: API rate limit exceeded"

iex> error = LeXtract.Error.External.Annotation.exception(
...>   reason: "request timeout",
...>   request_details: %{model: "gemini-2.0-flash", chunk_id: 5}
...> )
iex> String.contains?(Exception.message(error), "gemini-2.0-flash")
true

Summary

Functions

Formats the error message for LLM annotation failures.

Types

t()

@type t() :: %LeXtract.Error.External.Annotation{
  __exception__: true,
  bread_crumbs: term(),
  class: term(),
  path: term(),
  reason: String.t(),
  request_details: map() | nil,
  splode: term(),
  stacktrace: term(),
  vars: term()
}

Functions

exception(args)

@spec exception(opts :: Keyword.t()) :: %LeXtract.Error.External.Annotation{
  __exception__: true,
  bread_crumbs: term(),
  class: term(),
  path: term(),
  reason: term(),
  request_details: term(),
  splode: term(),
  stacktrace: term(),
  vars: term()
}

Create an Elixir.LeXtract.Error.External.Annotation without raising it.

Keys

  • :reason
  • :request_details

message(exception)

@spec message(t()) :: String.t()

Formats the error message for LLM annotation failures.