Imp.Clients.TrainingJob (Imp v0.5.0)

Copy Markdown View Source

Provider-neutral finetuning or reinforcement-training job.

Summary

Functions

Returns whether a provider status is a known nonterminal lifecycle state.

Cancels a provider training job when its trainer supplied a cancellation URL.

Returns a JSON-safe, credential-free training job checkpoint.

Restores a training job checkpoint, with transport and credentials supplied explicitly.

Builds a provider-neutral training job.

Normalizes external provider status names into Imp job lifecycle atoms.

Loads and verifies a training job checkpoint from disk.

Rebinds a program to the provider model artifact and optionally persists it.

Atomically persists a credential-free training job checkpoint.

Returns whether a provider status is a known terminal lifecycle state.

Types

t()

@type t() :: %Imp.Clients.TrainingJob{
  api_key: String.t() | nil,
  cancel_body: :job_id | :empty,
  cancel_method: Imp.HTTP.method(),
  cancel_url: String.t() | nil,
  id: String.t(),
  idempotency_key: String.t() | nil,
  max_attempts: pos_integer(),
  metadata: map(),
  model: String.t() | nil,
  provider: atom(),
  result_model: String.t() | nil,
  retry_backoff_ms: non_neg_integer(),
  status: atom() | {:unknown, String.t()},
  status_body: :job_id | :empty,
  status_method: Imp.HTTP.method(),
  status_url: String.t() | nil,
  training_data: list(),
  transport: module() | function() | nil
}

Functions

active_status?(status)

Returns whether a provider status is a known nonterminal lifecycle state.

cancel(job)

Cancels a provider training job when its trainer supplied a cancellation URL.

complete(job, result_model)

dump(job)

Returns a JSON-safe, credential-free training job checkpoint.

fail(job, reason)

load!(state, opts \\ [])

Restores a training job checkpoint, with transport and credentials supplied explicitly.

new(attrs)

Builds a provider-neutral training job.

Status values are normalized at the boundary: common provider strings such as "succeeded", "completed", "queued", and "running" become Imp atoms, while unknown external statuses remain visible as {:unknown, value}.

Attributes may be an atom-key map, string-key map, or keyword list. String-key support is intentional because provider callbacks often start from decoded JSON payloads.

normalize_status(status)

Normalizes external provider status names into Imp job lifecycle atoms.

iex> Imp.Clients.TrainingJob.normalize_status("completed")
:succeeded
iex> Imp.Clients.TrainingJob.normalize_status("queued")
:pending
iex> Imp.Clients.TrainingJob.normalize_status("validating_files")
:pending
iex> Imp.Clients.TrainingJob.normalize_status("provider-paused")
{:unknown, "provider-paused"}

read!(path, opts \\ [])

Loads and verifies a training job checkpoint from disk.

rebind(job, program, opts \\ [])

Rebinds a program to the provider model artifact and optionally persists it.

refresh(job)

save!(job, path)

Atomically persists a credential-free training job checkpoint.

terminal_status?(status)

Returns whether a provider status is a known terminal lifecycle state.