Spectre.Run.InferenceContinuation (Spectre v0.3.3)

Copy Markdown View Source

Portable control-plane state for one logical inference.

Provider processes, credentials, HTTP handles, and callbacks never enter this struct. Each provider attempt is represented by a revision-fenced Spectre.Invocation; restart recovery decides from the persisted provider status and declared adapter capabilities whether a new stream may be opened.

Summary

Types

t()

@type t() :: %Spectre.Run.InferenceContinuation{
  attempt: pos_integer(),
  budget: Spectre.Inference.Budget.t() | nil,
  consumer_token_digest: String.t() | nil,
  control_revision: non_neg_integer(),
  descriptor: Spectre.Inference.Descriptor.t(),
  frozen_selection: Spectre.Inference.FrozenSelection.t() | nil,
  inference_id: String.t(),
  invocation: Spectre.Invocation.t() | nil,
  last_response: Spectre.Inference.Response.t() | nil,
  postprocessor: atom(),
  previous_attempts: [map()],
  provider_request_digest: String.t() | nil,
  provider_request_id: term(),
  provider_status: atom(),
  purpose: atom(),
  recoverable?: boolean(),
  recovery: map() | nil,
  resume_cursor: term(),
  stream_epoch: String.t() | nil,
  stream_output_bytes: non_neg_integer(),
  stream_provider_sequence: non_neg_integer() | nil,
  stream_recovery: map() | nil,
  stream_usage: Spectre.Inference.Usage.t(),
  stream_usage_quality: :provider | :estimated | :unavailable
}