From 038f3dc84a6bd444251a12258083d3c209ccb82c Mon Sep 17 00:00:00 2001 From: Ben Wilson Date: Mon, 26 Oct 2026 15:53:49 -0600 Subject: [PATCH] Default forecasting llm to Claude Opus 5.5 when an Anthropic or OpenRouter key is set gpt-6-sol remains the default when only an OpenAI key is available. Co-Authored-By: Claude Opus 5.5 --- forecasting_tools/forecast_bots/forecast_bot.py | 12 +++++++----- .../official_bots/template_bot_2026_fall.py | 4 ++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/forecasting_tools/forecast_bots/forecast_bot.py b/forecasting_tools/forecast_bots/forecast_bot.py index 1e8f88c9..f32c5995 100644 --- a/forecasting_tools/forecast_bots/forecast_bot.py +++ b/forecasting_tools/forecast_bots/forecast_bot.py @@ -957,16 +957,18 @@ def _llm_config_defaults(cls) -> dict[str, str | GeneralLlm | None]: - etc. """ - if os.getenv("OPENAI_API_KEY"): - main_default_llm = GeneralLlm(model="gpt-6-sol", temperature=None) - elif os.getenv("ANTHROPIC_API_KEY"): + if os.getenv("ANTHROPIC_API_KEY"): main_default_llm = GeneralLlm( - model="anthropic/claude-sonnet-5-5", temperature=0.3 + model="anthropic/claude-opus-5-5", temperature=0.3, timeout=160 ) elif os.getenv("OPENROUTER_API_KEY"): main_default_llm = GeneralLlm( - model="openrouter/openai/gpt-6-sol", temperature=None + model="openrouter/anthropic/claude-opus-5.5", + temperature=0.3, + timeout=160, ) + elif os.getenv("OPENAI_API_KEY"): + main_default_llm = GeneralLlm(model="gpt-6-sol", temperature=None) elif os.getenv("METACULUS_TOKEN"): main_default_llm = GeneralLlm(model="metaculus/gpt-6-sol", temperature=None) else: diff --git a/forecasting_tools/forecast_bots/official_bots/template_bot_2026_fall.py b/forecasting_tools/forecast_bots/official_bots/template_bot_2026_fall.py index 66c76b22..bc39ece1 100644 --- a/forecasting_tools/forecast_bots/official_bots/template_bot_2026_fall.py +++ b/forecasting_tools/forecast_bots/official_bots/template_bot_2026_fall.py @@ -76,7 +76,7 @@ class FallTemplateBot2026(ForecastBot): ... llms={ # choose your model names or GeneralLlm llms here, otherwise defaults will be chosen for you "default": GeneralLlm( - model="openrouter/openai/gpt-6-sol", # "anthropic/claude-sonnet-4-20250514", etc (see docs for litellm) + model="openrouter/anthropic/claude-opus-5.5", # "openai/gpt-6-sol", etc (see docs for litellm) temperature=0.3, timeout=160, allowed_tries=2, @@ -713,7 +713,7 @@ def _get_conditional_disclaimer_if_necessary( extra_metadata_in_explanation=True, # llms={ # choose your model names or GeneralLlm llms here, otherwise defaults will be chosen for you # "default": GeneralLlm( - # model="openrouter/openai/gpt-6-sol", # "anthropic/claude-sonnet-4-20250514", etc (see docs for litellm) + # model="openrouter/anthropic/claude-opus-5.5", # "openai/gpt-6-sol", etc (see docs for litellm) # temperature=0.3, # timeout=160, # allowed_tries=2,