512x512 is not a valid DALL-E 3 size. Default to 1024x1024 and update
the example config to list the supported DALL-E 3 sizes and note the
one-image-per-request limit.
gpt-4o was priced at its launch rate (0.005/0.015). OpenAI later cut
it to $2.50 / $10 per 1M tokens; update to 0.0025/0.01 so /balance
reflects current cost.
Drop gpt-3.5-turbo-16k, gpt-4-1106-preview and gpt-4-vision-preview
from available_text_models and their info blocks. All three are
deprecated/retired by OpenAI; gpt-4o and gpt-4o-mini cover their use
cases (including vision).
Add 'vision: true' to models that can read images: gpt-4o,
gpt-4o-mini, gpt-4-vision-preview, gpt-5.5 and the Claude models.
This lets the bot decide vision support from config instead of
hardcoded model names.
Add Claude Opus 4.8, Claude Sonnet and Claude Haiku as selectable
chat models, routed through OpenRouter (provider: openrouter). Slugs
and pricing taken from the OpenRouter model list. Requires
openrouter_api_key to be set.
Add OpenAI's latest flagship gpt-5.5 as a selectable model, routed
through OpenRouter (provider: openrouter, slug openai/gpt-5.5).
Pricing taken from the OpenRouter model list.
Introduce an optional OpenRouter client (OpenAI-compatible) alongside
the OpenAI one. Models can declare 'provider: openrouter' in
models.yml; ChatGPT now selects the matching client per model via
_get_client_for_model and routes chat completions through it. This
unlocks non-OpenAI models (e.g. Claude) through a single SDK.
Adds openrouter_api_key / openrouter_api_base config options.
OpenAI shut down the legacy text-davinci-003 completions model in
early 2024, so it can no longer be used. Drop it from the available
models list and remove its info block.
The default model is taken from available_text_models[0] (used by
Database.add_new_user and the registration fallback). Move
gpt-4o-mini to the front so new users start on it; gpt-3.5-turbo is
outdated, while gpt-4o-mini is cheaper, smarter and supports vision.
This also makes it the first option in the /settings menu.
chatgpt_price_per_1000_tokens, gpt_price_per_1000_tokens and
whisper_price_per_1_min are not read by config.py; pricing is defined
per model in config/models.yml. Remove them from the example to avoid
implying they have any effect.
Wire gpt-4o-mini through the bot: register it in models.yml
(available list + pricing/scores entry) and add it to the model
sets in openai_utils (chat, streaming, vision and token counting).
gpt-4o-mini is cheaper and smarter than gpt-3.5-turbo and supports
images, so it is a good default-grade option. Addresses #474.
gpt-4-1106-preview, gpt-4-vision-preview and gpt-4o used lowercase
score keys (smart/fast/cheap) while the rest used capitalized ones.
These keys are shown verbatim as labels in /settings, so normalize
them for consistent display.