OpenAI Defaults
gpt-6-luna replaces gpt-5.4-mini and gpt-4.1-nano
OpenAI shut down gpt-4.1-nano on October 23, 2026. The bundled openai and
openai-responses presets now default to gpt-6-luna, and all Polyglot docs, the cheatsheet,
and examples that referenced gpt-4.1-nano or gpt-5.4-mini now use gpt-6-luna. Example cost
calculations use the gpt-6-luna standard rates ($0.10 input, $0.01 cached input, $0.50 output
per 1M tokens).
Model catalog records for current OpenAI models
The bundled model catalog adds exact records forgpt-6-luna, gpt-6-sol, gpt-6-astra,
gpt-6.1-sol, gpt-6.1-terra, gpt-5.6-luna, gpt-5.6-sol, and gpt-5.6-terra on both the
openai and openai-responses drivers, including context limits, modalities, and reasoning
facts. The gpt-5.4-mini records were removed.
OpenAI Chat Completions Tool Calls
Current OpenAI reasoning models (gpt-6-*, gpt-5.6-*) reject function tools on
/chat/completions unless reasoning_effort is none, while non-reasoning models such as
gpt-4o-mini reject the reasoning_effort field entirely. Because Instructor uses tool calls by
default, this made structured output fail on the new models.
Model capabilities gain a toolsWithReasoning support fact, so the catalog states what each
offering requires or forbids: unsupported on the openai records for the gpt-6-*,
gpt-6.1-*, and gpt-5.6* models, supported on their openai-responses records. The
openai/gpt-4o-mini record now declares no reasoning controls
(reasoning: {selections: [], default: disabled}), so typed reasoning selections are rejected
before the request is sent.
The openai driver now sends reasoning_effort: none for tool calls only when the exact model
record marks toolsWithReasoning: unsupported and reasoning can be disabled. With a model profile
attached, preflight rejects tool requests that would keep reasoning enabled on such an offering. Non-reasoning and uncataloged
models are sent unchanged, so withModel('gpt-4o-mini'), gpt-4.1-mini, and o3 keep working on
the same preset. Explicit reasoning_effort options and typed withReasoning(...) selections are
never overridden.
Upgrade Notes
- Applications that relied on the bundled
openaioropenai-responsespreset now callgpt-6-luna. Pin a model withwithModel(...)or your own preset to keep a different default. - Unlike
gpt-5.4-mini,gpt-6-lunareasons by default (medium) outside tool calls, and with reasoning enabled it rejectstemperaturevalues other than1. Reasoning tokens count towardmaxTokens, so very small limits (for example 64) can end withlength. Raise the limit, or usewithReasoning(ReasoningSelection::disabled())to restore the previous non-reasoning behavior. - Models that cannot disable reasoning (
gpt-6-astra,gpt-6.1-sol) and requests that combine explicit reasoning with tools need theopenai-responsesdriver. - Tool calls on uncataloged reasoning models still need
reasoning_effort: nonefrom your own options or model record.