Repository navigation
title: 'v2.14.2'
v2.14.2 is a maintenance release for Polyglot and Instructor. It moves the bundled OpenAI
defaults off retired models and makes OpenAI Chat Completions tool calls work for both
reasoning and non-reasoning models.
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 for gpt-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 call
gpt-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 toward
maxTokens, so very small limits (for example 64) can end withlength. Raise the limit, or use
withReasoning(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.