Skip to main content
The sail.tinker helpers let you drive Sail inference from a Tinker RL or training loop. They bridge Tinker’s token-level sampling interface to Sail’s raw-token Responses path, so rollouts run against Sail-hosted models (optionally with a LoRA adapter) while logprobs flow back into your training code.
These helpers require tinker-cookbook installed alongside sail. Constructing a SailTokenCompleter without tinker-cookbook available raises sail.InferenceError.

sail.SailTokenCompleter

A Tinker TokenCompleter backed by Sail’s raw-token Responses API: each call sends the prompt token ids via the raw_prompt_tokens request parameter, which skips server-side chat templating and tokenization and forwards the ids verbatim to the model. Construct one with a model and sampling settings, then await it on tokenized prompts to get sampled tokens and their logprobs.

Constructor

Passing both lora and tinker_lora_signed_url, or setting tinker_lora_signed_url without adapter_config, raises ValueError.

async __call__(model_input, stop=None)

  • model_input: must expose a callable .to_ints() returning the prompt token ids (this is Tinker’s ModelInput). A non-callable to_ints, a non-integer token, or an empty prompt raises TypeError/ValueError.
  • stop: optional stop condition. An int is wrapped as a single-element list; a tuple is converted to a list; other values pass through unchanged.
Returns a Tinker TokensWithLogprobs: If the Sail response is malformed (missing or non-integer token data, or mismatched token and logprob lengths), a sail.InferenceError is raised with the offending response attached as exc.response.

get_tinker_checkpoint_signed_url_async

Resolves a Tinker checkpoint path to a signed archive URL, suitable for passing as tinker_lora_signed_url to SailTokenCompleter. It resolves the path against the Tinker service client and returns the signed URL. This helper is async-only and requires a Tinker service client with async checkpoint-URL support. Raises sail.InferenceError if the Tinker client does not provide async checkpoint URL methods, or if the response does not contain a URL.