From 31d23bc9a72b177e066bd4f3af4449998f778281 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 31 Jan 2025 08:59:26 -0800 Subject: [PATCH] feat: Add model and API key validation with documentation link --- aider/main.py | 4 +++ aider/urls.py | 1 + aider/website/_includes/get-started.md | 12 ++++++-- .../docs/troubleshooting/models-and-keys.md | 28 +++++++++++++++++++ 4 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 aider/website/docs/troubleshooting/models-and-keys.md diff --git a/aider/main.py b/aider/main.py index 3c64b3576..641dd6c91 100644 --- a/aider/main.py +++ b/aider/main.py @@ -765,6 +765,10 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F f"Found {env_key} so using {model_name} since no --model was specified." ) break + if not args.model: + self.io.tool_error("You need to specify a --model and an --api-key to use.") + io.offer_url(urls.models_and_keys, "Open documentation url for more info?") + return 1 main_model = models.Model( args.model, diff --git a/aider/urls.py b/aider/urls.py index 81c3558e8..cff92e36d 100644 --- a/aider/urls.py +++ b/aider/urls.py @@ -14,3 +14,4 @@ install_properly = "https://aider.chat/docs/troubleshooting/imports.html" analytics = "https://aider.chat/docs/more/analytics.html" release_notes = "https://aider.chat/HISTORY.html#release-notes" edit_formats = "https://aider.chat/docs/more/edit-formats.html" +models_and_keys = "https://aider.chat/docs/troubleshooting/models-and-keys.html" diff --git a/aider/website/_includes/get-started.md b/aider/website/_includes/get-started.md index fe2ccd29a..07da34dab 100644 --- a/aider/website/_includes/get-started.md +++ b/aider/website/_includes/get-started.md @@ -8,12 +8,18 @@ aider-install # Change directory into your code base cd /to/your/project -# Work with DeepSeek on your code +# Work with DeepSeek via DeepSeek's API aider --model deepseek --api-key deepseek=your-key-goes-here -# Work with Claude 3.5 Sonnet on your code +# Work with Claude 3.5 Sonnet via Anthropic's API aider --model sonnet --api-key anthropic=your-key-goes-here -# Work with GPT-4o on your code +# Work with GPT-4o via OpenAI's API aider --model gpt-4o --api-key openai=your-key-goes-here + +# Work with Sonnet via OpenRouter's API +aider --model openrouter/anthropic/claude-3.5-sonnet --api-key openrouter=your-key-goes-here + +# Work with DeepSeek via OpenRouter's API +aider --model openrouter/deepseek/deepseek-chat --api-key openrouter=your-key-goes-here ``` diff --git a/aider/website/docs/troubleshooting/models-and-keys.md b/aider/website/docs/troubleshooting/models-and-keys.md new file mode 100644 index 000000000..c6f091d0b --- /dev/null +++ b/aider/website/docs/troubleshooting/models-and-keys.md @@ -0,0 +1,28 @@ +--- +parent: Troubleshooting +nav_order: 28 +--- + +# Models and API keys + +You need to tell aider which LLM to use and provide an API key. +The easiest way is to use the `--model` and `--api-key` +command line arguments, like this: + +``` +# Work with DeepSeek via DeepSeek's API +aider --model deepseek --api-key deepseek=your-key-goes-here + +# Work with Claude 3.5 Sonnet via Anthropic's API +aider --model sonnet --api-key anthropic=your-key-goes-here + +# Work with GPT-4o via OpenAI's API +aider --model gpt-4o --api-key openai=your-key-goes-here + +# Work with Sonnet via OpenRouter's API +aider --model openrouter/anthropic/claude-3.5-sonnet --api-key openrouter=your-key-goes-here + +# Work with DeepSeek via OpenRouter's API +aider --model openrouter/deepseek/deepseek-chat --api-key openrouter=your-key-goes-here +``` +