mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-31 17:55:01 +00:00
refactor: Restructure model selection logic with new helper functions
This commit is contained in:
parent
fa3c68fccd
commit
01fdbda728
1 changed files with 21 additions and 12 deletions
|
@ -32,6 +32,16 @@ def select_default_model(args, io, analytics):
|
||||||
if args.model:
|
if args.model:
|
||||||
return args.model # Model already specified
|
return args.model # Model already specified
|
||||||
|
|
||||||
|
|
||||||
|
model = try_to_select_default_model()
|
||||||
|
if model:
|
||||||
|
return model
|
||||||
|
|
||||||
|
offer_openrouter_oauth()
|
||||||
|
return try_to_select_default_model()
|
||||||
|
|
||||||
|
# ai: refactor this into try_to_select_default_model() ai!
|
||||||
|
|
||||||
# Select model based on available API keys
|
# Select model based on available API keys
|
||||||
model_key_pairs = [
|
model_key_pairs = [
|
||||||
("ANTHROPIC_API_KEY", "sonnet"),
|
("ANTHROPIC_API_KEY", "sonnet"),
|
||||||
|
@ -56,8 +66,9 @@ def select_default_model(args, io, analytics):
|
||||||
analytics.event("auto_model_selection", api_key=env_key)
|
analytics.event("auto_model_selection", api_key=env_key)
|
||||||
break
|
break
|
||||||
|
|
||||||
if selected_model:
|
return selected_model
|
||||||
return selected_model
|
|
||||||
|
# ai: refactor this into offer_openrouter_oaut() ...
|
||||||
|
|
||||||
# No API keys found - Offer OpenRouter OAuth
|
# No API keys found - Offer OpenRouter OAuth
|
||||||
io.tool_warning(
|
io.tool_warning(
|
||||||
|
@ -75,16 +86,15 @@ def select_default_model(args, io, analytics):
|
||||||
# Successfully got key via OAuth, use the default OpenRouter model
|
# Successfully got key via OAuth, use the default OpenRouter model
|
||||||
# Ensure OPENROUTER_API_KEY is now set in the environment for later use
|
# Ensure OPENROUTER_API_KEY is now set in the environment for later use
|
||||||
os.environ["OPENROUTER_API_KEY"] = openrouter_key
|
os.environ["OPENROUTER_API_KEY"] = openrouter_key
|
||||||
selected_model = "openrouter/anthropic/claude-3.7-sonnet" # Default OR model
|
|
||||||
io.tool_warning(f"Using {selected_model} model via OpenRouter OAuth.")
|
|
||||||
# Track OAuth success leading to model selection
|
# Track OAuth success leading to model selection
|
||||||
analytics.event("auto_model_selection", api_key="OPENROUTER_API_KEY_OAUTH")
|
analytics.event("oauth_flow_success")
|
||||||
return selected_model
|
return True
|
||||||
else:
|
|
||||||
# OAuth failed or was cancelled by user implicitly (e.g., closing browser)
|
# OAuth failed or was cancelled by user implicitly (e.g., closing browser)
|
||||||
# Error messages are handled within start_openrouter_oauth_flow
|
# Error messages are handled within start_openrouter_oauth_flow
|
||||||
io.tool_error("OpenRouter authentication did not complete successfully.")
|
analytics.event("oauth_flow_failure")
|
||||||
# Fall through to the final error message
|
io.tool_error("OpenRouter authentication did not complete successfully.")
|
||||||
|
# Fall through to the final error message
|
||||||
|
|
||||||
# Final fallback if no key found and OAuth not attempted or failed/declined
|
# Final fallback if no key found and OAuth not attempted or failed/declined
|
||||||
io.tool_error("No model specified and no API key found or configured.")
|
io.tool_error("No model specified and no API key found or configured.")
|
||||||
|
@ -94,7 +104,6 @@ def select_default_model(args, io, analytics):
|
||||||
"or specify both --model and --api-key."
|
"or specify both --model and --api-key."
|
||||||
)
|
)
|
||||||
io.offer_url(urls.models_and_keys, "Open documentation URL for more info?")
|
io.offer_url(urls.models_and_keys, "Open documentation URL for more info?")
|
||||||
analytics.event("auto_model_selection", api_key=None) # Track failure
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue