mirror of
https://github.com/Aider-AI/aider.git
synced 2025-06-15 09:05:00 +00:00
Merge branch 'main' into mixpanel
This commit is contained in:
commit
068fb38a5d
181 changed files with 141428 additions and 1961 deletions
|
@ -6,20 +6,277 @@ highlight_image: /assets/blame.jpg
|
|||
description: Release notes and stats on aider writing its own code.
|
||||
---
|
||||
|
||||
# Release history
|
||||
|
||||
{% include blame.md %}
|
||||
|
||||
<!--[[[cog
|
||||
# This page is a copy of HISTORY.md, adding the front matter above.
|
||||
text = open("HISTORY.md").read()
|
||||
text = text.replace("# Release history", "")
|
||||
cog.out(text)
|
||||
]]]-->
|
||||
|
||||
# Release history
|
||||
|
||||
|
||||
### main branch
|
||||
|
||||
- Load and save aider slash-commands to files:
|
||||
- `/save <fname>` command will make a file of `/add` and `/read-only` commands that recreate the current file context in the chat.
|
||||
- `/load <fname>` will replay the commands in the file.
|
||||
- You can use `/load` to run any arbitrary set of slash-commands, not just `/add` and `/read-only`.
|
||||
- Use `--load <fname>` to run a list of commands on launch, before the interactive chat begins.
|
||||
- Aider follows litellm's `supports_vision` attribute to enable image support for models.
|
||||
- Bugfix for when diff mode flexibly handles the model using the wrong filename.
|
||||
- Displays filenames in sorted order for `/add` and `/read-only`.
|
||||
- New `--no-fancy-input` switch disables prompt toolkit input, now still available with `--no-pretty`.
|
||||
- Properly support all o1 models, regardless of provider.
|
||||
- Improved handling of API errors, especially when accessing the weak model.
|
||||
|
||||
### Aider v0.60.1
|
||||
|
||||
- Enable image support for Sonnet 10/22.
|
||||
- Display filenames in sorted order.
|
||||
|
||||
### Aider v0.60.0
|
||||
|
||||
- Full support for Sonnet 10/22, the new SOTA model on aider's code editing benchmark.
|
||||
- Aider uses Sonnet 10/22 by default.
|
||||
- Improved formatting of added and read-only files above chat prompt, by @jbellis.
|
||||
- Improved support for o1 models by more flexibly parsing their nonconforming code edit replies.
|
||||
- Corrected diff edit format prompt that only the first match is replaced.
|
||||
- Stronger whole edit format prompt asking for clean file names.
|
||||
- Now offers to add `.env` to the `.gitignore` file.
|
||||
- Ships with a small model metadata json file to handle models not yet updated in litellm.
|
||||
- Model settings for o1 models on azure.
|
||||
- Bugfix to properly include URLs in `/help` RAG results.
|
||||
- Aider wrote 49% of the code in this release.
|
||||
|
||||
### Aider v0.59.1
|
||||
|
||||
- Check for obsolete `yes: true` in yaml config, show helpful error.
|
||||
- Model settings for openrouter/anthropic/claude-3.5-sonnet:beta
|
||||
|
||||
### Aider v0.59.0
|
||||
|
||||
- Improvements to `/read-only`:
|
||||
- Now supports shell-style auto-complete of the full file system.
|
||||
- Still auto-completes the full paths of the repo files like `/add`.
|
||||
- Now supports globs like `src/**/*.py`
|
||||
- Renamed `--yes` to `--yes-always`.
|
||||
- Now uses `AIDER_YES_ALWAYS` env var and `yes-always:` yaml key.
|
||||
- Existing YAML and .env files will need to be updated.
|
||||
- Can still abbreviate to `--yes` on the command line.
|
||||
- Config file now uses standard YAML list syntax with ` - list entries`, one per line.
|
||||
- `/settings` now includes the same announcement lines that would print at launch.
|
||||
- Sanity checks the `--editor-model` on launch now, same as main and weak models.
|
||||
- Added `--skip-sanity-check-repo` switch to speedup launch in large repos.
|
||||
- Bugfix so architect mode handles Control-C properly.
|
||||
- Repo-map is deterministic now, with improved caching logic.
|
||||
- Improved commit message prompt.
|
||||
- Aider wrote 77% of the code in this release.
|
||||
|
||||
### Aider v0.58.1
|
||||
|
||||
- Fixed bug where cache warming pings caused subsequent user messages to trigger a tight loop of LLM requests.
|
||||
|
||||
### Aider v0.58.0
|
||||
|
||||
- [Use a pair of Architect/Editor models for improved coding](https://aider.chat/2024/09/26/architect.html)
|
||||
- Use a strong reasoning model like o1-preview as your Architect.
|
||||
- Use a cheaper, faster model like gpt-4o as your Editor.
|
||||
- New `--o1-preview` and `--o1-mini` shortcuts.
|
||||
- Support for new Gemini 002 models.
|
||||
- Better support for Qwen 2.5 models.
|
||||
- Many confirmation questions can be skipped for the rest of the session with "(D)on't ask again" response.
|
||||
- Autocomplete for `/read-only` supports the entire filesystem.
|
||||
- New settings for completion menu colors.
|
||||
- New `/copy` command to copy the last LLM response to the clipboard.
|
||||
- Renamed `/clipboard` to `/paste`.
|
||||
- Will now follow HTTP redirects when scraping urls.
|
||||
- New `--voice-format` switch to send voice audio as wav/mp3/webm, by @mbailey.
|
||||
- ModelSettings takes `extra_params` dict to specify any extras to pass to `litellm.completion()`.
|
||||
- Support for cursor shapes when in vim mode.
|
||||
- Numerous bug fixes.
|
||||
- Aider wrote 53% of the code in this release.
|
||||
|
||||
### Aider v0.57.1
|
||||
|
||||
- Fixed dependency conflict between aider-chat[help] and [playwright].
|
||||
|
||||
### Aider v0.57.0
|
||||
|
||||
- Support for OpenAI o1 models:
|
||||
- o1-preview now works well with diff edit format.
|
||||
- o1-preview with diff now matches SOTA leaderboard result with whole edit format.
|
||||
- `aider --model o1-mini`
|
||||
- `aider --model o1-preview`
|
||||
- On Windows, `/run` correctly uses PowerShell or cmd.exe.
|
||||
- Support for new 08-2024 Cohere models, by @jalammar.
|
||||
- Can now recursively add directories with `/read-only`.
|
||||
- User input prompts now fall back to simple `input()` if `--no-pretty` or a Windows console is not available.
|
||||
- Improved sanity check of git repo on startup.
|
||||
- Improvements to prompt cache chunking strategy.
|
||||
- Removed "No changes made to git tracked files".
|
||||
- Numerous bug fixes for corner case crashes.
|
||||
- Updated all dependency versions.
|
||||
- Aider wrote 70% of the code in this release.
|
||||
|
||||
### Aider v0.56.0
|
||||
|
||||
- Enables prompt caching for Sonnet via OpenRouter by @fry69
|
||||
- Enables 8k output tokens for Sonnet via VertexAI and DeepSeek V2.5.
|
||||
- New `/report` command to open your browser with a pre-populated GitHub Issue.
|
||||
- New `--chat-language` switch to set the spoken language.
|
||||
- Now `--[no-]suggest-shell-commands` controls both prompting for and offering to execute shell commands.
|
||||
- Check key imports on launch, provide helpful error message if dependencies aren't available.
|
||||
- Renamed `--models` to `--list-models` by @fry69.
|
||||
- Numerous bug fixes for corner case crashes.
|
||||
- Aider wrote 56% of the code in this release.
|
||||
|
||||
### Aider v0.55.0
|
||||
|
||||
- Only print the pip command when self updating on Windows, without running it.
|
||||
- Converted many error messages to warning messages.
|
||||
- Added `--tool-warning-color` setting.
|
||||
- Blanket catch and handle git errors in any `/command`.
|
||||
- Catch and handle glob errors in `/add`, errors writing files.
|
||||
- Disabled built in linter for typescript.
|
||||
- Catch and handle terminals which don't support pretty output.
|
||||
- Catch and handle playwright and pandoc errors.
|
||||
- Catch `/voice` transcription exceptions, show the WAV file so the user can recover it.
|
||||
- Aider wrote 53% of the code in this release.
|
||||
|
||||
### Aider v0.54.12
|
||||
|
||||
- Switched to `vX.Y.Z.dev` version naming.
|
||||
|
||||
### Aider v0.54.11
|
||||
|
||||
- Improved printed pip command output on Windows.
|
||||
|
||||
### Aider v0.54.10
|
||||
|
||||
- Bugfix to test command in platform info.
|
||||
|
||||
### Aider v0.54.9
|
||||
|
||||
- Include important devops files in the repomap.
|
||||
- Print quoted pip install commands to the user.
|
||||
- Adopt setuptools_scm to provide dev versions with git hashes.
|
||||
- Share active test and lint commands with the LLM.
|
||||
- Catch and handle most errors creating new files, reading existing files.
|
||||
- Catch and handle most git errors.
|
||||
- Added --verbose debug output for shell commands.
|
||||
|
||||
### Aider v0.54.8
|
||||
|
||||
- Startup QOL improvements:
|
||||
- Sanity check the git repo and exit gracefully on problems.
|
||||
- Pause for confirmation after model sanity check to allow user to review warnings.
|
||||
- Bug fix for shell commands on Windows.
|
||||
- Do not fuzzy match filenames when LLM is creating a new file, by @ozapinq
|
||||
- Numerous corner case bug fixes submitted via new crash report -> GitHub Issue feature.
|
||||
- Crash reports now include python version, OS, etc.
|
||||
|
||||
### Aider v0.54.7
|
||||
|
||||
- Offer to submit a GitHub issue pre-filled with uncaught exception info.
|
||||
- Bugfix for infinite output.
|
||||
|
||||
### Aider v0.54.6
|
||||
|
||||
- New `/settings` command to show active settings.
|
||||
- Only show cache warming status update if `--verbose`.
|
||||
|
||||
### Aider v0.54.5
|
||||
|
||||
- Bugfix for shell commands on Windows.
|
||||
- Refuse to make git repo in $HOME, warn user.
|
||||
- Don't ask again in current session about a file the user has said not to add to the chat.
|
||||
- Added `--update` as an alias for `--upgrade`.
|
||||
|
||||
### Aider v0.54.4
|
||||
|
||||
- Bugfix to completions for `/model` command.
|
||||
- Bugfix: revert home dir special case.
|
||||
|
||||
### Aider v0.54.3
|
||||
|
||||
- Dependency `watchdog<5` for docker image.
|
||||
|
||||
### Aider v0.54.2
|
||||
|
||||
- When users launch aider in their home dir, help them find/create a repo in a subdir.
|
||||
- Added missing `pexpect` dependency.
|
||||
|
||||
### Aider v0.54.0
|
||||
|
||||
- Added model settings for `gemini/gemini-1.5-pro-exp-0827` and `gemini/gemini-1.5-flash-exp-0827`.
|
||||
- Shell and `/run` commands can now be interactive in environments where a pty is available.
|
||||
- Optionally share output of suggested shell commands back to the LLM.
|
||||
- New `--[no-]suggest-shell-commands` switch to configure shell commands.
|
||||
- Performance improvements for autocomplete in large/mono repos.
|
||||
- New `--upgrade` switch to install latest version of aider from pypi.
|
||||
- Bugfix to `--show-prompt`.
|
||||
- Disabled automatic reply to the LLM on `/undo` for all models.
|
||||
- Removed pager from `/web` output.
|
||||
- Aider wrote 64% of the code in this release.
|
||||
|
||||
### Aider v0.53.0
|
||||
|
||||
- [Keep your prompt cache from expiring](https://aider.chat/docs/usage/caching.html#preventing-cache-expiration) with `--cache-keepalive-pings`.
|
||||
- Pings the API every 5min to keep the cache warm.
|
||||
- You can now bulk accept/reject a series of add url and run shell confirmations.
|
||||
- Improved matching of filenames from S/R blocks with files in chat.
|
||||
- Stronger prompting for Sonnet to make edits in code chat mode.
|
||||
- Stronger prompting for the LLM to specify full file paths.
|
||||
- Improved shell command prompting.
|
||||
- Weak model now uses `extra_headers`, to support Anthropic beta features.
|
||||
- New `--install-main-branch` to update to the latest dev version of aider.
|
||||
- Improved error messages on attempt to add not-git subdir to chat.
|
||||
- Show model metadata info on `--verbose`.
|
||||
- Improved warnings when LLMs env variables aren't set.
|
||||
- Bugfix to windows filenames which contain `\_`.
|
||||
- Aider wrote 59% of the code in this release.
|
||||
|
||||
### Aider v0.52.1
|
||||
|
||||
- Bugfix for NameError when applying edits.
|
||||
|
||||
### Aider v0.52.0
|
||||
|
||||
- Aider now offers to run shell commands:
|
||||
- Launch a browser to view updated html/css/js.
|
||||
- Install new dependencies.
|
||||
- Run DB migrations.
|
||||
- Run the program to exercise changes.
|
||||
- Run new test cases.
|
||||
- `/read` and `/drop` now expand `~` to the home dir.
|
||||
- Show the active chat mode at aider prompt.
|
||||
- New `/reset` command to `/drop` files and `/clear` chat history.
|
||||
- New `--map-multiplier-no-files` to control repo map size multiplier when no files are in the chat.
|
||||
- Reduced default multiplier to 2.
|
||||
- Bugfixes and improvements to auto commit sequencing.
|
||||
- Improved formatting of token reports and confirmation dialogs.
|
||||
- Default OpenAI model is now `gpt-4o-2024-08-06`.
|
||||
- Bumped dependencies to pickup litellm bugfixes.
|
||||
- Aider wrote 68% of the code in this release.
|
||||
|
||||
### Aider v0.51.0
|
||||
|
||||
- Prompt caching for Anthropic models with `--cache-prompts`.
|
||||
- Caches the system prompt, repo map and `/read-only` files.
|
||||
- Repo map recomputes less often in large/mono repos or when caching enabled.
|
||||
- Use `--map-refresh <always|files|manual|auto>` to configure.
|
||||
- Improved cost estimate logic for caching.
|
||||
- Improved editing performance on Jupyter Notebook `.ipynb` files.
|
||||
- Work around litellm tokenizer bug for images.
|
||||
- Show which config yaml file is loaded with `--verbose`.
|
||||
- Bumped dependency versions.
|
||||
- Bugfix: properly load `.aider.models.metadata.json` data.
|
||||
- Bugfix: Using `--msg /ask ...` caused an exception.
|
||||
- Bugfix: litellm tokenizer bug for images.
|
||||
- Aider wrote 56% of the code in this release.
|
||||
|
||||
### Aider v0.50.1
|
||||
|
||||
|
@ -507,7 +764,7 @@ cog.out(text)
|
|||
### Aider v0.14.0
|
||||
|
||||
- [Support for Claude2 and other LLMs via OpenRouter](https://aider.chat/docs/faq.html#accessing-other-llms-with-openrouter) by @joshuavial
|
||||
- Documentation for [running the aider benchmarking suite](https://github.com/paul-gauthier/aider/tree/main/benchmark)
|
||||
- Documentation for [running the aider benchmarking suite](https://github.com/Aider-AI/aider/tree/main/benchmark)
|
||||
- Aider now requires Python >= 3.9
|
||||
|
||||
|
||||
|
@ -552,7 +809,7 @@ cog.out(text)
|
|||
|
||||
- Added `/git` command to run git from inside aider chats.
|
||||
- Use Meta-ENTER (Esc+ENTER in some environments) to enter multiline chat messages.
|
||||
- Create a `.gitignore` with `.aider*` to prevent users from accidentaly adding aider files to git.
|
||||
- Create a `.gitignore` with `.aider*` to prevent users from accidentally adding aider files to git.
|
||||
- Check pypi for newer versions and notify user.
|
||||
- Updated keyboard interrupt logic so that 2 ^C in 2 seconds always forces aider to exit.
|
||||
- Provide GPT with detailed error if it makes a bad edit block, ask for a retry.
|
||||
|
|
|
@ -24,7 +24,7 @@ exclude:
|
|||
|
||||
aux_links:
|
||||
"GitHub":
|
||||
- "https://github.com/paul-gauthier/aider"
|
||||
- "https://github.com/Aider-AI/aider"
|
||||
"Discord":
|
||||
- "https://discord.gg/Tv2uQnR88V"
|
||||
"Blog":
|
||||
|
@ -32,13 +32,17 @@ aux_links:
|
|||
|
||||
nav_external_links:
|
||||
- title: "GitHub"
|
||||
url: "https://github.com/paul-gauthier/aider"
|
||||
url: "https://github.com/Aider-AI/aider"
|
||||
- title: "Discord"
|
||||
url: "https://discord.gg/Tv2uQnR88V"
|
||||
|
||||
repository: paul-gauthier/aider
|
||||
repository: Aider-AI/aider
|
||||
|
||||
callouts:
|
||||
tip:
|
||||
title: Tip
|
||||
color: green
|
||||
color: green
|
||||
note:
|
||||
title: Note
|
||||
color: yellow
|
||||
|
492
aider/website/_data/architect.yml
Normal file
492
aider/website/_data/architect.yml
Normal file
|
@ -0,0 +1,492 @@
|
|||
- dirname: 2024-09-25-21-17-19--architect-sonnet-sonnet-diff
|
||||
test_cases: 133
|
||||
model: claude-3.5-sonnet
|
||||
editor_model: claude-3.5-sonnet
|
||||
editor_edit_format: diff
|
||||
edit_format: architect
|
||||
commit_hash: c18d6a8-dirty
|
||||
pass_rate_1: 62.4
|
||||
pass_rate_2: 80.5
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 3
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 183
|
||||
lazy_comments: 6
|
||||
syntax_errors: 9
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-09-25
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 25.1
|
||||
total_cost: 4.9502
|
||||
|
||||
- dirname: 2024-07-04-14-32-08--claude-3.5-sonnet-diff-continue
|
||||
test_cases: 133
|
||||
model: claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: 35f21b5
|
||||
pass_rate_1: 57.1
|
||||
pass_rate_2: 77.4
|
||||
percent_cases_well_formed: 99.2
|
||||
error_outputs: 23
|
||||
released: 2024-06-20
|
||||
num_malformed_responses: 4
|
||||
num_with_malformed_responses: 1
|
||||
user_asks: 2
|
||||
lazy_comments: 0
|
||||
syntax_errors: 1
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --sonnet
|
||||
date: 2024-07-04
|
||||
versions: 0.42.1-dev
|
||||
seconds_per_case: 17.6
|
||||
total_cost: 3.6346
|
||||
|
||||
- dirname: 2024-09-25-21-25-01--architect-o1mini-4o-jr-diff
|
||||
test_cases: 133
|
||||
model: o1-mini
|
||||
editor_model: gpt-4o
|
||||
editor_edit_format: diff
|
||||
edit_format: architect
|
||||
commit_hash: 3f682ed-dirty, 25e833b
|
||||
pass_rate_1: 51.1
|
||||
pass_rate_2: 70.7
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 12
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 214
|
||||
lazy_comments: 6
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model o1-mini
|
||||
date: 2024-09-25
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 23.7
|
||||
total_cost: 9.3158
|
||||
|
||||
- dirname: 2024-09-26-15-05-58--architect-o1mini-deep-jr-whole
|
||||
test_cases: 133
|
||||
model: o1-mini
|
||||
edit_format: architect
|
||||
commit_hash: 1676653-dirty
|
||||
editor_model: deepseek
|
||||
editor_edit_format: whole
|
||||
pass_rate_1: 51.9
|
||||
pass_rate_2: 71.4
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 199
|
||||
lazy_comments: 11
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model o1-mini
|
||||
date: 2024-09-26
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 48.2
|
||||
total_cost: 5.6069
|
||||
|
||||
- dirname: 2024-09-25-21-33-40--architect-4o-4o-jr-diff
|
||||
test_cases: 133
|
||||
model: gpt-4o
|
||||
editor_model: gpt-4o
|
||||
editor_edit_format: diff
|
||||
edit_format: architect
|
||||
commit_hash: 9f3cd92
|
||||
pass_rate_1: 56.4
|
||||
pass_rate_2: 75.2
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 13
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 207
|
||||
lazy_comments: 8
|
||||
syntax_errors: 1
|
||||
indentation_errors: 1
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 3
|
||||
command: aider --model gpt-4o
|
||||
date: 2024-09-25
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 18.2
|
||||
total_cost: 6.0918
|
||||
|
||||
- dirname: 2024-09-21-16-45-11--o1-preview-flex-sr-markers
|
||||
test_cases: 133
|
||||
model: o1-preview
|
||||
edit_format: diff
|
||||
commit_hash: 5493654-dirty
|
||||
pass_rate_1: 57.9
|
||||
pass_rate_2: 79.7
|
||||
percent_cases_well_formed: 93.2
|
||||
error_outputs: 11
|
||||
num_malformed_responses: 11
|
||||
num_with_malformed_responses: 9
|
||||
user_asks: 3
|
||||
lazy_comments: 0
|
||||
syntax_errors: 10
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model o1-preview
|
||||
date: 2024-09-21
|
||||
versions: 0.56.1.dev
|
||||
seconds_per_case: 80.9
|
||||
total_cost: 63.9190
|
||||
|
||||
- dirname: 2024-09-25-21-39-05--architect-o1preview-4o-jr-diff
|
||||
test_cases: 133
|
||||
model: o1-preview
|
||||
editor_model: gpt-4o
|
||||
editor_edit_format: diff
|
||||
edit_format: architect
|
||||
commit_hash: 9f3cd92
|
||||
pass_rate_1: 63.2
|
||||
pass_rate_2: 80.5
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 23
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 191
|
||||
lazy_comments: 2
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 4
|
||||
command: aider --model o1-preview
|
||||
date: 2024-09-25
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 42.3
|
||||
total_cost: 39.3766
|
||||
|
||||
- dirname: 2024-09-25-21-52-42--architect-o1preview-sonnet-jr-diff
|
||||
test_cases: 133
|
||||
model: o1-preview
|
||||
editor_model: claude-3.5-sonnet
|
||||
editor_edit_format: diff
|
||||
edit_format: architect
|
||||
commit_hash: 9f3cd92
|
||||
editor_model: claude-3-5-sonnet
|
||||
pass_rate_1: 60.9
|
||||
pass_rate_2: 82.7
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 1
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 180
|
||||
lazy_comments: 3
|
||||
syntax_errors: 9
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 3
|
||||
command: aider --model o1-preview
|
||||
date: 2024-09-25
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 44.9
|
||||
total_cost: 37.6192
|
||||
|
||||
- dirname: 2024-09-21-16-40-56--o1-mini-flex-sr-markers
|
||||
test_cases: 36
|
||||
model: o1-mini
|
||||
edit_format: diff
|
||||
commit_hash: 5493654
|
||||
pass_rate_1: 50.0
|
||||
pass_rate_2: 61.1
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 3
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 1
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 0
|
||||
command: aider --model o1-mini
|
||||
date: 2024-09-21
|
||||
versions: 0.56.1.dev
|
||||
seconds_per_case: 26.7
|
||||
total_cost: 2.4226
|
||||
|
||||
- dirname: 2024-09-25-23-12-14--architect-o1mini-deep-jr-diff
|
||||
test_cases: 133
|
||||
model: o1-mini
|
||||
edit_format: architect
|
||||
commit_hash: 9f3cd92-dirty
|
||||
editor_model: deepseek
|
||||
editor_edit_format: diff
|
||||
pass_rate_1: 48.9
|
||||
pass_rate_2: 69.2
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 1
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 202
|
||||
lazy_comments: 12
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model o1-mini
|
||||
date: 2024-09-25
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 52.2
|
||||
total_cost: 5.7927
|
||||
|
||||
- dirname: 2024-09-25-23-18-16--architect-o1preview-deep-jr-diff
|
||||
test_cases: 133
|
||||
model: o1-preview
|
||||
edit_format: architect
|
||||
commit_hash: 9f3cd92-dirty
|
||||
editor_model: deepseek
|
||||
editor_edit_format: diff
|
||||
pass_rate_1: 64.7
|
||||
pass_rate_2: 80.5
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 5
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 180
|
||||
lazy_comments: 2
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model o1-preview
|
||||
date: 2024-09-25
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 73.2
|
||||
total_cost: 35.7887
|
||||
|
||||
- dirname: 2024-09-25-23-30-36--architect-o1preview-deep-jr-whole
|
||||
test_cases: 133
|
||||
model: o1-preview
|
||||
edit_format: architect
|
||||
commit_hash: 9f3cd92-dirty
|
||||
editor_model: deepseek
|
||||
editor_edit_format: whole
|
||||
pass_rate_1: 63.9
|
||||
pass_rate_2: 85.0
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 181
|
||||
lazy_comments: 12
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model o1-preview
|
||||
date: 2024-09-25
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 67.4
|
||||
total_cost: 35.3152
|
||||
|
||||
- dirname: 2024-09-26-15-15-17--architect-sonnet-deep-jr-whole
|
||||
test_cases: 133
|
||||
model: claude-3.5-sonnet
|
||||
edit_format: architect
|
||||
commit_hash: bc1559f-dirty
|
||||
editor_model: deepseek
|
||||
editor_edit_format: whole
|
||||
pass_rate_1: 61.7
|
||||
pass_rate_2: 78.9
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 184
|
||||
lazy_comments: 5
|
||||
syntax_errors: 9
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 3
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-09-26
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 37.2
|
||||
total_cost: 2.1510
|
||||
|
||||
- dirname: 2024-09-26-15-33-28--costs-gpt4o-diff
|
||||
test_cases: 133
|
||||
model: gpt-4o
|
||||
edit_format: diff
|
||||
commit_hash: 89aa385-dirty
|
||||
pass_rate_1: 55.6
|
||||
pass_rate_2: 71.4
|
||||
percent_cases_well_formed: 97.7
|
||||
error_outputs: 5
|
||||
num_malformed_responses: 5
|
||||
num_with_malformed_responses: 3
|
||||
user_asks: 10
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 1
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 0
|
||||
command: aider --model gpt-4o
|
||||
date: 2024-09-26
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 9.7
|
||||
total_cost: 3.8088
|
||||
|
||||
- dirname: 2024-09-26-15-41-08--architect-4o-deep-jr-whole
|
||||
test_cases: 133
|
||||
model: gpt-4o
|
||||
edit_format: architect
|
||||
commit_hash: 89aa385-dirty
|
||||
editor_model: deepseek
|
||||
editor_edit_format: whole
|
||||
pass_rate_1: 60.9
|
||||
pass_rate_2: 73.7
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 187
|
||||
lazy_comments: 12
|
||||
syntax_errors: 5
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model gpt-4o
|
||||
date: 2024-09-26
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 38.0
|
||||
total_cost: 2.4737
|
||||
|
||||
- dirname: 2024-09-26-15-54-08--architect-4o-deep-jr-diff
|
||||
test_cases: 133
|
||||
model: gpt-4o
|
||||
edit_format: architect
|
||||
commit_hash: 89aa385-dirty
|
||||
editor_model: deepseek
|
||||
editor_edit_format: diff
|
||||
pass_rate_1: 57.1
|
||||
pass_rate_2: 74.4
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 4
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 192
|
||||
lazy_comments: 6
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model gpt-4o
|
||||
date: 2024-09-26
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 44.0
|
||||
total_cost: 2.5498
|
||||
|
||||
- dirname: 2024-09-26-16-06-39--architect-sonnet-deep-jr-diff
|
||||
test_cases: 133
|
||||
model: claude-3.5-sonnet
|
||||
edit_format: architect
|
||||
commit_hash: 89aa385-dirty
|
||||
editor_model: deepseek
|
||||
editor_edit_format: diff
|
||||
pass_rate_1: 61.7
|
||||
pass_rate_2: 78.9
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 2
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 184
|
||||
lazy_comments: 2
|
||||
syntax_errors: 9
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-09-26
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 43.2
|
||||
total_cost: 2.1488
|
||||
|
||||
- dirname: 2024-09-27-18-15-32--architect-4omini-4omini
|
||||
test_cases: 133
|
||||
model: gpt-4o-mini
|
||||
edit_format: architect
|
||||
commit_hash: 0bd8058-dirty
|
||||
editor_model: gpt-4o-mini
|
||||
editor_edit_format: whole
|
||||
pass_rate_1: 43.6
|
||||
pass_rate_2: 60.2
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 208
|
||||
lazy_comments: 2
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 3
|
||||
command: aider --model gpt-4o-mini
|
||||
date: 2024-09-27
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 21.0
|
||||
total_cost: 0.1527
|
||||
|
||||
- dirname: 2024-07-18-18-57-46--gpt-4o-mini-whole
|
||||
test_cases: 133
|
||||
model: gpt-4o-mini
|
||||
edit_format: whole
|
||||
commit_hash: d31eef3-dirty
|
||||
pass_rate_1: 40.6
|
||||
pass_rate_2: 55.6
|
||||
released: 2024-07-18
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 1
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 1
|
||||
lazy_comments: 0
|
||||
syntax_errors: 1
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model gpt-4o-mini
|
||||
date: 2024-07-18
|
||||
versions: 0.44.1-dev
|
||||
seconds_per_case: 7.8
|
||||
total_cost: 0.0916
|
||||
|
||||
- dirname: 2024-09-29-22-35-36--architect-o1preview-o1mini-whole
|
||||
test_cases: 133
|
||||
model: o1-preview
|
||||
edit_format: architect
|
||||
commit_hash: 53ca83b
|
||||
editor_model: o1-mini
|
||||
editor_edit_format: whole
|
||||
pass_rate_1: 65.4
|
||||
pass_rate_2: 85.0
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 179
|
||||
lazy_comments: 4
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model o1-preview
|
||||
date: 2024-09-29
|
||||
versions: 0.58.1.dev
|
||||
seconds_per_case: 39.7
|
||||
total_cost: 36.2078
|
File diff suppressed because it is too large
Load diff
|
@ -317,29 +317,6 @@
|
|||
seconds_per_case: 22.9
|
||||
total_cost: 2.7494
|
||||
|
||||
- dirname: 2024-05-09-18-57-52--deepseek-chat-v2-diff-reverted-and-helpful-assistant2
|
||||
test_cases: 133
|
||||
model: DeepSeek Chat V2 (original)
|
||||
released: 2024-05-06
|
||||
edit_format: diff
|
||||
commit_hash: 80a3f6d
|
||||
pass_rate_1: 44.4
|
||||
pass_rate_2: 60.9
|
||||
percent_cases_well_formed: 97.0
|
||||
error_outputs: 14
|
||||
num_malformed_responses: 4
|
||||
user_asks: 2
|
||||
lazy_comments: 0
|
||||
syntax_errors: 13
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 3
|
||||
command: aider --model deepseek/deepseek-chat
|
||||
date: 2024-05-09
|
||||
versions: 0.33.1-dev
|
||||
seconds_per_case: 86.8
|
||||
total_cost: 0.0941
|
||||
|
||||
- dirname: 2024-05-07-20-32-37--qwen1.5-110b-chat-whole
|
||||
test_cases: 133
|
||||
model: qwen1.5-110b-chat
|
||||
|
@ -387,7 +364,7 @@
|
|||
|
||||
- dirname: 2024-05-13-17-39-05--gpt-4o-diff
|
||||
test_cases: 133
|
||||
model: gpt-4o
|
||||
model: gpt-4o-2024-05-13
|
||||
released: 2024-05-13
|
||||
edit_format: diff
|
||||
commit_hash: b6cd852
|
||||
|
@ -407,7 +384,7 @@
|
|||
versions: 0.34.1-dev
|
||||
seconds_per_case: 6.0
|
||||
total_cost: 0.0000
|
||||
|
||||
|
||||
- dirname: 2024-04-12-22-18-20--gpt-4-turbo-2024-04-09-plain-diff
|
||||
test_cases: 33
|
||||
model: gpt-4-turbo-2024-04-09 (diff)
|
||||
|
@ -570,7 +547,7 @@
|
|||
|
||||
- dirname: 2024-07-04-14-32-08--claude-3.5-sonnet-diff-continue
|
||||
test_cases: 133
|
||||
model: claude-3.5-sonnet
|
||||
model: claude-3.5-sonnet-20240620
|
||||
edit_format: diff
|
||||
commit_hash: 35f21b5
|
||||
pass_rate_1: 57.1
|
||||
|
@ -586,7 +563,7 @@
|
|||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --sonnet
|
||||
command: aider --model claude-3.5-sonnet-20240620
|
||||
date: 2024-07-04
|
||||
versions: 0.42.1-dev
|
||||
seconds_per_case: 17.6
|
||||
|
@ -665,7 +642,7 @@
|
|||
|
||||
- dirname: 2024-07-19-08-57-13--openrouter-deepseek-chat-v2-0628
|
||||
test_cases: 133
|
||||
model: DeepSeek Chat V2 0628
|
||||
model: DeepSeek Chat V2 0628 (deprecated)
|
||||
edit_format: diff
|
||||
commit_hash: 96ff06e-dirty
|
||||
pass_rate_1: 60.9
|
||||
|
@ -737,7 +714,7 @@
|
|||
|
||||
- dirname: 2024-07-24-07-10-58--deepseek-coder2-0724-diff-direct
|
||||
test_cases: 133
|
||||
model: DeepSeek Coder V2 0724
|
||||
model: DeepSeek Coder V2 0724 (deprecated)
|
||||
edit_format: diff
|
||||
commit_hash: 89965bf
|
||||
pass_rate_1: 57.9
|
||||
|
@ -855,27 +832,782 @@
|
|||
seconds_per_case: 6.5
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-08-14-13-07-12--chatgpt-4o-latest-diff
|
||||
- dirname: 2024-08-28-07-10-50--gemini-1.5-pro-exp-0827-diff-fenced
|
||||
test_cases: 133
|
||||
model: chatgpt-4o-latest
|
||||
edit_format: diff
|
||||
commit_hash: b1c3769
|
||||
pass_rate_1: 53.4
|
||||
pass_rate_2: 69.2
|
||||
percent_cases_well_formed: 97.7
|
||||
error_outputs: 27
|
||||
num_malformed_responses: 5
|
||||
num_with_malformed_responses: 3
|
||||
user_asks: 7
|
||||
model: gemini-1.5-pro-exp-0827
|
||||
edit_format: diff-fenced
|
||||
commit_hash: d8adc75
|
||||
pass_rate_1: 54.9
|
||||
pass_rate_2: 66.9
|
||||
percent_cases_well_formed: 94.7
|
||||
error_outputs: 112
|
||||
num_malformed_responses: 26
|
||||
num_with_malformed_responses: 7
|
||||
user_asks: 38
|
||||
lazy_comments: 0
|
||||
syntax_errors: 1
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model gemini/gemini-1.5-pro-exp-0827
|
||||
date: 2024-08-28
|
||||
versions: 0.53.1-dev
|
||||
seconds_per_case: 14.5
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-08-27-19-20-19--gemini-1.5-flash-exp-0827
|
||||
test_cases: 133
|
||||
model: gemini-1.5-flash-exp-0827
|
||||
edit_format: whole
|
||||
commit_hash: d8adc75
|
||||
pass_rate_1: 40.6
|
||||
pass_rate_2: 52.6
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 1
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 1
|
||||
lazy_comments: 3
|
||||
syntax_errors: 1
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 4
|
||||
command: aider --model gemini/gemini-1.5-flash-exp-0827
|
||||
date: 2024-08-27
|
||||
versions: 0.53.1-dev
|
||||
seconds_per_case: 6.3
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-08-27-19-42-05--gemini-1.5-flash-8b-exp-0827
|
||||
test_cases: 133
|
||||
model: gemini-1.5-flash-8b-exp-0827
|
||||
edit_format: whole
|
||||
commit_hash: d8adc75
|
||||
pass_rate_1: 31.6
|
||||
pass_rate_2: 38.3
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 12
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 10
|
||||
lazy_comments: 250
|
||||
syntax_errors: 6
|
||||
indentation_errors: 1
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 0
|
||||
command: aider --model gemini/gemini-1.5-flash-8b-exp-0827
|
||||
date: 2024-08-27
|
||||
versions: 0.53.1-dev
|
||||
seconds_per_case: 7.2
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-08-30-15-02-05--nous405b-whole
|
||||
test_cases: 133
|
||||
model: nousresearch/hermes-3-llama-3.1-405b
|
||||
edit_format: whole
|
||||
commit_hash: 2d9d605
|
||||
pass_rate_1: 51.1
|
||||
pass_rate_2: 63.9
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 0
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 0
|
||||
command: aider --model openrouter/nousresearch/hermes-3-llama-3.1-405b
|
||||
date: 2024-08-30
|
||||
versions: 0.54.8-dev
|
||||
seconds_per_case: 38.3
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-09-04-16-08-09--yi-coder-9b-whole
|
||||
test_cases: 133
|
||||
model: Yi Coder 9B Chat
|
||||
edit_format: whole
|
||||
commit_hash: c4e4967
|
||||
pass_rate_1: 46.6
|
||||
pass_rate_2: 54.1
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 9
|
||||
lazy_comments: 0
|
||||
syntax_errors: 14
|
||||
indentation_errors: 2
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 4
|
||||
command: aider --model openai/hf:01-ai/Yi-Coder-9B-Chat --openai-api-base https://glhf.chat/api/openai/v1
|
||||
date: 2024-09-04
|
||||
versions: 0.54.13.dev
|
||||
seconds_per_case: 8.3
|
||||
total_cost: 0.0000
|
||||
released: 2024-09-04
|
||||
|
||||
- dirname: 2024-09-04-16-17-33--yi-coder-9b-chat-q4_0-whole
|
||||
test_cases: 133
|
||||
model: yi-coder:9b-chat-q4_0
|
||||
edit_format: whole
|
||||
commit_hash: c4e4967
|
||||
pass_rate_1: 41.4
|
||||
pass_rate_2: 45.1
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 48
|
||||
lazy_comments: 1
|
||||
syntax_errors: 1
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 0
|
||||
command: aider --model ollama/yi-coder:9b-chat-q4_0
|
||||
date: 2024-09-04
|
||||
versions: 0.54.13.dev
|
||||
seconds_per_case: 125.3
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-09-05-14-50-11--deepseek-sep5-no-shell
|
||||
test_cases: 133
|
||||
model: DeepSeek V2.5
|
||||
edit_format: diff
|
||||
commit_hash: 1279c86
|
||||
pass_rate_1: 54.9
|
||||
pass_rate_2: 72.2
|
||||
percent_cases_well_formed: 96.2
|
||||
error_outputs: 5
|
||||
num_malformed_responses: 5
|
||||
num_with_malformed_responses: 5
|
||||
user_asks: 4
|
||||
lazy_comments: 0
|
||||
syntax_errors: 1
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --deepseek
|
||||
date: 2024-09-05
|
||||
versions: 0.55.1.dev
|
||||
seconds_per_case: 49.6
|
||||
total_cost: 0.0998
|
||||
|
||||
- dirname: 2024-09-06-19-55-17--reflection-hyperbolic-whole-output2
|
||||
test_cases: 133
|
||||
model: Reflection-70B
|
||||
edit_format: whole
|
||||
commit_hash: 74631ee-dirty, 2aef59e-dirty
|
||||
pass_rate_1: 33.1
|
||||
pass_rate_2: 42.1
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 2
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 10
|
||||
lazy_comments: 26
|
||||
syntax_errors: 1
|
||||
indentation_errors: 3
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 3
|
||||
command: (not currently supported)
|
||||
date: 2024-09-06
|
||||
versions: 0.55.1.dev
|
||||
seconds_per_case: 61.6
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-09-11-15-42-17--command-r-plus-08-2024-whole
|
||||
test_cases: 133
|
||||
model: Command R+ (08-24)
|
||||
edit_format: whole
|
||||
commit_hash: b43ed20
|
||||
pass_rate_1: 27.1
|
||||
pass_rate_2: 38.3
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 7
|
||||
lazy_comments: 10
|
||||
syntax_errors: 0
|
||||
indentation_errors: 3
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 4
|
||||
command: aider --model command-r-plus-08-2024
|
||||
date: 2024-09-11
|
||||
versions: 0.56.1.dev
|
||||
seconds_per_case: 20.3
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-09-11-15-47-02--command-r-08-2024-whole
|
||||
test_cases: 133
|
||||
model: Command R (08-24)
|
||||
edit_format: whole
|
||||
commit_hash: b43ed20-dirty
|
||||
pass_rate_1: 30.1
|
||||
pass_rate_2: 38.3
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 4
|
||||
lazy_comments: 0
|
||||
syntax_errors: 1
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model command-r-08-2024
|
||||
date: 2024-09-11
|
||||
versions: 0.56.1.dev
|
||||
seconds_per_case: 7.6
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-09-12-19-57-35--o1-mini-whole
|
||||
test_cases: 133
|
||||
model: o1-mini (whole)
|
||||
edit_format: whole
|
||||
commit_hash: 36fa773-dirty, 291b456
|
||||
pass_rate_1: 49.6
|
||||
pass_rate_2: 70.7
|
||||
percent_cases_well_formed: 90.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 17
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model o1-mini
|
||||
date: 2024-09-12
|
||||
versions: 0.56.1.dev
|
||||
seconds_per_case: 103.0
|
||||
total_cost: 5.3725
|
||||
|
||||
- dirname: 2024-09-21-16-40-56--o1-mini-flex-sr-markers
|
||||
test_cases: 36
|
||||
model: o1-mini
|
||||
edit_format: diff
|
||||
commit_hash: 5493654
|
||||
pass_rate_1: 50.0
|
||||
pass_rate_2: 61.1
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 3
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 1
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 0
|
||||
command: aider --model o1-mini
|
||||
date: 2024-09-21
|
||||
versions: 0.56.1.dev
|
||||
seconds_per_case: 26.7
|
||||
total_cost: 2.4226
|
||||
|
||||
- dirname: 2024-09-21-16-45-11--o1-preview-flex-sr-markers
|
||||
test_cases: 133
|
||||
model: o1-preview
|
||||
edit_format: diff
|
||||
commit_hash: 5493654-dirty
|
||||
pass_rate_1: 57.9
|
||||
pass_rate_2: 79.7
|
||||
percent_cases_well_formed: 93.2
|
||||
error_outputs: 11
|
||||
num_malformed_responses: 11
|
||||
num_with_malformed_responses: 9
|
||||
user_asks: 3
|
||||
lazy_comments: 0
|
||||
syntax_errors: 10
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model o1-preview
|
||||
date: 2024-09-21
|
||||
versions: 0.56.1.dev
|
||||
seconds_per_case: 80.9
|
||||
total_cost: 63.9190
|
||||
|
||||
- dirname: 2024-09-19-16-58-29--qwen2.5-coder:7b-instruct-q8_0
|
||||
test_cases: 133
|
||||
model: qwen2.5-coder:7b-instruct-q8_0
|
||||
edit_format: whole
|
||||
commit_hash: 6f2b064-dirty
|
||||
pass_rate_1: 45.1
|
||||
pass_rate_2: 51.9
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 4
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model ollama/qwen2.5-coder:7b-instruct-q8_0
|
||||
date: 2024-09-19
|
||||
versions: 0.56.0
|
||||
seconds_per_case: 9.3
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-09-20-20-20-19--qwen-2.5-72b-instruct-diff
|
||||
test_cases: 133
|
||||
model: qwen-2.5-72b-instruct (bf16)
|
||||
edit_format: diff
|
||||
commit_hash: 5139594
|
||||
pass_rate_1: 53.4
|
||||
pass_rate_2: 65.4
|
||||
percent_cases_well_formed: 96.2
|
||||
error_outputs: 9
|
||||
num_malformed_responses: 9
|
||||
num_with_malformed_responses: 5
|
||||
user_asks: 3
|
||||
lazy_comments: 0
|
||||
syntax_errors: 2
|
||||
indentation_errors: 1
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 3
|
||||
command: aider --model openrouter/qwen/qwen-2.5-72b-instruct
|
||||
date: 2024-09-20
|
||||
versions: 0.56.1.dev
|
||||
seconds_per_case: 39.8
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-09-21-11-56-43--Codestral-22B-v0.1-Q4_K_M.gguf_whole
|
||||
test_cases: 133
|
||||
model: Codestral-22B-v0.1-Q4_K_M
|
||||
edit_format: whole
|
||||
commit_hash: 2753ac6-dirty
|
||||
pass_rate_1: 36.1
|
||||
pass_rate_2: 48.1
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 8
|
||||
lazy_comments: 6
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 4
|
||||
command: aider --model Codestral-22B-v0.1-Q4_K_M
|
||||
date: 2024-09-21
|
||||
versions: 0.56.1.dev
|
||||
seconds_per_case: 656.4
|
||||
total_cost: 0.9108
|
||||
|
||||
- dirname: 2024-09-24-16-26-45--gemini-1.5-pro-002-diff-fenced
|
||||
test_cases: 133
|
||||
model: gemini-1.5-pro-002
|
||||
edit_format: diff-fenced
|
||||
commit_hash: 6b5fe9b, 3edcd71
|
||||
pass_rate_1: 49.6
|
||||
pass_rate_2: 65.4
|
||||
percent_cases_well_formed: 96.2
|
||||
error_outputs: 17
|
||||
num_malformed_responses: 17
|
||||
num_with_malformed_responses: 5
|
||||
user_asks: 3
|
||||
lazy_comments: 0
|
||||
syntax_errors: 2
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 4
|
||||
command: aider --model gemini/gemini-1.5-pro-002
|
||||
date: 2024-09-24
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 11.6
|
||||
total_cost: 2.8166
|
||||
|
||||
- dirname: 2024-09-24-16-33-23--gemini-1.5-flash-002-whole
|
||||
test_cases: 133
|
||||
model: gemini-1.5-flash-002
|
||||
edit_format: whole
|
||||
commit_hash: 3edcd71
|
||||
pass_rate_1: 37.6
|
||||
pass_rate_2: 51.1
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 3
|
||||
lazy_comments: 0
|
||||
syntax_errors: 1
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model gemini/gemini-1.5-flash-002
|
||||
date: 2024-09-24
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 5.1
|
||||
total_cost: 0.0515
|
||||
|
||||
- dirname: 2024-09-24-15-18-59--gemini-1.5-flash-8b-exp-0924-whole
|
||||
test_cases: 133
|
||||
model: gemini-1.5-flash-8b-exp-0924
|
||||
edit_format: whole
|
||||
commit_hash: 86faaa6
|
||||
pass_rate_1: 33.1
|
||||
pass_rate_2: 38.3
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 9
|
||||
lazy_comments: 6
|
||||
syntax_errors: 8
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model gemini/gemini-1.5-flash-8b-exp-0924
|
||||
date: 2024-09-24
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 6.6
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-09-28-18-30-20--codestral-whole
|
||||
test_cases: 133
|
||||
model: ollama/codestral
|
||||
edit_format: whole
|
||||
commit_hash: 1971285-dirty
|
||||
pass_rate_1: 33.8
|
||||
pass_rate_2: 45.9
|
||||
percent_cases_well_formed: 98.5
|
||||
error_outputs: 8
|
||||
num_malformed_responses: 8
|
||||
num_with_malformed_responses: 2
|
||||
user_asks: 12
|
||||
lazy_comments: 6
|
||||
syntax_errors: 5
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 4
|
||||
command: aider --model ollama/codestral
|
||||
date: 2024-09-28
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 67.2
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-09-29-17-51-11--codegeex4-whole-2
|
||||
test_cases: 133
|
||||
model: ollama/codegeex4
|
||||
edit_format: whole
|
||||
commit_hash: 228ae24
|
||||
pass_rate_1: 28.6
|
||||
pass_rate_2: 32.3
|
||||
percent_cases_well_formed: 97.0
|
||||
error_outputs: 20
|
||||
num_malformed_responses: 20
|
||||
num_with_malformed_responses: 4
|
||||
user_asks: 56
|
||||
lazy_comments: 5
|
||||
syntax_errors: 5
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 4
|
||||
command: aider --model ollama/codegeex4
|
||||
date: 2024-09-29
|
||||
versions: 0.57.2.dev
|
||||
seconds_per_case: 128.1
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-09-30-00-09-00--wojtek-opencodeinterpreter-6.7b-whole-2
|
||||
test_cases: 133
|
||||
model: ollama/wojtek/opencodeinterpreter:6.7b
|
||||
edit_format: whole
|
||||
commit_hash: 6d586fd
|
||||
pass_rate_1: 26.3
|
||||
pass_rate_2: 30.1
|
||||
percent_cases_well_formed: 91.0
|
||||
error_outputs: 18
|
||||
num_malformed_responses: 18
|
||||
num_with_malformed_responses: 12
|
||||
user_asks: 79
|
||||
lazy_comments: 7
|
||||
syntax_errors: 0
|
||||
indentation_errors: 1
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 6
|
||||
command: aider --model ollama/wojtek/opencodeinterpreter:6.7b
|
||||
date: 2024-09-30
|
||||
versions: 0.58.1.dev
|
||||
seconds_per_case: 59.3
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-09-30-03-49-01--mistral-nemo-12b-instruct-2407-q4_K_M-whole-1
|
||||
test_cases: 133
|
||||
model: ollama/mistral-nemo:12b-instruct-2407-q4_K_M
|
||||
edit_format: whole
|
||||
commit_hash: ba4dec8
|
||||
pass_rate_1: 22.6
|
||||
pass_rate_2: 33.1
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 53
|
||||
lazy_comments: 37
|
||||
syntax_errors: 2
|
||||
indentation_errors: 2
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model ollama/mistral-nemo:12b-instruct-2407-q4_K_M
|
||||
date: 2024-09-30
|
||||
versions: 0.58.1.dev
|
||||
seconds_per_case: 34.7
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-09-30-14-09-43--qwen2.5-32b-whole-2
|
||||
test_cases: 133
|
||||
model: ollama/qwen2.5:32b
|
||||
edit_format: whole
|
||||
commit_hash: 765c4cb
|
||||
pass_rate_1: 44.4
|
||||
pass_rate_2: 54.1
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 9
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 3
|
||||
command: aider --model ollama/qwen2.5:32b
|
||||
date: 2024-09-30
|
||||
versions: 0.58.1.dev
|
||||
seconds_per_case: 134.9
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-09-30-19-35-40--llama3.2-3b-instruct-fp16-whole-1
|
||||
test_cases: 133
|
||||
model: ollama/llama3.2:3b-instruct-fp16
|
||||
edit_format: whole
|
||||
commit_hash: 3f12290
|
||||
pass_rate_1: 20.3
|
||||
pass_rate_2: 26.3
|
||||
percent_cases_well_formed: 97.0
|
||||
error_outputs: 21
|
||||
num_malformed_responses: 21
|
||||
num_with_malformed_responses: 4
|
||||
user_asks: 73
|
||||
lazy_comments: 11
|
||||
syntax_errors: 1
|
||||
indentation_errors: 3
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model ollama/llama3.2:3b-instruct-fp16
|
||||
date: 2024-09-30
|
||||
versions: 0.58.1.dev
|
||||
seconds_per_case: 66.6
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-09-30-23-01-24--hermes3-8b-llama3.1-fp16-whole-2
|
||||
test_cases: 133
|
||||
model: ollama/hermes3:8b-llama3.1-fp16
|
||||
edit_format: whole
|
||||
commit_hash: c5ba4f7
|
||||
pass_rate_1: 24.1
|
||||
pass_rate_2: 30.1
|
||||
percent_cases_well_formed: 98.5
|
||||
syntax_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
command: aider --model ollama/hermes3:8b-llama3.1-fp16
|
||||
date: 2024-09-30
|
||||
versions: 0.58.1.dev
|
||||
seconds_per_case: 64.7
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-10-01-02-33-11--mistral-small-whole-1
|
||||
test_cases: 133
|
||||
model: ollama/mistral-small
|
||||
edit_format: whole
|
||||
commit_hash: 8a908fa
|
||||
pass_rate_1: 30.1
|
||||
pass_rate_2: 38.3
|
||||
percent_cases_well_formed: 99.2
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
command: aider --model ollama/mistral-small
|
||||
date: 2024-10-01
|
||||
versions: 0.58.1.dev
|
||||
seconds_per_case: 84.6
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-10-01-07-05-40--yi-coder-9b-chat-fp16-whole-1
|
||||
test_cases: 133
|
||||
model: ollama/yi-coder:9b-chat-fp16
|
||||
edit_format: whole
|
||||
commit_hash: 52c6632-dirty
|
||||
pass_rate_1: 39.8
|
||||
pass_rate_2: 43.6
|
||||
percent_cases_well_formed: 99.2
|
||||
lazy_comments: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
command: aider --model ollama/yi-coder:9b-chat-fp16
|
||||
date: 2024-10-01
|
||||
versions: 0.58.1.dev
|
||||
seconds_per_case: 63.7
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-10-01-16-50-09--hermes3-whole-4
|
||||
test_cases: 133
|
||||
model: ollama/hermes3
|
||||
edit_format: whole
|
||||
commit_hash: 415e898
|
||||
pass_rate_1: 21.1
|
||||
pass_rate_2: 22.6
|
||||
percent_cases_well_formed: 98.5
|
||||
exhausted_context_windows: 0
|
||||
command: aider --model ollama/hermes3
|
||||
date: 2024-10-01
|
||||
versions: 0.58.1.dev
|
||||
seconds_per_case: 24.8
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-10-04-16-30-08--chatgpt-4o-latest-diff-oct4
|
||||
test_cases: 133
|
||||
model: openai/chatgpt-4o-latest
|
||||
edit_format: diff
|
||||
commit_hash: af10953
|
||||
pass_rate_1: 56.4
|
||||
pass_rate_2: 72.2
|
||||
percent_cases_well_formed: 97.0
|
||||
error_outputs: 4
|
||||
num_malformed_responses: 4
|
||||
num_with_malformed_responses: 4
|
||||
user_asks: 21
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model openai/chatgpt-4o-latest
|
||||
date: 2024-08-14
|
||||
released: 2024-08-08
|
||||
versions: 0.50.2-dev
|
||||
seconds_per_case: 26.3
|
||||
total_cost: 3.6113
|
||||
|
||||
date: 2024-10-04
|
||||
versions: 0.58.2.dev
|
||||
seconds_per_case: 23.7
|
||||
total_cost: 4.0641
|
||||
|
||||
- dirname: 2024-10-05-20-03-10--dracarys-glhf-whole
|
||||
test_cases: 133
|
||||
model: Dracarys2-72B-Instruct
|
||||
edit_format: whole
|
||||
commit_hash: 04a2cbb
|
||||
pass_rate_1: 55.6
|
||||
pass_rate_2: 66.9
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 1
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 0
|
||||
command: (via glhf.chat)
|
||||
date: 2024-10-05
|
||||
versions: 0.59.2.dev
|
||||
seconds_per_case: 46.7
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-10-13-21-33-42--grok2-whole
|
||||
test_cases: 133
|
||||
model: Grok-2
|
||||
edit_format: whole
|
||||
commit_hash: 0a497b7
|
||||
pass_rate_1: 45.9
|
||||
pass_rate_2: 58.6
|
||||
percent_cases_well_formed: 98.5
|
||||
error_outputs: 7
|
||||
num_malformed_responses: 7
|
||||
num_with_malformed_responses: 2
|
||||
user_asks: 24
|
||||
lazy_comments: 4
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model openrouter/x-ai/grok-2
|
||||
date: 2024-10-13
|
||||
versions: 0.59.2.dev
|
||||
seconds_per_case: 34.6
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-10-13-23-58-44--grok2mini-whole
|
||||
test_cases: 133
|
||||
model: Grok-2-mini
|
||||
edit_format: whole
|
||||
commit_hash: 0a497b7-dirty, 0a497b7
|
||||
pass_rate_1: 40.6
|
||||
pass_rate_2: 54.9
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 8
|
||||
lazy_comments: 2
|
||||
syntax_errors: 2
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 0
|
||||
command: aider --model openrouter/x-ai/grok-2-mini
|
||||
date: 2024-10-13
|
||||
versions: 0.59.2.dev
|
||||
seconds_per_case: 32.1
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-10-16-15-55-37--nemotron-glhf-whole3
|
||||
test_cases: 133
|
||||
model: Llama-3.1-Nemotron-70B-Instruct-HF
|
||||
edit_format: whole
|
||||
commit_hash: 6bb9b25-dirty
|
||||
pass_rate_1: 36.8
|
||||
pass_rate_2: 54.9
|
||||
percent_cases_well_formed: 99.2
|
||||
error_outputs: 17
|
||||
num_malformed_responses: 1
|
||||
num_with_malformed_responses: 1
|
||||
user_asks: 53
|
||||
lazy_comments: 17
|
||||
syntax_errors: 1
|
||||
indentation_errors: 2
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 3
|
||||
command: (via glhf.chat)
|
||||
date: 2024-10-16
|
||||
versions: 0.59.2.dev
|
||||
seconds_per_case: 64.9
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-10-22-17-45-28--sonnet-1022-diff-fixed-model-settings
|
||||
test_cases: 133
|
||||
model: claude-3-5-sonnet-20241022
|
||||
edit_format: diff
|
||||
commit_hash: 3b14eb9
|
||||
pass_rate_1: 69.2
|
||||
pass_rate_2: 84.2
|
||||
percent_cases_well_formed: 99.2
|
||||
error_outputs: 1
|
||||
num_malformed_responses: 1
|
||||
num_with_malformed_responses: 1
|
||||
user_asks: 0
|
||||
lazy_comments: 1
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 0
|
||||
command: aider --model anthropic/claude-3-5-sonnet-20241022
|
||||
date: 2024-10-22
|
||||
versions: 0.59.2.dev
|
||||
seconds_per_case: 18.6
|
||||
total_cost: 0.0000
|
186
aider/website/_data/o1_results.yml
Normal file
186
aider/website/_data/o1_results.yml
Normal file
|
@ -0,0 +1,186 @@
|
|||
- dirname: 2024-07-18-18-57-46--gpt-4o-mini-whole
|
||||
test_cases: 133
|
||||
model: gpt-4o-mini (whole)
|
||||
edit_format: whole
|
||||
commit_hash: d31eef3-dirty
|
||||
pass_rate_1: 40.6
|
||||
pass_rate_2: 55.6
|
||||
released: 2024-07-18
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 1
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 1
|
||||
lazy_comments: 0
|
||||
syntax_errors: 1
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model gpt-4o-mini
|
||||
date: 2024-07-18
|
||||
versions: 0.44.1-dev
|
||||
seconds_per_case: 7.8
|
||||
total_cost: 0.0916
|
||||
|
||||
- dirname: 2024-07-04-14-32-08--claude-3.5-sonnet-diff-continue
|
||||
test_cases: 133
|
||||
model: claude-3.5-sonnet (diff)
|
||||
edit_format: diff
|
||||
commit_hash: 35f21b5
|
||||
pass_rate_1: 57.1
|
||||
pass_rate_2: 77.4
|
||||
percent_cases_well_formed: 99.2
|
||||
error_outputs: 23
|
||||
released: 2024-06-20
|
||||
num_malformed_responses: 4
|
||||
num_with_malformed_responses: 1
|
||||
user_asks: 2
|
||||
lazy_comments: 0
|
||||
syntax_errors: 1
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --sonnet
|
||||
date: 2024-07-04
|
||||
versions: 0.42.1-dev
|
||||
seconds_per_case: 17.6
|
||||
total_cost: 3.6346
|
||||
|
||||
- dirname: 2024-08-06-18-28-39--gpt-4o-2024-08-06-diff-again
|
||||
test_cases: 133
|
||||
model: gpt-4o-2024-08-06 (diff)
|
||||
edit_format: diff
|
||||
commit_hash: ed9ed89
|
||||
pass_rate_1: 57.1
|
||||
pass_rate_2: 71.4
|
||||
percent_cases_well_formed: 98.5
|
||||
error_outputs: 18
|
||||
num_malformed_responses: 2
|
||||
num_with_malformed_responses: 2
|
||||
user_asks: 10
|
||||
lazy_comments: 0
|
||||
syntax_errors: 6
|
||||
indentation_errors: 2
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 5
|
||||
released: 2024-08-06
|
||||
command: aider --model openai/gpt-4o-2024-08-06
|
||||
date: 2024-08-06
|
||||
versions: 0.48.1-dev
|
||||
seconds_per_case: 6.5
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-09-12-19-57-35--o1-mini-whole
|
||||
test_cases: 133
|
||||
model: o1-mini (whole)
|
||||
edit_format: whole
|
||||
commit_hash: 36fa773-dirty, 291b456
|
||||
pass_rate_1: 49.6
|
||||
pass_rate_2: 70.7
|
||||
percent_cases_well_formed: 90.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 17
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model o1-mini
|
||||
date: 2024-09-12
|
||||
versions: 0.56.1.dev
|
||||
seconds_per_case: 103.0
|
||||
total_cost: 5.3725
|
||||
|
||||
- dirname: 2024-09-12-20-56-22--o1-mini-diff
|
||||
test_cases: 133
|
||||
model: o1-mini (diff)
|
||||
edit_format: diff
|
||||
commit_hash: 4598a37-dirty, 291b456, 752e823-dirty
|
||||
pass_rate_1: 45.1
|
||||
pass_rate_2: 62.4
|
||||
percent_cases_well_formed: 85.7
|
||||
error_outputs: 26
|
||||
num_malformed_responses: 26
|
||||
num_with_malformed_responses: 19
|
||||
user_asks: 2
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model o1-mini --edit-format diff
|
||||
date: 2024-09-12
|
||||
versions: 0.56.1.dev
|
||||
seconds_per_case: 177.7
|
||||
total_cost: 11.1071
|
||||
|
||||
- dirname: 2024-09-05-21-26-49--sonnet-whole-sep5
|
||||
test_cases: 133
|
||||
model: claude-3.5-sonnet (whole)
|
||||
edit_format: whole
|
||||
commit_hash: 8cfdcbd
|
||||
pass_rate_1: 55.6
|
||||
pass_rate_2: 75.2
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 0
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 0
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet --edit-format whole
|
||||
date: 2024-09-05
|
||||
versions: 0.55.1.dev
|
||||
seconds_per_case: 15.2
|
||||
total_cost: 2.3502
|
||||
|
||||
- dirname: 2024-09-12-22-44-14--o1-preview-diff
|
||||
test_cases: 133
|
||||
model: o1-preview (diff)
|
||||
edit_format: diff
|
||||
commit_hash: 72f52bd
|
||||
pass_rate_1: 56.4
|
||||
pass_rate_2: 75.2
|
||||
percent_cases_well_formed: 84.2
|
||||
error_outputs: 27
|
||||
num_malformed_responses: 27
|
||||
num_with_malformed_responses: 21
|
||||
user_asks: 8
|
||||
lazy_comments: 0
|
||||
syntax_errors: 7
|
||||
indentation_errors: 3
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 3
|
||||
command: aider --model o1-preview
|
||||
date: 2024-09-12
|
||||
versions: 0.56.1.dev
|
||||
seconds_per_case: 95.8
|
||||
total_cost: 71.7927
|
||||
|
||||
- dirname: 2024-09-13-02-13-59--o1-preview-whole
|
||||
test_cases: 133
|
||||
model: o1-preview (whole)
|
||||
edit_format: whole
|
||||
commit_hash: 72f52bd-dirty
|
||||
pass_rate_1: 58.6
|
||||
pass_rate_2: 79.7
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 2
|
||||
lazy_comments: 0
|
||||
syntax_errors: 1
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model o1-preview
|
||||
date: 2024-09-13
|
||||
versions: 0.56.1.dev
|
||||
seconds_per_case: 47.4
|
||||
total_cost: 38.0612
|
|
@ -145,7 +145,7 @@
|
|||
|
||||
- dirname: 2024-07-01-18-30-33--refac-claude-3.5-sonnet-diff-not-lazy
|
||||
test_cases: 89
|
||||
model: claude-3.5-sonnet (diff)
|
||||
model: claude-3.5-sonnet-20240620
|
||||
edit_format: diff
|
||||
commit_hash: 7396e38-dirty
|
||||
pass_rate_1: 64.0
|
||||
|
@ -167,7 +167,7 @@
|
|||
|
||||
- dirname: 2024-07-24-07-49-39--refac-deepseek-coder-v2-0724
|
||||
test_cases: 89
|
||||
model: DeepSeek Coder V2 0724
|
||||
model: DeepSeek Coder V2 0724 (deprecated)
|
||||
edit_format: diff
|
||||
commit_hash: bb6e597
|
||||
pass_rate_1: 32.6
|
||||
|
@ -208,4 +208,91 @@
|
|||
versions: 0.48.1-dev
|
||||
seconds_per_case: 16.9
|
||||
total_cost: 4.0873
|
||||
|
||||
|
||||
- dirname: 2024-09-05-15-19-05--refac-deepseek-v2.5-no-shell
|
||||
test_cases: 89
|
||||
model: DeepSeek Chat V2.5
|
||||
edit_format: diff
|
||||
commit_hash: 1279c86, 1279c86-dirty
|
||||
pass_rate_1: 31.5
|
||||
percent_cases_well_formed: 67.4
|
||||
error_outputs: 90
|
||||
num_malformed_responses: 88
|
||||
num_with_malformed_responses: 29
|
||||
user_asks: 8
|
||||
lazy_comments: 7
|
||||
syntax_errors: 0
|
||||
indentation_errors: 6
|
||||
exhausted_context_windows: 2
|
||||
test_timeouts: 0
|
||||
command: aider --deepseek
|
||||
date: 2024-09-05
|
||||
versions: 0.55.1.dev
|
||||
seconds_per_case: 225.4
|
||||
total_cost: 1.0338
|
||||
|
||||
- dirname: 2024-10-22-19-57-27--refac-openrouter-sonnet-1022
|
||||
test_cases: 89
|
||||
model: claude-3-5-sonnet-20241022
|
||||
edit_format: diff
|
||||
commit_hash: 4a3e6ef
|
||||
pass_rate_1: 92.1
|
||||
percent_cases_well_formed: 91.0
|
||||
error_outputs: 13
|
||||
num_malformed_responses: 12
|
||||
num_with_malformed_responses: 8
|
||||
user_asks: 14
|
||||
lazy_comments: 2
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 0
|
||||
command: aider --sonnet
|
||||
date: 2024-10-22
|
||||
versions: 0.60.1.dev
|
||||
seconds_per_case: 32.5
|
||||
total_cost: 8.4644
|
||||
|
||||
- dirname: 2024-10-22-20-03-10--refac-o1mini
|
||||
test_cases: 89
|
||||
model: o1-mini
|
||||
edit_format: diff
|
||||
commit_hash: 4a3e6ef-dirty
|
||||
pass_rate_1: 44.9
|
||||
percent_cases_well_formed: 29.2
|
||||
error_outputs: 151
|
||||
num_malformed_responses: 150
|
||||
num_with_malformed_responses: 63
|
||||
user_asks: 28
|
||||
lazy_comments: 2
|
||||
syntax_errors: 5
|
||||
indentation_errors: 4
|
||||
exhausted_context_windows: 1
|
||||
test_timeouts: 0
|
||||
command: aider --model o1-mini
|
||||
date: 2024-10-22
|
||||
versions: 0.60.1.dev
|
||||
seconds_per_case: 115.3
|
||||
total_cost: 29.0492
|
||||
|
||||
- dirname: 2024-10-22-20-26-36--refac-o1preview
|
||||
test_cases: 89
|
||||
model: o1-preview
|
||||
edit_format: diff
|
||||
commit_hash: 4a3e6ef-dirty
|
||||
pass_rate_1: 75.3
|
||||
percent_cases_well_formed: 57.3
|
||||
error_outputs: 75
|
||||
num_malformed_responses: 74
|
||||
num_with_malformed_responses: 38
|
||||
user_asks: 19
|
||||
lazy_comments: 2
|
||||
syntax_errors: 2
|
||||
indentation_errors: 3
|
||||
exhausted_context_windows: 1
|
||||
test_timeouts: 0
|
||||
command: aider --model o1-preview
|
||||
date: 2024-10-22
|
||||
versions: 0.60.1.dev
|
||||
seconds_per_case: 231.7
|
||||
total_cost: 120.9850
|
459
aider/website/_data/sonnet-fine.yml
Normal file
459
aider/website/_data/sonnet-fine.yml
Normal file
|
@ -0,0 +1,459 @@
|
|||
- dirname: 2024-06-20-15-16-41--claude-3.5-sonnet-diff
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: 068609e-dirty
|
||||
pass_rate_1: 57.9
|
||||
pass_rate_2: 74.4
|
||||
percent_cases_well_formed: 97.0
|
||||
error_outputs: 48
|
||||
num_malformed_responses: 11
|
||||
num_with_malformed_responses: 4
|
||||
user_asks: 0
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-06-20
|
||||
versions: 0.38.1-dev
|
||||
seconds_per_case: 21.6
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-06-24-12-48-43--claude-3.5-sonnet-udiff
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: udiff
|
||||
commit_hash: 7be08c7
|
||||
pass_rate_1: 62.4
|
||||
pass_rate_2: 74.4
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 10
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 10
|
||||
lazy_comments: 0
|
||||
syntax_errors: 1
|
||||
indentation_errors: 2
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-06-24
|
||||
versions: 0.39.1-dev
|
||||
seconds_per_case: 14.3
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-06-24-17-44-31--claude-3.5-sonnet-diff-less-chatty
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: 0d484e5
|
||||
pass_rate_1: 57.9
|
||||
pass_rate_2: 74.4
|
||||
percent_cases_well_formed: 99.2
|
||||
error_outputs: 14
|
||||
num_malformed_responses: 3
|
||||
num_with_malformed_responses: 1
|
||||
user_asks: 2
|
||||
lazy_comments: 0
|
||||
syntax_errors: 1
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 4
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-06-24
|
||||
versions: 0.39.1-dev
|
||||
seconds_per_case: 16.0
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-06-24-17-50-46--claude-3.5-sonnet-diff-less-chatty2
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: 3015495
|
||||
pass_rate_1: 59.4
|
||||
pass_rate_2: 76.7
|
||||
percent_cases_well_formed: 99.2
|
||||
error_outputs: 5
|
||||
num_malformed_responses: 1
|
||||
num_with_malformed_responses: 1
|
||||
user_asks: 1
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 1
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-06-24
|
||||
versions: 0.39.1-dev
|
||||
seconds_per_case: 15.7
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-06-24-17-56-40--claude-3.5-sonnet-diff-less-chatty-sys-examples
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: 3015495-dirty
|
||||
pass_rate_1: 58.6
|
||||
pass_rate_2: 75.9
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 2
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 0
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 3
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-06-24
|
||||
versions: 0.39.1-dev
|
||||
seconds_per_case: 15.9
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-07-04-14-32-08--claude-3.5-sonnet-diff-continue
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: 35f21b5
|
||||
pass_rate_1: 57.1
|
||||
pass_rate_2: 77.4
|
||||
percent_cases_well_formed: 99.2
|
||||
error_outputs: 23
|
||||
num_malformed_responses: 4
|
||||
num_with_malformed_responses: 1
|
||||
user_asks: 2
|
||||
lazy_comments: 0
|
||||
syntax_errors: 1
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-07-04
|
||||
versions: 0.42.1-dev
|
||||
seconds_per_case: 17.6
|
||||
total_cost: 3.6346
|
||||
|
||||
- dirname: 2024-07-06-19-39-59--claude-3.5-sonnet-diff-platform
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: e47c2a9-dirty
|
||||
pass_rate_1: 57.9
|
||||
pass_rate_2: 78.2
|
||||
percent_cases_well_formed: 100.0
|
||||
error_outputs: 0
|
||||
num_malformed_responses: 0
|
||||
num_with_malformed_responses: 0
|
||||
user_asks: 0
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-07-06
|
||||
versions: 0.42.1-dev
|
||||
seconds_per_case: 14.6
|
||||
total_cost: 3.5616
|
||||
|
||||
- dirname: 2024-07-24-17-11-07--claude-3.5-sonnet-diff-july24
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: 859a13e
|
||||
pass_rate_1: 59.4
|
||||
pass_rate_2: 78.2
|
||||
percent_cases_well_formed: 99.2
|
||||
error_outputs: 6
|
||||
num_malformed_responses: 1
|
||||
num_with_malformed_responses: 1
|
||||
user_asks: 1
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-07-24
|
||||
versions: 0.45.2-dev
|
||||
seconds_per_case: 16.9
|
||||
total_cost: 3.4981
|
||||
|
||||
- dirname: 2024-07-28-20-23-42--claude-3.5-sonnet-diff-no-reminder
|
||||
test_cases: 94
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: e799e89-dirty
|
||||
pass_rate_1: 59.6
|
||||
pass_rate_2: 83.0
|
||||
percent_cases_well_formed: 98.9
|
||||
error_outputs: 12
|
||||
num_malformed_responses: 2
|
||||
num_with_malformed_responses: 1
|
||||
user_asks: 2
|
||||
lazy_comments: 0
|
||||
syntax_errors: 1
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-07-28
|
||||
versions: 0.45.2-dev
|
||||
seconds_per_case: 15.7
|
||||
total_cost: 2.4340
|
||||
|
||||
- dirname: 2024-08-14-00-46-09--claude-3.5-sonnet-diff-no-ipynb-again
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: 139f799
|
||||
pass_rate_1: 57.9
|
||||
pass_rate_2: 75.9
|
||||
percent_cases_well_formed: 98.5
|
||||
error_outputs: 22
|
||||
num_malformed_responses: 5
|
||||
num_with_malformed_responses: 2
|
||||
user_asks: 249
|
||||
lazy_comments: 0
|
||||
syntax_errors: 1
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-08-14
|
||||
versions: 0.50.1-dev
|
||||
seconds_per_case: 18.0
|
||||
total_cost: 3.7058
|
||||
|
||||
- dirname: 2024-06-21-00-07-01--claude-3.5-sonnet-do-over
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: fb26174-dirty
|
||||
pass_rate_1: 59.4
|
||||
pass_rate_2: 80.5
|
||||
percent_cases_well_formed: 99.2
|
||||
error_outputs: 20
|
||||
num_malformed_responses: 4
|
||||
num_with_malformed_responses: 1
|
||||
user_asks: 1
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-06-21
|
||||
versions: 0.39.1-dev
|
||||
seconds_per_case: 18.3
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-06-21-00-18-25--claude-3.5-sonnet-do-over2
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: fb26174-dirty
|
||||
pass_rate_1: 58.6
|
||||
pass_rate_2: 77.4
|
||||
percent_cases_well_formed: 98.5
|
||||
error_outputs: 22
|
||||
num_malformed_responses: 4
|
||||
num_with_malformed_responses: 2
|
||||
user_asks: 0
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 0
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-06-21
|
||||
versions: 0.39.1-dev
|
||||
seconds_per_case: 17.3
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-06-24-00-09-40--claude-3.5-sonnet-chatty
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: b44c246-dirty
|
||||
pass_rate_1: 59.4
|
||||
pass_rate_2: 75.2
|
||||
percent_cases_well_formed: 98.5
|
||||
error_outputs: 21
|
||||
num_malformed_responses: 5
|
||||
num_with_malformed_responses: 2
|
||||
user_asks: 0
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-06-24
|
||||
versions: 0.39.1-dev
|
||||
seconds_per_case: 15.7
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-06-24-00-33-35--claude-3.5-sonnet-chatty-do-over
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: bc1dfa3
|
||||
pass_rate_1: 58.6
|
||||
pass_rate_2: 76.7
|
||||
percent_cases_well_formed: 97.7
|
||||
error_outputs: 26
|
||||
num_malformed_responses: 6
|
||||
num_with_malformed_responses: 3
|
||||
user_asks: 0
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-06-24
|
||||
versions: 0.39.1-dev
|
||||
seconds_per_case: 16.4
|
||||
total_cost: 0.0000
|
||||
|
||||
- dirname: 2024-08-18-19-57-30--claude-3.5-sonnet-aug18
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: 5099a5c
|
||||
pass_rate_1: 54.9
|
||||
pass_rate_2: 78.9
|
||||
percent_cases_well_formed: 97.7
|
||||
error_outputs: 47
|
||||
num_malformed_responses: 11
|
||||
num_with_malformed_responses: 3
|
||||
user_asks: 0
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-08-18
|
||||
versions: 0.50.2-dev
|
||||
seconds_per_case: 22.3
|
||||
total_cost: 3.9008
|
||||
|
||||
- dirname: 2024-08-18-20-23-50--claude-3.5-sonnet-aug18-cache-prompts
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: 53db8cf-dirty
|
||||
pass_rate_1: 56.4
|
||||
pass_rate_2: 78.9
|
||||
percent_cases_well_formed: 97.7
|
||||
error_outputs: 16
|
||||
num_malformed_responses: 4
|
||||
num_with_malformed_responses: 3
|
||||
user_asks: 0
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 3
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-08-18
|
||||
versions: 0.50.2-dev
|
||||
seconds_per_case: 21.1
|
||||
total_cost: 3.6918
|
||||
|
||||
- dirname: 2024-08-18-23-11-04--claude-3.5-sonnet-aug18-cache-prompts-cold
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: 53db8cf-dirty
|
||||
pass_rate_1: 56.4
|
||||
pass_rate_2: 78.2
|
||||
percent_cases_well_formed: 97.0
|
||||
error_outputs: 30
|
||||
num_malformed_responses: 7
|
||||
num_with_malformed_responses: 4
|
||||
user_asks: 1
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-08-18
|
||||
versions: 0.50.2-dev
|
||||
seconds_per_case: 21.8
|
||||
total_cost: 3.7858
|
||||
|
||||
- dirname: 2024-08-21-01-07-39--sonnet-diff-cache
|
||||
test_cases: 133
|
||||
model: claude-3-5-sonnet-20240620
|
||||
edit_format: diff
|
||||
commit_hash: e12157b-dirty
|
||||
pass_rate_1: 57.1
|
||||
pass_rate_2: 82.0
|
||||
percent_cases_well_formed: 98.5
|
||||
error_outputs: 12
|
||||
num_malformed_responses: 2
|
||||
num_with_malformed_responses: 2
|
||||
user_asks: 0
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 0
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 2
|
||||
command: aider --model claude-3-5-sonnet-20240620
|
||||
date: 2024-08-21
|
||||
versions: 0.51.2-dev
|
||||
seconds_per_case: 14.5
|
||||
total_cost: 3.1795
|
||||
|
||||
- dirname: 2024-08-21-00-50-49--shell-cmds-sonnet-user-remind
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: 919ea05
|
||||
pass_rate_1: 63.2
|
||||
pass_rate_2: 79.7
|
||||
percent_cases_well_formed: 98.5
|
||||
error_outputs: 18
|
||||
num_malformed_responses: 4
|
||||
num_with_malformed_responses: 2
|
||||
user_asks: 26
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 2
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-08-21
|
||||
versions: 0.51.2-dev
|
||||
seconds_per_case: 16.3
|
||||
total_cost: 3.4738
|
||||
|
||||
- dirname: 2024-08-21-00-55-30--shell-cmds-sonnet-no-user-remind
|
||||
test_cases: 133
|
||||
model: openrouter/anthropic/claude-3.5-sonnet
|
||||
edit_format: diff
|
||||
commit_hash: 5c7707a
|
||||
pass_rate_1: 63.9
|
||||
pass_rate_2: 80.5
|
||||
percent_cases_well_formed: 97.7
|
||||
error_outputs: 51
|
||||
num_malformed_responses: 12
|
||||
num_with_malformed_responses: 3
|
||||
user_asks: 24
|
||||
lazy_comments: 0
|
||||
syntax_errors: 0
|
||||
indentation_errors: 1
|
||||
exhausted_context_windows: 0
|
||||
test_timeouts: 1
|
||||
command: aider --model openrouter/anthropic/claude-3.5-sonnet
|
||||
date: 2024-08-21
|
||||
versions: 0.51.2-dev
|
||||
seconds_per_case: 17.7
|
||||
total_cost: 3.8990
|
|
@ -1,5 +1,5 @@
|
|||
<canvas id="blameChart" width="800" height="360" style="margin-top: 20px"></canvas>
|
||||
<canvas id="linesChart" width="800" height="360" style="margin-top: 20px"></canvas>
|
||||
<canvas id="blameChart" width="800" height="360" style="margin-top: 20px"></canvas>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/moment"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-moment"></script>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
You can get started quickly like this:
|
||||
|
||||
```
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
|
||||
# Change directory into a git repo
|
||||
cd /to/your/git/repo
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
If you need more help, please check our
|
||||
[GitHub issues](https://github.com/paul-gauthier/aider/issues)
|
||||
[GitHub issues](https://github.com/Aider-AI/aider/issues)
|
||||
and file a new issue if your problem isn't discussed.
|
||||
Or drop into our
|
||||
[Discord](https://discord.gg/Tv2uQnR88V)
|
||||
|
|
170
aider/website/_includes/leaderboard_graph.html
Normal file
170
aider/website/_includes/leaderboard_graph.html
Normal file
|
@ -0,0 +1,170 @@
|
|||
<canvas id="{{ include.chart_id }}" width="800" height="450" style="margin-top: 20px"></canvas>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
var ctx = document.getElementById('{{ include.chart_id }}').getContext('2d');
|
||||
var leaderboardData = {
|
||||
labels: [],
|
||||
datasets: [{
|
||||
label: 'Percent completed correctly',
|
||||
data: [],
|
||||
backgroundColor: [],
|
||||
borderColor: [],
|
||||
borderWidth: 1
|
||||
}]
|
||||
};
|
||||
|
||||
var allData = [];
|
||||
{% for row in include.data %}
|
||||
allData.push({
|
||||
model: '{{ row.model }}',
|
||||
pass_rate: {{ row[include.pass_rate_key] }},
|
||||
percent_cases_well_formed: {{ row.percent_cases_well_formed }},
|
||||
edit_format: '{{ row.edit_format }}'
|
||||
});
|
||||
{% endfor %}
|
||||
|
||||
function updateChart() {
|
||||
var selectedRows = document.querySelectorAll('tr.selected');
|
||||
var showAll = selectedRows.length === 0;
|
||||
|
||||
leaderboardData.labels = [];
|
||||
leaderboardData.datasets[0].data = [];
|
||||
leaderboardData.datasets[0].backgroundColor = [];
|
||||
leaderboardData.datasets[0].borderColor = [];
|
||||
|
||||
allData.forEach(function(row, index) {
|
||||
var rowElement = document.getElementById('{{ include.row_prefix }}-' + index);
|
||||
if (showAll) {
|
||||
rowElement.classList.remove('selected');
|
||||
}
|
||||
if (showAll || rowElement.classList.contains('selected')) {
|
||||
leaderboardData.labels.push(row.model);
|
||||
leaderboardData.datasets[0].data.push(row.pass_rate);
|
||||
|
||||
switch (row.edit_format) {
|
||||
case 'whole':
|
||||
leaderboardData.datasets[0].backgroundColor.push('rgba(255, 99, 132, 0.2)');
|
||||
leaderboardData.datasets[0].borderColor.push('rgba(255, 99, 132, 1)');
|
||||
break;
|
||||
case 'diff':
|
||||
leaderboardData.datasets[0].backgroundColor.push('rgba(54, 162, 235, 0.2)');
|
||||
leaderboardData.datasets[0].borderColor.push('rgba(54, 162, 235, 1)');
|
||||
break;
|
||||
case 'udiff':
|
||||
leaderboardData.datasets[0].backgroundColor.push('rgba(75, 192, 192, 0.2)');
|
||||
leaderboardData.datasets[0].borderColor.push('rgba(75, 192, 192, 1)');
|
||||
break;
|
||||
case 'diff-fenced':
|
||||
leaderboardData.datasets[0].backgroundColor.push('rgba(153, 102, 255, 0.2)');
|
||||
leaderboardData.datasets[0].borderColor.push('rgba(153, 102, 255, 1)');
|
||||
break;
|
||||
default:
|
||||
leaderboardData.datasets[0].backgroundColor.push('rgba(201, 203, 207, 0.2)');
|
||||
leaderboardData.datasets[0].borderColor.push('rgba(201, 203, 207, 1)');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Apply legend filtering
|
||||
var meta = leaderboardChart.getDatasetMeta(0);
|
||||
meta.data.forEach(function(bar, index) {
|
||||
if (leaderboardData.labels.includes(allData[index].model)) {
|
||||
bar.hidden = (allData[index].edit_format === 'whole' && meta.data[0].hidden) ||
|
||||
(allData[index].edit_format !== 'whole' && meta.data[1].hidden);
|
||||
} else {
|
||||
bar.hidden = true;
|
||||
}
|
||||
});
|
||||
|
||||
leaderboardChart.update();
|
||||
}
|
||||
|
||||
var tableBody = document.querySelector('table tbody');
|
||||
allData.forEach(function(row, index) {
|
||||
var tr = tableBody.children[index];
|
||||
tr.id = '{{ include.row_prefix }}-' + index;
|
||||
tr.style.cursor = 'pointer';
|
||||
tr.onclick = function() {
|
||||
this.classList.toggle('selected');
|
||||
updateChart();
|
||||
};
|
||||
});
|
||||
|
||||
var leaderboardChart = new Chart(ctx, {
|
||||
type: 'bar',
|
||||
data: leaderboardData,
|
||||
options: {
|
||||
scales: {
|
||||
y: {
|
||||
beginAtZero: true,
|
||||
title: {
|
||||
display: true,
|
||||
text: 'Correct Exercises (%)'
|
||||
}
|
||||
},
|
||||
x: {
|
||||
ticks: {
|
||||
autoSkip: false,
|
||||
maxRotation: 90,
|
||||
minRotation: 0
|
||||
}
|
||||
}
|
||||
},
|
||||
plugins: {
|
||||
legend: {
|
||||
display: true,
|
||||
position: 'top',
|
||||
labels: {
|
||||
generateLabels: function(chart) {
|
||||
var uniqueFormats = [...new Set(allData.map(item => item.edit_format))];
|
||||
return uniqueFormats.map(format => {
|
||||
var color;
|
||||
switch (format) {
|
||||
case 'whole':
|
||||
color = { fill: 'rgba(255, 99, 132, 0.2)', stroke: 'rgba(255, 99, 132, 1)' };
|
||||
break;
|
||||
case 'diff':
|
||||
color = { fill: 'rgba(54, 162, 235, 0.2)', stroke: 'rgba(54, 162, 235, 1)' };
|
||||
break;
|
||||
case 'udiff':
|
||||
color = { fill: 'rgba(75, 192, 192, 0.2)', stroke: 'rgba(75, 192, 192, 1)' };
|
||||
break;
|
||||
case 'diff-fenced':
|
||||
color = { fill: 'rgba(153, 102, 255, 0.2)', stroke: 'rgba(153, 102, 255, 1)' };
|
||||
break;
|
||||
default:
|
||||
color = { fill: 'rgba(201, 203, 207, 0.2)', stroke: 'rgba(201, 203, 207, 1)' };
|
||||
}
|
||||
return {
|
||||
text: format,
|
||||
fillStyle: color.fill,
|
||||
strokeStyle: color.stroke,
|
||||
lineWidth: 1,
|
||||
hidden: false
|
||||
};
|
||||
});
|
||||
}
|
||||
},
|
||||
onClick: function(e, legendItem, legend) {
|
||||
var ci = legend.chart;
|
||||
var clickedFormat = legendItem.text;
|
||||
|
||||
legendItem.hidden = !legendItem.hidden;
|
||||
|
||||
ci.data.datasets[0].data.forEach(function(dataPoint, i) {
|
||||
var meta = ci.getDatasetMeta(0);
|
||||
if (allData[i].edit_format === clickedFormat) {
|
||||
meta.data[i].hidden = legendItem.hidden;
|
||||
}
|
||||
});
|
||||
|
||||
ci.update();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
updateChart();
|
||||
});
|
||||
</script>
|
|
@ -2,3 +2,4 @@ You can send long, multi-line messages in the chat in a few ways:
|
|||
- Paste a multi-line message directly into the chat.
|
||||
- Enter `{` alone on the first line to start a multiline message and `}` alone on the last line to end it.
|
||||
- Use Meta-ENTER to start a new line without sending the message (Esc+ENTER in some environments).
|
||||
- Use `/paste` to paste text from the clipboard into the chat.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<footer class="site-footer">
|
||||
Aider is AI pair programming in your terminal.
|
||||
Aider is on
|
||||
<a href="https://github.com/paul-gauthier/aider">GitHub</a>
|
||||
<a href="https://github.com/Aider-AI/aider">GitHub</a>
|
||||
and
|
||||
<a href="https://discord.gg/Tv2uQnR88V">Discord</a>.
|
||||
</footer>
|
||||
|
|
9
aider/website/_includes/replit-pipx.md
Normal file
9
aider/website/_includes/replit-pipx.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
To use aider with pipx on replit, you can run these commands in the replit shell:
|
||||
|
||||
```
|
||||
pip install pipx
|
||||
pipx run aider-chat ...normal aider args...
|
||||
```
|
||||
|
||||
If you install aider with pipx on replit and try and run it as just `aider` it will crash with a missing `libstdc++.so.6` library.
|
||||
|
|
@ -110,9 +110,9 @@ source code, by including the critical lines of code for each definition.
|
|||
|
||||
Here's a
|
||||
sample of the map of the aider repo, just showing the maps of
|
||||
[base_coder.py](https://github.com/paul-gauthier/aider/blob/main/aider/coders/base_coder.py)
|
||||
[base_coder.py](https://github.com/Aider-AI/aider/blob/main/aider/coders/base_coder.py)
|
||||
and
|
||||
[commands.py](https://github.com/paul-gauthier/aider/blob/main/aider/commands.py)
|
||||
[commands.py](https://github.com/Aider-AI/aider/blob/main/aider/commands.py)
|
||||
:
|
||||
|
||||
```
|
||||
|
@ -188,7 +188,7 @@ It specifically uses the
|
|||
[py-tree-sitter-languages](https://github.com/grantjenks/py-tree-sitter-languages)
|
||||
python module,
|
||||
which provides simple, pip-installable binary wheels for
|
||||
[most popular programming languages](https://github.com/paul-gauthier/grep-ast/blob/main/grep_ast/parsers.py).
|
||||
[most popular programming languages](https://github.com/Aider-AI/grep-ast/blob/main/grep_ast/parsers.py).
|
||||
|
||||
Tree-sitter parses source code into an Abstract Syntax Tree (AST) based
|
||||
on the syntax of the programming language.
|
||||
|
@ -209,7 +209,7 @@ that aider originally used.
|
|||
Switching from ctags to tree-sitter provides a bunch of benefits:
|
||||
|
||||
- The map is richer, showing full function call signatures and other details straight from the source files.
|
||||
- Thanks to `py-tree-sitter-languages`, we get full support for many programming languages via a python package that's automatically installed as part of the normal `python -m pip install aider-chat`.
|
||||
- Thanks to `py-tree-sitter-languages`, we get full support for many programming languages via a python package that's automatically installed as part of the normal `python -m pip install -U aider-chat`.
|
||||
- We remove the requirement for users to manually install `universal-ctags` via some external tool or package manager (brew, apt, choco, etc).
|
||||
- Tree-sitter integration is a key enabler for future work and capabilities for aider.
|
||||
|
||||
|
@ -245,7 +245,7 @@ just install [aider](https://aider.chat/docs/install.html).
|
|||
## Credits
|
||||
|
||||
Aider uses
|
||||
[modified versions of the tags.scm files](https://github.com/paul-gauthier/aider/tree/main/aider/queries)
|
||||
[modified versions of the tags.scm files](https://github.com/Aider-AI/aider/tree/main/aider/queries)
|
||||
from these
|
||||
open source tree-sitter language implementations:
|
||||
|
||||
|
|
|
@ -23,14 +23,14 @@ making it the best available model for pair programming with AI.
|
|||
To use Claude 3 Opus with aider:
|
||||
|
||||
```
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
export ANTHROPIC_API_KEY=sk-...
|
||||
aider --opus
|
||||
```
|
||||
|
||||
## Aider's code editing benchmark
|
||||
|
||||
[Aider](https://github.com/paul-gauthier/aider)
|
||||
[Aider](https://github.com/Aider-AI/aider)
|
||||
is an open source command line chat tool that lets you
|
||||
pair program with AI on code in your local git repo.
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ def some_complex_method(foo, bar):
|
|||
# ... implement method here ...
|
||||
```
|
||||
|
||||
Aider uses a ["laziness" benchmark suite](https://github.com/paul-gauthier/refactor-benchmark)
|
||||
Aider uses a ["laziness" benchmark suite](https://github.com/Aider-AI/refactor-benchmark)
|
||||
which is designed to both provoke and quantify lazy coding.
|
||||
It consists of
|
||||
89 python refactoring tasks
|
||||
|
|
|
@ -46,7 +46,7 @@ It also supports [connecting to almost any LLM](https://aider.chat/docs/llms.htm
|
|||
Use the `--browser` switch to launch the browser version of aider:
|
||||
|
||||
```
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
|
||||
export OPENAI_API_KEY=<key> # Mac/Linux
|
||||
setx OPENAI_API_KEY <key> # Windows, restart shell after setx
|
||||
|
|
|
@ -15,7 +15,7 @@ nav_exclude: true
|
|||
I recently wanted to draw a graph showing how LLM code editing skill has been
|
||||
changing over time as new models have been released by OpenAI, Anthropic and others.
|
||||
I have all the
|
||||
[data in a yaml file](https://github.com/paul-gauthier/aider/blob/main/website/_data/edit_leaderboard.yml) that is used to render
|
||||
[data in a yaml file](https://github.com/Aider-AI/aider/blob/main/website/_data/edit_leaderboard.yml) that is used to render
|
||||
[aider's LLM leaderboards](https://aider.chat/docs/leaderboards/).
|
||||
|
||||
Below is the aider chat transcript, which shows:
|
||||
|
|
|
@ -25,7 +25,7 @@ This increases the ability of the LLM to understand the problem and
|
|||
make the correct changes to resolve it.
|
||||
|
||||
Aider ships with basic linters built with tree-sitter that support
|
||||
[most popular programming languages](https://github.com/paul-gauthier/grep-ast/blob/main/grep_ast/parsers.py).
|
||||
[most popular programming languages](https://github.com/Aider-AI/grep-ast/blob/main/grep_ast/parsers.py).
|
||||
These built in linters will detect syntax errors and other fatal problems with the code.
|
||||
|
||||
You can also configure aider to use your preferred linters.
|
||||
|
|
|
@ -76,7 +76,7 @@ The held out "acceptance tests" were *only* used
|
|||
after benchmarking to compute statistics on which problems aider
|
||||
correctly resolved.
|
||||
|
||||
The [full harness to run aider on SWE Bench Lite is available on GitHub](https://github.com/paul-gauthier/aider-swe-bench).
|
||||
The [full harness to run aider on SWE Bench Lite is available on GitHub](https://github.com/Aider-AI/aider-swe-bench).
|
||||
|
||||
The benchmarking process was similar to how a developer might use aider to
|
||||
resolve a GitHub issue:
|
||||
|
|
|
@ -13,7 +13,7 @@ nav_exclude: true
|
|||
[](https://aider.chat/assets/self-assembly.jpg)
|
||||
|
||||
The
|
||||
[aider git repo](https://github.com/paul-gauthier/aider)
|
||||
[aider git repo](https://github.com/Aider-AI/aider)
|
||||
currently contains about 4K commits and 14K lines of code.
|
||||
|
||||
Aider made 15% of the commits, inserting 4.8K and deleting 1.5K lines of code.
|
||||
|
|
|
@ -64,7 +64,7 @@ with the problem statement
|
|||
submitted as the opening chat message from "the user".
|
||||
- After that aider ran as normal, except all of aider's
|
||||
suggestions were always accepted without user approval.
|
||||
- A [simple harness](https://github.com/paul-gauthier/aider-swe-bench#the-aider-agent) was used to retry the SWE Bench problem if aider produced code that wasn't *plausibly correct*.
|
||||
- A [simple harness](https://github.com/Aider-AI/aider-swe-bench#the-aider-agent) was used to retry the SWE Bench problem if aider produced code that wasn't *plausibly correct*.
|
||||
Plausibly correct means that aider reported that it had successfully edited the repo
|
||||
without causing syntax errors or breaking any *pre-existing* tests.
|
||||
- If the solution from aider with GPT-4o wasn't plausible, the harness launched aider to try again from scratch using Claude 3 Opus.
|
||||
|
@ -90,7 +90,7 @@ For a detailed discussion of the benchmark
|
|||
methodology, see the
|
||||
[article about aider's SWE Bench Lite results](https://aider.chat/2024/05/22/swe-bench-lite.html).
|
||||
Also, the
|
||||
[aider SWE Bench repository on GitHub](https://github.com/paul-gauthier/aider-swe-bench)
|
||||
[aider SWE Bench repository on GitHub](https://github.com/Aider-AI/aider-swe-bench)
|
||||
contains the harness and statistics code used for the benchmarks.
|
||||
|
||||
The benchmarking process was similar to how a developer might use aider to
|
||||
|
|
|
@ -37,8 +37,8 @@ Users who tested Sonnet with a preview of
|
|||
[aider's latest release](https://aider.chat/HISTORY.html#aider-v0410)
|
||||
were thrilled:
|
||||
|
||||
- *Works like a charm. It is a monster. It refactors files of any size like it is nothing. The continue trick with Sonnet is truly the holy grail. Aider beats [other tools] hands down. I'm going to cancel both subscriptions.* -- [Emasoft](https://github.com/paul-gauthier/aider/issues/705#issuecomment-2200338971)
|
||||
- *Thanks heaps for this feature - it's a real game changer. I can be more ambitious when asking Claude for larger features.* -- [cngarrison](https://github.com/paul-gauthier/aider/issues/705#issuecomment-2196026656)
|
||||
- *Works like a charm. It is a monster. It refactors files of any size like it is nothing. The continue trick with Sonnet is truly the holy grail. Aider beats [other tools] hands down. I'm going to cancel both subscriptions.* -- [Emasoft](https://github.com/Aider-AI/aider/issues/705#issuecomment-2200338971)
|
||||
- *Thanks heaps for this feature - it's a real game changer. I can be more ambitious when asking Claude for larger features.* -- [cngarrison](https://github.com/Aider-AI/aider/issues/705#issuecomment-2196026656)
|
||||
- *Fantastic...! It's such an improvement not being constrained by output token length issues. [I refactored] a single JavaScript file into seven smaller files using a single Aider request.* -- [John Galt](https://discord.com/channels/1131200896827654144/1253492379336441907/1256250487934554143)
|
||||
|
||||
## Hitting the 4k token output limit
|
||||
|
@ -116,7 +116,7 @@ for more details, but
|
|||
you can get started quickly with aider and Sonnet like this:
|
||||
|
||||
```
|
||||
$ python -m pip install aider-chat
|
||||
$ python -m pip install -U aider-chat
|
||||
|
||||
$ export ANTHROPIC_API_KEY=<key> # Mac/Linux
|
||||
$ setx ANTHROPIC_API_KEY <key> # Windows, restart shell after setx
|
||||
|
|
|
@ -30,7 +30,7 @@ included for scale.
|
|||
You can code with all of these models using aider like this:
|
||||
|
||||
```
|
||||
$ python -m pip install aider-chat
|
||||
$ python -m pip install -U aider-chat
|
||||
|
||||
# Change directory into a git repo to work on
|
||||
$ cd /to/your/git/repo
|
||||
|
|
|
@ -11,7 +11,8 @@ nav_exclude: true
|
|||
# LLMs are bad at returning code in JSON
|
||||
|
||||
|
||||
LLMs produce lower quality code if they’re asked to return it as part of a structured JSON response. This seems to be true for many top models, including those with specialized support for JSON. Benchmarks show that models struggle with syntactic issues related to quoting and escaping.
|
||||
LLMs produce lower quality code if they’re asked to return it as part of a structured JSON response. This seems to be true for many top models, including those with specialized support for JSON. Benchmarks show that models struggle with syntax errors in the code
|
||||
they write, related to quoting and escaping it into JSON.
|
||||
The benchmark results also imply a decreased capacity for solving coding problems due to the burden of JSON formatting.
|
||||
|
||||
{% include code-in-json-benchmark.js %}
|
||||
|
@ -150,7 +151,8 @@ to assess the impact of JSON-wrapping code:
|
|||
- gpt-4o-2024-05-13
|
||||
- gpt-4o-2024-08-06
|
||||
|
||||
Each combination of model and code wrapping strategy was benchmarked 5 times.
|
||||
Each combination of model and code wrapping strategy was benchmarked 5 times
|
||||
on all 133 problems.
|
||||
|
||||
### Overall coding skill
|
||||
|
||||
|
@ -172,7 +174,11 @@ Both JSON results were well below the markdown result.
|
|||
|
||||
### Syntax errors
|
||||
|
||||
Models tend to make more syntax errors when asked to wrap code in JSON.
|
||||
Models tend to make more syntax errors *in the code they write*
|
||||
when asked to wrap it in JSON.
|
||||
The models can reliably
|
||||
produce valid JSON, but code inside is more prone to syntax errors.
|
||||
|
||||
Figure 2 shows the number of syntax errors found in the code produced by each
|
||||
model and code wrapping strategy.
|
||||
It totals up the `SyntaxError` and `IndentationError` errors from all 5 runs,
|
||||
|
|
145
aider/website/_posts/2024-08-26-sonnet-seems-fine.md
Normal file
145
aider/website/_posts/2024-08-26-sonnet-seems-fine.md
Normal file
|
@ -0,0 +1,145 @@
|
|||
---
|
||||
title: Sonnet seems as good as ever
|
||||
excerpt: Sonnet's score on the aider code editing benchmark has been stable since it launched.
|
||||
highlight_image: /assets/sonnet-seems-fine.jpg
|
||||
---
|
||||
{% if page.date %}
|
||||
<p class="post-date">{{ page.date | date: "%B %d, %Y" }}</p>
|
||||
{% endif %}
|
||||
|
||||
# Sonnet seems as good as ever
|
||||
|
||||
Recently there has been a lot of speculation that Sonnet has been
|
||||
dumbed-down, nerfed or is otherwise performing worse.
|
||||
Sonnet seems as good as ever, when performing the
|
||||
[aider code editing benchmark](/docs/benchmarks.html#the-benchmark)
|
||||
via the API.
|
||||
|
||||
Below is a graph showing the performance of Claude 3.5 Sonnet over time.
|
||||
It shows every clean, comparable benchmark run performed since Sonnet launched.
|
||||
Benchmarks were performed for various reasons, usually
|
||||
to evaluate the effects of small changes to aider's system prompts.
|
||||
|
||||
The graph shows variance, but no indication of a noteworthy
|
||||
degradation.
|
||||
There is always some variance in benchmark results, typically +/- 2%
|
||||
between runs with identical prompts.
|
||||
|
||||
It's worth noting that these results would not capture any changes
|
||||
made to Anthropic web chat's use of Sonnet.
|
||||
|
||||
<div class="chart-container" style="position: relative; height:400px; width:100%">
|
||||
<canvas id="sonnetPerformanceChart"></canvas>
|
||||
</div>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/moment@2.29.4/moment.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-moment@1.0.1/dist/chartjs-adapter-moment.min.js"></script>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var ctx = document.getElementById('sonnetPerformanceChart').getContext('2d');
|
||||
var sonnetData = {{ site.data.sonnet-fine | jsonify }};
|
||||
|
||||
var chartData = sonnetData.map(item => ({
|
||||
x: moment(item.date).toDate(),
|
||||
y1: item.pass_rate_1,
|
||||
y2: item.pass_rate_2
|
||||
})).sort((a, b) => a.x - b.x);
|
||||
|
||||
new Chart(ctx, {
|
||||
type: 'scatter',
|
||||
data: {
|
||||
datasets: [{
|
||||
label: 'Pass Rate 1',
|
||||
data: chartData.map(item => ({ x: item.x, y: item.y1 })),
|
||||
backgroundColor: 'rgb(75, 192, 192)',
|
||||
pointRadius: 5,
|
||||
pointHoverRadius: 7
|
||||
}, {
|
||||
label: 'Pass Rate 2',
|
||||
data: chartData.map(item => ({ x: item.x, y: item.y2 })),
|
||||
backgroundColor: 'rgb(255, 99, 132)',
|
||||
pointRadius: 5,
|
||||
pointHoverRadius: 7
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
responsive: true,
|
||||
maintainAspectRatio: false,
|
||||
scales: {
|
||||
y: {
|
||||
beginAtZero: true,
|
||||
title: {
|
||||
display: true,
|
||||
text: 'Pass Rate (%)',
|
||||
font: {
|
||||
size: 14
|
||||
}
|
||||
},
|
||||
ticks: {
|
||||
font: {
|
||||
size: 12
|
||||
}
|
||||
}
|
||||
},
|
||||
x: {
|
||||
type: 'time',
|
||||
time: {
|
||||
unit: 'day'
|
||||
},
|
||||
title: {
|
||||
display: true,
|
||||
text: 'Date',
|
||||
font: {
|
||||
size: 14
|
||||
}
|
||||
},
|
||||
ticks: {
|
||||
font: {
|
||||
size: 12
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
plugins: {
|
||||
title: {
|
||||
display: true,
|
||||
text: 'Claude 3.5 Sonnet Performance Over Time',
|
||||
font: {
|
||||
size: 18
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
labels: {
|
||||
font: {
|
||||
size: 14
|
||||
}
|
||||
}
|
||||
},
|
||||
tooltip: {
|
||||
callbacks: {
|
||||
label: function(context) {
|
||||
let label = context.dataset.label || '';
|
||||
if (label) {
|
||||
label += ': ';
|
||||
}
|
||||
if (context.parsed.y !== null) {
|
||||
label += context.parsed.y.toFixed(1) + '%';
|
||||
}
|
||||
return label;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
> This graph shows the performance of Claude 3.5 Sonnet on
|
||||
[aider's code editing benchmark](/docs/benchmarks.html#the-benchmark)
|
||||
> over time. 'Pass Rate 1' represents the initial success rate, while 'Pass Rate 2' shows the success rate after a second attempt with a chance to fix testing errors.
|
||||
> The
|
||||
> [aider LLM code editing leaderboard](https://aider.chat/docs/leaderboards/)
|
||||
> ranks models based on Pass Rate 2.
|
||||
|
116
aider/website/_posts/2024-09-12-o1.md
Normal file
116
aider/website/_posts/2024-09-12-o1.md
Normal file
|
@ -0,0 +1,116 @@
|
|||
---
|
||||
title: o1-preview is SOTA on the aider leaderboard
|
||||
excerpt: Preliminary benchmark results for the new OpenAI o1 models.
|
||||
nav_exclude: true
|
||||
---
|
||||
{% if page.date %}
|
||||
<p class="post-date">{{ page.date | date: "%B %d, %Y" }}</p>
|
||||
{% endif %}
|
||||
|
||||
# OpenAI o1-preview is SOTA on the aider leaderboard
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
|
||||
{% assign edit_sorted = site.data.o1_results | sort: 'pass_rate_2' | reverse %}
|
||||
{% include leaderboard_graph.html
|
||||
chart_id="editChart"
|
||||
data=edit_sorted
|
||||
row_prefix="edit-row"
|
||||
pass_rate_key="pass_rate_2"
|
||||
%}
|
||||
|
||||
|
||||
## o1-preview
|
||||
|
||||
OpenAI o1-preview scored 79.7% on aider's code editing benchmark,
|
||||
a state of the art result.
|
||||
It achieved this result with the
|
||||
["whole" edit format](/docs/leaderboards/#notes-on-the-edit-format),
|
||||
where the LLM returns a full copy of the source code file with changes.
|
||||
|
||||
It is much more practical to use aider's
|
||||
["diff" edit format](/docs/leaderboards/#notes-on-the-edit-format),
|
||||
which allows the LLM to return search/replace blocks to
|
||||
efficiently edit the source code.
|
||||
This saves significant time and token costs.
|
||||
|
||||
Using the diff edit format the o1-preview model had a strong
|
||||
benchmark score of 75.2%.
|
||||
This likely places o1-preview between Sonnet and GPT-4o for practical use,
|
||||
but at significantly higher cost.
|
||||
|
||||
## o1-mini
|
||||
|
||||
OpenAI o1-mini is priced similarly to GPT-4o and Claude 3.5 Sonnet,
|
||||
but scored below those models.
|
||||
It also works best with the whole edit format.
|
||||
|
||||
|
||||
## Future work
|
||||
|
||||
The o1-preview model had trouble conforming to aider's diff edit format.
|
||||
The o1-mini model had trouble conforming to both the whole and diff edit formats.
|
||||
Aider is extremely permissive and tries hard to accept anything close
|
||||
to the correct formats.
|
||||
|
||||
It is surprising that such strong models had trouble with
|
||||
the syntactic requirements of simple text output formats.
|
||||
It seems likely that aider could optimize its prompts and edit formats to
|
||||
better harness the o1 models.
|
||||
|
||||
|
||||
## Using aider with o1
|
||||
|
||||
OpenAI's new o1 models are supported in v0.57.0 of aider:
|
||||
|
||||
```
|
||||
aider --model o1-mini
|
||||
aider --model o1-preview
|
||||
```
|
||||
|
||||
{: .note }
|
||||
> These are initial benchmark results for the o1 models,
|
||||
> based on aider v0.56.1-dev.
|
||||
> See the [aider leaderboards](/docs/leaderboards/) for up-to-date results
|
||||
> based on the latest aider releases.
|
||||
|
||||
|
||||
<table style="width: 100%; max-width: 800px; margin: auto; border-collapse: collapse; box-shadow: 0 2px 4px rgba(0,0,0,0.1); font-size: 14px;">
|
||||
<thead style="background-color: #f2f2f2;">
|
||||
<tr>
|
||||
<th style="padding: 8px; text-align: left;">Model</th>
|
||||
<th style="padding: 8px; text-align: center;">Percent completed correctly</th>
|
||||
<th style="padding: 8px; text-align: center;">Percent using correct edit format</th>
|
||||
<th style="padding: 8px; text-align: left;">Command</th>
|
||||
<th style="padding: 8px; text-align: center;">Edit format</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for row in edit_sorted %}
|
||||
<tr style="border-bottom: 1px solid #ddd;">
|
||||
<td style="padding: 8px;">{{ row.model }}</td>
|
||||
<td style="padding: 8px; text-align: center;">{{ row.pass_rate_2 }}%</td>
|
||||
<td style="padding: 8px; text-align: center;">{{ row.percent_cases_well_formed }}%</td>
|
||||
<td style="padding: 8px;"><code>{{ row.command }}</code></td>
|
||||
<td style="padding: 8px; text-align: center;">{{ row.edit_format }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<style>
|
||||
tr.selected {
|
||||
color: #0056b3;
|
||||
}
|
||||
table {
|
||||
table-layout: fixed;
|
||||
}
|
||||
td, th {
|
||||
word-wrap: break-word;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
td:nth-child(3), td:nth-child(4) {
|
||||
font-size: 12px;
|
||||
}
|
||||
</style>
|
418
aider/website/_posts/2024-09-26-architect.md
Normal file
418
aider/website/_posts/2024-09-26-architect.md
Normal file
|
@ -0,0 +1,418 @@
|
|||
---
|
||||
title: Separating code reasoning and editing
|
||||
excerpt: An Architect model describes how to solve the coding problem, and an Editor model translates that into file edits. This Architect/Editor approach produces SOTA benchmark results.
|
||||
highlight_image: /assets/architect.jpg
|
||||
draft: false
|
||||
nav_exclude: true
|
||||
---
|
||||
{% if page.date %}
|
||||
<p class="post-date">{{ page.date | date: "%B %d, %Y" }}</p>
|
||||
{% endif %}
|
||||
|
||||
# Separating code reasoning and editing
|
||||
|
||||
Aider now has experimental support for using two models to complete each coding task:
|
||||
|
||||
- An Architect model is asked to describe how to solve the coding problem.
|
||||
- An Editor model is given the Architect's solution and asked to produce specific code editing instructions to apply those changes to existing source files.
|
||||
|
||||
Splitting up "code reasoning" and "code editing" in this manner
|
||||
has produced SOTA results on
|
||||
[aider's code editing benchmark](/docs/benchmarks.html#the-benchmark).
|
||||
Using o1-preview as the Architect with either DeepSeek or o1-mini as the
|
||||
Editor produced the SOTA score of 85%.
|
||||
Using the Architect/Editor approach
|
||||
also significantly improved the benchmark scores of many
|
||||
models, compared to their previous "solo" baseline scores (striped bars).
|
||||
|
||||
<style>
|
||||
.shaded td {
|
||||
background-color: #f2f2f2;
|
||||
border-top: 1px solid #ccc;
|
||||
}
|
||||
.table-container {
|
||||
max-width: 100%;
|
||||
overflow-x: auto;
|
||||
}
|
||||
.responsive-table {
|
||||
border-collapse: separate;
|
||||
border-spacing: 0;
|
||||
width: 100%;
|
||||
font-size: 16px;
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
.responsive-table th, .responsive-table td {
|
||||
padding: 8px;
|
||||
text-align: left;
|
||||
border-bottom: 1px solid #ddd;
|
||||
word-break: break-word;
|
||||
}
|
||||
.responsive-table th {
|
||||
background-color: #e2e2e2;
|
||||
}
|
||||
.responsive-table th:first-child,
|
||||
.responsive-table td:first-child {
|
||||
border-left: 1px solid #ddd;
|
||||
}
|
||||
.responsive-table th:last-child,
|
||||
.responsive-table td:last-child {
|
||||
border-right: 1px solid #ddd;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 600px) {
|
||||
.responsive-table {
|
||||
font-size: 12px;
|
||||
}
|
||||
.responsive-table th, .responsive-table td {
|
||||
padding: 4px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<style>
|
||||
#passRateChart {
|
||||
max-width: 100%;
|
||||
height: auto !important;
|
||||
}
|
||||
</style>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-annotation@1.0.2"></script>
|
||||
{% assign sorted_data = site.data.architect | sort: "pass_rate_2" | reverse %}
|
||||
<canvas id="passRateChart" width="400" height="250"></canvas>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
var ctx = document.getElementById('passRateChart').getContext('2d');
|
||||
|
||||
// Function to determine aspect ratio and base font size based on screen width
|
||||
function getChartSettings() {
|
||||
if (window.innerWidth < 600) {
|
||||
return { aspectRatio: 1, baseFontSize: 8 }; // Slightly taller for small screens
|
||||
} else if (window.innerWidth < 800) {
|
||||
return { aspectRatio: 1.2, baseFontSize: 10 }; // Slightly taller for small screens
|
||||
} else {
|
||||
return { aspectRatio: 1.4, baseFontSize: 12 }; // Slightly taller for larger screens
|
||||
}
|
||||
}
|
||||
|
||||
var chartSettings = getChartSettings();
|
||||
var baseFontSize = chartSettings.baseFontSize;
|
||||
|
||||
var labels = [];
|
||||
var data = [];
|
||||
var colorMapping = {
|
||||
"claude-3.5-sonnet": "rgba(75, 192, 192, 0.2)",
|
||||
"gpt-4o": "rgba(255, 99, 132, 0.2)",
|
||||
"o1-preview": "rgba(54, 162, 235, 0.2)",
|
||||
"o1-mini": "rgba(255, 206, 86, 0.2)",
|
||||
"gpt-4o-mini": "rgba(153, 102, 255, 0.2)"
|
||||
};
|
||||
var borderColorMapping = {
|
||||
"claude-3.5-sonnet": "rgba(75, 192, 192, 1)",
|
||||
"gpt-4o": "rgba(255, 99, 132, 1)",
|
||||
"o1-preview": "rgba(54, 162, 235, 1)",
|
||||
"o1-mini": "rgba(255, 206, 86, 1)",
|
||||
"gpt-4o-mini": "rgba(153, 102, 255, 1)"
|
||||
};
|
||||
var backgroundColors = [];
|
||||
var borderColors = [];
|
||||
var patterns = {};
|
||||
for (var key in colorMapping) {
|
||||
patterns[key] = ctx.createPattern(createStripePattern(colorMapping[key]), 'repeat');
|
||||
}
|
||||
{% assign grouped_data = sorted_data | group_by: "model" %}
|
||||
{% for group in grouped_data %}
|
||||
{% for item in group.items %}
|
||||
if ("{{ item.editor_model }}" == "") {
|
||||
labels.push("Baseline");
|
||||
} else {
|
||||
labels.push("{{ item.editor_model }}/{{ item.editor_edit_format | default: item.edit_format }}");
|
||||
}
|
||||
data.push({{ item.pass_rate_2 }});
|
||||
if ("{{ item.editor_model }}" == "") {
|
||||
backgroundColors.push(patterns["{{ item.model }}"]);
|
||||
} else {
|
||||
backgroundColors.push(colorMapping["{{ item.model }}"]);
|
||||
}
|
||||
borderColors.push(borderColorMapping["{{ item.model }}"]);
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
labels.reverse();
|
||||
data.reverse();
|
||||
backgroundColors.reverse();
|
||||
borderColors.reverse();
|
||||
var chart = new Chart(ctx, {
|
||||
type: 'bar',
|
||||
data: {
|
||||
labels: labels,
|
||||
datasets: [{
|
||||
label: 'Pass Rate',
|
||||
data: data,
|
||||
backgroundColor: backgroundColors,
|
||||
borderColor: borderColors,
|
||||
borderWidth: 1
|
||||
}]
|
||||
},
|
||||
options: {
|
||||
responsive: true,
|
||||
maintainAspectRatio: true,
|
||||
aspectRatio: chartSettings.aspectRatio,
|
||||
scales: {
|
||||
y: {
|
||||
beginAtZero: true,
|
||||
title: {
|
||||
display: true,
|
||||
text: 'Pass Rate (%)',
|
||||
font: {
|
||||
size: baseFontSize + 6
|
||||
}
|
||||
},
|
||||
ticks: {
|
||||
font: {
|
||||
size: baseFontSize
|
||||
}
|
||||
}
|
||||
},
|
||||
x: {
|
||||
title: {
|
||||
display: true,
|
||||
text: 'Editor model and edit format',
|
||||
font: {
|
||||
size: baseFontSize + 6
|
||||
}
|
||||
},
|
||||
ticks: {
|
||||
font: {
|
||||
size: baseFontSize + 4
|
||||
},
|
||||
maxRotation: 90, // Allow full rotation if needed
|
||||
minRotation: 45 // Start rotating at 45 degrees to fit more labels
|
||||
}
|
||||
}
|
||||
},
|
||||
plugins: {
|
||||
annotation: {
|
||||
annotations: {
|
||||
line1: {
|
||||
type: 'line',
|
||||
yMin: 79.7,
|
||||
yMax: 79.7,
|
||||
borderColor: 'rgba(255, 99, 132, 0.8)',
|
||||
borderWidth: 2,
|
||||
borderDash: [6, 6],
|
||||
label: {
|
||||
content: 'Previous SOTA',
|
||||
enabled: true,
|
||||
position: 'start',
|
||||
xAdjust: 10,
|
||||
font: {
|
||||
size: baseFontSize
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
display: true,
|
||||
title: {
|
||||
display: true,
|
||||
text: 'Architect model',
|
||||
font: {
|
||||
size: baseFontSize + 2,
|
||||
weight: 'bold'
|
||||
}
|
||||
},
|
||||
labels: {
|
||||
font: {
|
||||
size: baseFontSize + 4
|
||||
},
|
||||
generateLabels: function(chart) {
|
||||
var colorMapping = {
|
||||
"o1-preview": "rgba(54, 162, 235, 0.2)",
|
||||
"claude-3.5-sonnet": "rgba(75, 192, 192, 0.2)",
|
||||
"gpt-4o": "rgba(255, 99, 132, 0.2)",
|
||||
"o1-mini": "rgba(255, 206, 86, 0.2)",
|
||||
"gpt-4o-mini": "rgba(153, 102, 255, 0.2)"
|
||||
};
|
||||
return Object.keys(colorMapping).reverse().map(function(key) {
|
||||
return {
|
||||
text: key,
|
||||
fillStyle: colorMapping[key],
|
||||
strokeStyle: colorMapping[key].replace('0.2', '1'),
|
||||
lineWidth: 1
|
||||
};
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Update aspect ratio and font sizes on window resize
|
||||
window.addEventListener('resize', function() {
|
||||
var newSettings = getChartSettings();
|
||||
chart.options.aspectRatio = newSettings.aspectRatio;
|
||||
baseFontSize = newSettings.baseFontSize;
|
||||
|
||||
// Update font sizes
|
||||
chart.options.scales.y.title.font.size = baseFontSize + 6;
|
||||
chart.options.scales.y.ticks.font.size = baseFontSize;
|
||||
chart.options.scales.x.title.font.size = baseFontSize + 6;
|
||||
chart.options.scales.x.ticks.font.size = baseFontSize + 4;
|
||||
chart.options.plugins.annotation.annotations.line1.label.font.size = baseFontSize;
|
||||
chart.options.plugins.legend.title.font.size = baseFontSize + 4;
|
||||
chart.options.plugins.legend.labels.font.size = baseFontSize + 4;
|
||||
|
||||
chart.update();
|
||||
});
|
||||
});
|
||||
|
||||
function createStripePattern(baseColor) {
|
||||
var canvas = document.createElement('canvas');
|
||||
canvas.width = 10;
|
||||
canvas.height = 10;
|
||||
var ctx = canvas.getContext('2d');
|
||||
|
||||
ctx.fillStyle = baseColor;
|
||||
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
||||
ctx.strokeStyle = 'rgba(0, 0, 0, 0.1)';
|
||||
ctx.lineWidth = 2;
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(0, 0);
|
||||
ctx.lineTo(10, 10);
|
||||
ctx.stroke();
|
||||
|
||||
return canvas;
|
||||
}
|
||||
</script>
|
||||
|
||||
## Motivation
|
||||
|
||||
This approach was motivated by the release of OpenAI's o1 models.
|
||||
They are strong at reasoning, but often fail to output properly formatted
|
||||
code editing instructions.
|
||||
It helps to instead let them describe the solution
|
||||
however they prefer and then pass that output to a more traditional LLM.
|
||||
This second Editor LLM can then interpret the solution description and
|
||||
produce the code editing instructions needed to update
|
||||
the existing source code.
|
||||
|
||||
This approach has recently become attractive for aider due to
|
||||
rapid improvements in the speed and costs of frontier models.
|
||||
In particular, chaining older LLMs would have been quite slow and
|
||||
incompatible with aider's goal of providing an interactive,
|
||||
pair programming AI coding experience.
|
||||
|
||||
## Code reasoning and code editing
|
||||
|
||||
Normally aider asks the model to solve a coding problem in one prompt,
|
||||
asking the LLM to explain the solution and return
|
||||
a well formatted series of file edits.
|
||||
All of [aider's editing formats](/docs/more/edit-formats.html)
|
||||
require the LLM to return source code edits in a specific text
|
||||
format, so that aider can process the edits and apply them to the local source files.
|
||||
|
||||
Because this all happens in a single prompt/response round trip to the LLM,
|
||||
the model has to split its attention between
|
||||
solving the coding problem and conforming to the edit format.
|
||||
|
||||
The Architect/Editor approach splits this into two inference steps, possibly
|
||||
using two different LLMs:
|
||||
|
||||
1. Solve the coding problem (Architect).
|
||||
2. Turn the proposed solution into a series of well formed code edits (Editor).
|
||||
|
||||
The Architect/Editor approach allows the Architect to focus on solving the coding problem
|
||||
and *describe the solution however comes naturally to it*.
|
||||
Similarly, the Editor can focus all of its attention on properly formatting the edits
|
||||
without needing to reason much about how to solve the coding problem.
|
||||
|
||||
We can assign the Architect and Editor roles to LLMs which are well suited to their needs.
|
||||
Strong reasoning model like o1-preview make excellent Architects, while
|
||||
the Editor role can be assigned to an appropriate model based on cost, speed
|
||||
and code editing skill.
|
||||
|
||||
## Results
|
||||
|
||||
The graph above and the table below show the
|
||||
[aider's code editing benchmark](/docs/benchmarks.html#the-benchmark)
|
||||
score for various combinations of Architect and Editor models.
|
||||
|
||||
|
||||
Some noteworthy observations:
|
||||
|
||||
- Pairing o1-preview as Architect with either Deepseek or o1-mini as Editor sets a SOTA significantly above the previous best score. This result is obtained with the "whole" editing format, requiring the Editor to output a full update copy of each edited source file. Both of these steps are therefore quite slow, so probably not practical for interactive use with aider.
|
||||
- Pairing OpenAI's o1-preview with Anthropic's Sonnet as the Editor produces the second best result. This is an entirely practical configuration for users able to work with both providers.
|
||||
- Pairing many models with themselves in the Architect/Editor configuration can provide
|
||||
significant benefits.
|
||||
Sonnet, GPT-4o and GPT-4o-mini all scored higher when used as an Architect/Editor pair.
|
||||
- Deepseek is surprisingly effective as an Editor model. It seems remarkably capable at turning proposed coding solutions into new, updated versions of the source files. Using the efficient "diff" editing format, Deepseek helps all the Architect models except for Sonnet.
|
||||
|
||||
## Try it!
|
||||
|
||||
The development version of aider
|
||||
has built in defaults to support Architect/Editor coding with
|
||||
o1-preview, o1-mini, GPT-4o and Claude 3.5 Sonnet.
|
||||
Run aider with `--architect` or get started quickly like this:
|
||||
|
||||
```
|
||||
pip install -U aider-chat
|
||||
|
||||
# Change directory into a git repo
|
||||
cd /to/your/git/repo
|
||||
|
||||
# Work with Claude 3.5 Sonnet as the Architect and Editor
|
||||
export ANTHROPIC_API_KEY=your-key-goes-here
|
||||
aider --sonnet --architect
|
||||
|
||||
# Work with OpenAI models, using gpt-4o as the Editor
|
||||
export OPENAI_API_KEY=your-key-goes-here
|
||||
aider --4o --architect
|
||||
aider --o1-mini --architect
|
||||
aider --o1-preview --architect
|
||||
```
|
||||
|
||||
## More info
|
||||
|
||||
Aider has a number of "chat modes", and "architect" is available as a new chat mode.
|
||||
The `--architect` switch is a shortcut for `--chat-mode architect`.
|
||||
For more details, see documentation on
|
||||
[aider's chat modes](/docs/usage/modes.html).
|
||||
|
||||
|
||||
## Full results
|
||||
|
||||
Below are the benchmark results using various models as the Architect, paired with
|
||||
various models as the Editor.
|
||||
Each section includes a "baseline" result,
|
||||
where the model works
|
||||
by itself in aider's normal "code" editing mode
|
||||
(not as part of an Architect/Editor configuration).
|
||||
This "solo" baseline represents the performance previously available when using
|
||||
this model with aider.
|
||||
|
||||
<div class="table-container">
|
||||
<table class="responsive-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Architect</th>
|
||||
<th>Editor</th>
|
||||
<th>Edit Format</th>
|
||||
<th>Pass Rate</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for group in grouped_data %}
|
||||
{% assign group_class = forloop.index | modulo: 2 | plus: 1 %}
|
||||
{% for item in group.items %}
|
||||
<tr class="{% if group_class == 1 %}shaded{% endif %}">
|
||||
<td>{{ item.model }}</td>
|
||||
<td>{% if item.editor_model %}{{ item.editor_model }}{% else %}<b>Baseline</b>{% endif %}</td>
|
||||
<td style="text-align: center;">{{ item.editor_edit_format | default: item.edit_format }}</td>
|
||||
<td style="text-align: right;">{{ item.pass_rate_2 }}%</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
BIN
aider/website/assets/architect.jpg
Normal file
BIN
aider/website/assets/architect.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 337 KiB |
BIN
aider/website/assets/prompt-caching.jpg
Normal file
BIN
aider/website/assets/prompt-caching.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 307 KiB |
|
@ -12,30 +12,30 @@
|
|||
# options:
|
||||
|
||||
## show this help message and exit
|
||||
#help:
|
||||
#help: xxx
|
||||
|
||||
#######
|
||||
# Main:
|
||||
|
||||
## Specify the OpenAI API key
|
||||
#openai-api-key:
|
||||
#openai-api-key: xxx
|
||||
|
||||
## Specify the Anthropic API key
|
||||
#anthropic-api-key:
|
||||
#anthropic-api-key: xxx
|
||||
|
||||
## Specify the model to use for the main chat
|
||||
#model:
|
||||
#model: xxx
|
||||
|
||||
## Use claude-3-opus-20240229 model for the main chat
|
||||
#opus: false
|
||||
|
||||
## Use claude-3-5-sonnet-20240620 model for the main chat
|
||||
## Use claude-3-5-sonnet-20241022 model for the main chat
|
||||
#sonnet: false
|
||||
|
||||
## Use gpt-4-0613 model for the main chat
|
||||
#4: false
|
||||
|
||||
## Use gpt-4o model for the main chat
|
||||
## Use gpt-4o-2024-08-06 model for the main chat
|
||||
#4o: false
|
||||
|
||||
## Use gpt-4o-mini model for the main chat
|
||||
|
@ -50,26 +50,32 @@
|
|||
## Use deepseek/deepseek-coder model for the main chat
|
||||
#deepseek: false
|
||||
|
||||
## Use o1-mini model for the main chat
|
||||
#o1-mini: false
|
||||
|
||||
## Use o1-preview model for the main chat
|
||||
#o1-preview: false
|
||||
|
||||
#################
|
||||
# Model Settings:
|
||||
|
||||
## List known models which match the (partial) MODEL name
|
||||
#models:
|
||||
#list-models: xxx
|
||||
|
||||
## Specify the api base url
|
||||
#openai-api-base:
|
||||
#openai-api-base: xxx
|
||||
|
||||
## Specify the api_type
|
||||
#openai-api-type:
|
||||
#openai-api-type: xxx
|
||||
|
||||
## Specify the api_version
|
||||
#openai-api-version:
|
||||
#openai-api-version: xxx
|
||||
|
||||
## Specify the deployment_id
|
||||
#openai-api-deployment-id:
|
||||
#openai-api-deployment-id: xxx
|
||||
|
||||
## Specify the OpenAI organization ID
|
||||
#openai-organization-id:
|
||||
#openai-organization-id: xxx
|
||||
|
||||
## Specify a file with aider model settings for unknown models
|
||||
#model-settings-file: .aider.model.settings.yml
|
||||
|
@ -81,23 +87,50 @@
|
|||
#verify-ssl: true
|
||||
|
||||
## Specify what edit format the LLM should use (default depends on model)
|
||||
#edit-format:
|
||||
#edit-format: xxx
|
||||
|
||||
## Use architect edit format for the main chat
|
||||
#architect: false
|
||||
|
||||
## Specify the model to use for commit messages and chat history summarization (default depends on --model)
|
||||
#weak-model:
|
||||
#weak-model: xxx
|
||||
|
||||
## Specify the model to use for editor tasks (default depends on --model)
|
||||
#editor-model: xxx
|
||||
|
||||
## Specify the edit format for the editor model (default: depends on editor model)
|
||||
#editor-edit-format: xxx
|
||||
|
||||
## Only work with models that have meta-data available (default: True)
|
||||
#show-model-warnings: true
|
||||
|
||||
## Max number of tokens to use for repo map, use 0 to disable (default: 1024)
|
||||
#map-tokens:
|
||||
|
||||
## Maximum number of tokens to use for chat history. If not specified, uses the model's max_chat_history_tokens.
|
||||
#max-chat-history-tokens:
|
||||
## Soft limit on tokens for chat history, after which summarization begins. If unspecified, defaults to the model's max_chat_history_tokens.
|
||||
#max-chat-history-tokens: xxx
|
||||
|
||||
## Specify the .env file to load (default: .env in git root)
|
||||
#env-file: .env
|
||||
|
||||
#################
|
||||
# Cache Settings:
|
||||
|
||||
## Enable caching of prompts (default: False)
|
||||
#cache-prompts: false
|
||||
|
||||
## Number of times to ping at 5min intervals to keep prompt cache warm (default: 0)
|
||||
#cache-keepalive-pings: false
|
||||
|
||||
###################
|
||||
# Repomap Settings:
|
||||
|
||||
## Suggested number of tokens to use for repo map, use 0 to disable (default: 1024)
|
||||
#map-tokens: xxx
|
||||
|
||||
## Control how often the repo map is refreshed. Options: auto, always, files, manual (default: auto)
|
||||
#map-refresh: auto
|
||||
|
||||
## Multiplier for map tokens when no files are specified (default: 2)
|
||||
#map-multiplier-no-files: true
|
||||
|
||||
################
|
||||
# History Files:
|
||||
|
||||
|
@ -111,7 +144,7 @@
|
|||
#restore-chat-history: false
|
||||
|
||||
## Log the conversation with the LLM to this file (for example, .aider.llm.history)
|
||||
#llm-history-file:
|
||||
#llm-history-file: xxx
|
||||
|
||||
##################
|
||||
# Output Settings:
|
||||
|
@ -132,14 +165,29 @@
|
|||
#user-input-color: #00cc00
|
||||
|
||||
## Set the color for tool output (default: None)
|
||||
#tool-output-color:
|
||||
#tool-output-color: xxx
|
||||
|
||||
## Set the color for tool error messages (default: red)
|
||||
## Set the color for tool error messages (default: #FF2222)
|
||||
#tool-error-color: #FF2222
|
||||
|
||||
## Set the color for tool warning messages (default: #FFA500)
|
||||
#tool-warning-color: #FFA500
|
||||
|
||||
## Set the color for assistant output (default: #0088ff)
|
||||
#assistant-output-color: #0088ff
|
||||
|
||||
## Set the color for the completion menu (default: terminal's default text color)
|
||||
#completion-menu-color: xxx
|
||||
|
||||
## Set the background color for the completion menu (default: terminal's default background color)
|
||||
#completion-menu-bg-color: xxx
|
||||
|
||||
## Set the color for the current item in the completion menu (default: terminal's default background color)
|
||||
#completion-menu-current-color: xxx
|
||||
|
||||
## Set the background color for the current item in the completion menu (default: terminal's default text color)
|
||||
#completion-menu-current-bg-color: xxx
|
||||
|
||||
## Set the markdown code theme (default: default, other options include monokai, solarized-dark, solarized-light)
|
||||
#code-theme: default
|
||||
|
||||
|
@ -183,11 +231,14 @@
|
|||
#commit: false
|
||||
|
||||
## Specify a custom prompt for generating commit messages
|
||||
#commit-prompt:
|
||||
#commit-prompt: xxx
|
||||
|
||||
## Perform a dry run without modifying files (default: False)
|
||||
#dry-run: false
|
||||
|
||||
## Skip the sanity check for the git repository (default: False)
|
||||
#skip-sanity-check-repo: false
|
||||
|
||||
########################
|
||||
# Fixing and committing:
|
||||
|
||||
|
@ -195,13 +246,18 @@
|
|||
#lint: false
|
||||
|
||||
## Specify lint commands to run for different languages, eg: "python: flake8 --select=..." (can be used multiple times)
|
||||
#lint-cmd: xxx
|
||||
## Specify multiple values like this:
|
||||
#lint-cmd:
|
||||
# - xxx
|
||||
# - yyy
|
||||
# - zzz
|
||||
|
||||
## Enable/disable automatic linting after changes (default: True)
|
||||
#auto-lint: true
|
||||
|
||||
## Specify command to run tests
|
||||
#test-cmd:
|
||||
#test-cmd: xxx
|
||||
|
||||
## Enable/disable automatic testing after changes (default: False)
|
||||
#auto-test: false
|
||||
|
@ -225,19 +281,29 @@
|
|||
# Other Settings:
|
||||
|
||||
## specify a file to edit (can be used multiple times)
|
||||
#file: xxx
|
||||
## Specify multiple values like this:
|
||||
#file:
|
||||
# - xxx
|
||||
# - yyy
|
||||
# - zzz
|
||||
|
||||
## specify a read-only file (can be used multiple times)
|
||||
#read: xxx
|
||||
## Specify multiple values like this:
|
||||
#read:
|
||||
# - xxx
|
||||
# - yyy
|
||||
# - zzz
|
||||
|
||||
## Use VI editing mode in the terminal (default: False)
|
||||
#vim: false
|
||||
|
||||
## Specify the language for voice using ISO 639-1 code (default: auto)
|
||||
#voice-language: en
|
||||
## Specify the language to use in the chat (default: None, uses system settings)
|
||||
#chat-language: xxx
|
||||
|
||||
## Show the version number and exit
|
||||
#version:
|
||||
#version: xxx
|
||||
|
||||
## Check for updates and return status in the exit code
|
||||
#just-check-update: false
|
||||
|
@ -245,11 +311,17 @@
|
|||
## Check for new aider versions on launch
|
||||
#check-update: true
|
||||
|
||||
## Install the latest version from the main branch
|
||||
#install-main-branch: false
|
||||
|
||||
## Upgrade aider to the latest version from PyPI
|
||||
#upgrade: false
|
||||
|
||||
## Apply the changes from the given file instead of running the chat (debug)
|
||||
#apply:
|
||||
#apply: xxx
|
||||
|
||||
## Always say yes to every confirmation
|
||||
#yes: false
|
||||
#yes-always: false
|
||||
|
||||
## Enable verbose output
|
||||
#verbose: false
|
||||
|
@ -264,16 +336,34 @@
|
|||
#exit: false
|
||||
|
||||
## Specify a single message to send the LLM, process reply then exit (disables chat mode)
|
||||
#message:
|
||||
#message: xxx
|
||||
|
||||
## Specify a file containing the message to send the LLM, process reply, then exit (disables chat mode)
|
||||
#message-file:
|
||||
#message-file: xxx
|
||||
|
||||
## Load and execute /commands from a file on launch
|
||||
#load: xxx
|
||||
|
||||
## Specify the encoding for input and output (default: utf-8)
|
||||
#encoding: utf-8
|
||||
|
||||
## Specify the config file (default: search for .aider.conf.yml in git root, cwd or home directory)
|
||||
#config:
|
||||
#config: xxx
|
||||
|
||||
## Run aider in your browser
|
||||
#gui: false
|
||||
|
||||
## Enable/disable suggesting shell commands (default: True)
|
||||
#suggest-shell-commands: true
|
||||
|
||||
## Enable/disable fancy input with history and completion (default: True)
|
||||
#fancy-input: true
|
||||
|
||||
#################
|
||||
# Voice Settings:
|
||||
|
||||
## Audio format for voice recording (default: wav). webm and mp3 require ffmpeg
|
||||
#voice-format: wav
|
||||
|
||||
## Specify the language for voice using ISO 639-1 code (default: auto)
|
||||
#voice-language: en
|
||||
|
|
|
@ -33,13 +33,13 @@
|
|||
## Use claude-3-opus-20240229 model for the main chat
|
||||
#AIDER_OPUS=
|
||||
|
||||
## Use claude-3-5-sonnet-20240620 model for the main chat
|
||||
## Use claude-3-5-sonnet-20241022 model for the main chat
|
||||
#AIDER_SONNET=
|
||||
|
||||
## Use gpt-4-0613 model for the main chat
|
||||
#AIDER_4=
|
||||
|
||||
## Use gpt-4o model for the main chat
|
||||
## Use gpt-4o-2024-08-06 model for the main chat
|
||||
#AIDER_4O=
|
||||
|
||||
## Use gpt-4o-mini model for the main chat
|
||||
|
@ -54,11 +54,17 @@
|
|||
## Use deepseek/deepseek-coder model for the main chat
|
||||
#AIDER_DEEPSEEK=
|
||||
|
||||
## Use o1-mini model for the main chat
|
||||
#AIDER_O1_MINI=
|
||||
|
||||
## Use o1-preview model for the main chat
|
||||
#AIDER_O1_PREVIEW=
|
||||
|
||||
#################
|
||||
# Model Settings:
|
||||
|
||||
## List known models which match the (partial) MODEL name
|
||||
#AIDER_MODELS=
|
||||
#AIDER_LIST_MODELS=
|
||||
|
||||
## Specify the api base url
|
||||
#OPENAI_API_BASE=
|
||||
|
@ -87,21 +93,48 @@
|
|||
## Specify what edit format the LLM should use (default depends on model)
|
||||
#AIDER_EDIT_FORMAT=
|
||||
|
||||
## Use architect edit format for the main chat
|
||||
#AIDER_ARCHITECT=
|
||||
|
||||
## Specify the model to use for commit messages and chat history summarization (default depends on --model)
|
||||
#AIDER_WEAK_MODEL=
|
||||
|
||||
## Specify the model to use for editor tasks (default depends on --model)
|
||||
#AIDER_EDITOR_MODEL=
|
||||
|
||||
## Specify the edit format for the editor model (default: depends on editor model)
|
||||
#AIDER_EDITOR_EDIT_FORMAT=
|
||||
|
||||
## Only work with models that have meta-data available (default: True)
|
||||
#AIDER_SHOW_MODEL_WARNINGS=true
|
||||
|
||||
## Max number of tokens to use for repo map, use 0 to disable (default: 1024)
|
||||
#AIDER_MAP_TOKENS=
|
||||
|
||||
## Maximum number of tokens to use for chat history. If not specified, uses the model's max_chat_history_tokens.
|
||||
## Soft limit on tokens for chat history, after which summarization begins. If unspecified, defaults to the model's max_chat_history_tokens.
|
||||
#AIDER_MAX_CHAT_HISTORY_TOKENS=
|
||||
|
||||
## Specify the .env file to load (default: .env in git root)
|
||||
#AIDER_ENV_FILE=.env
|
||||
|
||||
#################
|
||||
# Cache Settings:
|
||||
|
||||
## Enable caching of prompts (default: False)
|
||||
#AIDER_CACHE_PROMPTS=false
|
||||
|
||||
## Number of times to ping at 5min intervals to keep prompt cache warm (default: 0)
|
||||
#AIDER_CACHE_KEEPALIVE_PINGS=false
|
||||
|
||||
###################
|
||||
# Repomap Settings:
|
||||
|
||||
## Suggested number of tokens to use for repo map, use 0 to disable (default: 1024)
|
||||
#AIDER_MAP_TOKENS=
|
||||
|
||||
## Control how often the repo map is refreshed. Options: auto, always, files, manual (default: auto)
|
||||
#AIDER_MAP_REFRESH=auto
|
||||
|
||||
## Multiplier for map tokens when no files are specified (default: 2)
|
||||
#AIDER_MAP_MULTIPLIER_NO_FILES=true
|
||||
|
||||
################
|
||||
# History Files:
|
||||
|
||||
|
@ -138,12 +171,27 @@
|
|||
## Set the color for tool output (default: None)
|
||||
#AIDER_TOOL_OUTPUT_COLOR=
|
||||
|
||||
## Set the color for tool error messages (default: red)
|
||||
## Set the color for tool error messages (default: #FF2222)
|
||||
#AIDER_TOOL_ERROR_COLOR=#FF2222
|
||||
|
||||
## Set the color for tool warning messages (default: #FFA500)
|
||||
#AIDER_TOOL_WARNING_COLOR=#FFA500
|
||||
|
||||
## Set the color for assistant output (default: #0088ff)
|
||||
#AIDER_ASSISTANT_OUTPUT_COLOR=#0088ff
|
||||
|
||||
## Set the color for the completion menu (default: terminal's default text color)
|
||||
#AIDER_COMPLETION_MENU_COLOR=
|
||||
|
||||
## Set the background color for the completion menu (default: terminal's default background color)
|
||||
#AIDER_COMPLETION_MENU_BG_COLOR=
|
||||
|
||||
## Set the color for the current item in the completion menu (default: terminal's default background color)
|
||||
#AIDER_COMPLETION_MENU_CURRENT_COLOR=
|
||||
|
||||
## Set the background color for the current item in the completion menu (default: terminal's default text color)
|
||||
#AIDER_COMPLETION_MENU_CURRENT_BG_COLOR=
|
||||
|
||||
## Set the markdown code theme (default: default, other options include monokai, solarized-dark, solarized-light)
|
||||
#AIDER_CODE_THEME=default
|
||||
|
||||
|
@ -192,6 +240,9 @@
|
|||
## Perform a dry run without modifying files (default: False)
|
||||
#AIDER_DRY_RUN=false
|
||||
|
||||
## Skip the sanity check for the git repository (default: False)
|
||||
#AIDER_SKIP_SANITY_CHECK_REPO=false
|
||||
|
||||
########################
|
||||
# Fixing and committing:
|
||||
|
||||
|
@ -237,8 +288,8 @@
|
|||
## Use VI editing mode in the terminal (default: False)
|
||||
#AIDER_VIM=false
|
||||
|
||||
## Specify the language for voice using ISO 639-1 code (default: auto)
|
||||
#AIDER_VOICE_LANGUAGE=en
|
||||
## Specify the language to use in the chat (default: None, uses system settings)
|
||||
#AIDER_CHAT_LANGUAGE=
|
||||
|
||||
## Check for updates and return status in the exit code
|
||||
#AIDER_JUST_CHECK_UPDATE=false
|
||||
|
@ -246,11 +297,17 @@
|
|||
## Check for new aider versions on launch
|
||||
#AIDER_CHECK_UPDATE=true
|
||||
|
||||
## Install the latest version from the main branch
|
||||
#AIDER_INSTALL_MAIN_BRANCH=false
|
||||
|
||||
## Upgrade aider to the latest version from PyPI
|
||||
#AIDER_UPGRADE=false
|
||||
|
||||
## Apply the changes from the given file instead of running the chat (debug)
|
||||
#AIDER_APPLY=
|
||||
|
||||
## Always say yes to every confirmation
|
||||
#AIDER_YES=
|
||||
#AIDER_YES_ALWAYS=
|
||||
|
||||
## Enable verbose output
|
||||
#AIDER_VERBOSE=false
|
||||
|
@ -270,8 +327,26 @@
|
|||
## Specify a file containing the message to send the LLM, process reply, then exit (disables chat mode)
|
||||
#AIDER_MESSAGE_FILE=
|
||||
|
||||
## Load and execute /commands from a file on launch
|
||||
#AIDER_LOAD=
|
||||
|
||||
## Specify the encoding for input and output (default: utf-8)
|
||||
#AIDER_ENCODING=utf-8
|
||||
|
||||
## Run aider in your browser
|
||||
#AIDER_GUI=false
|
||||
|
||||
## Enable/disable suggesting shell commands (default: True)
|
||||
#AIDER_SUGGEST_SHELL_COMMANDS=true
|
||||
|
||||
## Enable/disable fancy input with history and completion (default: True)
|
||||
#AIDER_FANCY_INPUT=true
|
||||
|
||||
#################
|
||||
# Voice Settings:
|
||||
|
||||
## Audio format for voice recording (default: wav). webm and mp3 require ffmpeg
|
||||
#AIDER_VOICE_FORMAT=wav
|
||||
|
||||
## Specify the language for voice using ISO 639-1 code (default: auto)
|
||||
#AIDER_VOICE_LANGUAGE=en
|
||||
|
|
BIN
aider/website/assets/shell-cmds-small.mp4
Normal file
BIN
aider/website/assets/shell-cmds-small.mp4
Normal file
Binary file not shown.
BIN
aider/website/assets/shell-cmds.jpg
Normal file
BIN
aider/website/assets/shell-cmds.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 519 KiB |
BIN
aider/website/assets/sonnet-seems-fine.jpg
Normal file
BIN
aider/website/assets/sonnet-seems-fine.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 147 KiB |
|
@ -19,7 +19,7 @@ and there's a lot
|
|||
of interest about their ability to code compared to the previous versions.
|
||||
With that in mind, I've been benchmarking the new models.
|
||||
|
||||
[Aider](https://github.com/paul-gauthier/aider)
|
||||
[Aider](https://github.com/Aider-AI/aider)
|
||||
is an open source command line chat tool that lets you work with GPT to edit
|
||||
code in your local git repo.
|
||||
To do this, aider needs to be able to reliably recognize when GPT wants to edit
|
||||
|
|
|
@ -20,7 +20,7 @@ and there's a lot
|
|||
of interest about their capabilities and performance.
|
||||
With that in mind, I've been benchmarking the new models.
|
||||
|
||||
[Aider](https://github.com/paul-gauthier/aider)
|
||||
[Aider](https://github.com/Aider-AI/aider)
|
||||
is an open source command line chat tool that lets you work with GPT to edit
|
||||
code in your local git repo.
|
||||
Aider relies on a
|
||||
|
|
|
@ -55,7 +55,7 @@ about prompting GPT for complex tasks like coding. It's beneficial to
|
|||
minimize the "cognitive overhead" of formatting the response, allowing
|
||||
GPT to concentrate on the coding task at hand.
|
||||
|
||||
As a thought experiment, imagine a slack conversation with a junior developer where
|
||||
As a thought experiment, imagine a slack conversation with a editor developer where
|
||||
you ask them to write the code to add some new feature to your app.
|
||||
They're going to type the response back to you by hand in the chat.
|
||||
Should they type out the
|
||||
|
@ -168,7 +168,7 @@ requests:
|
|||
### whole
|
||||
|
||||
The
|
||||
[whole](https://github.com/paul-gauthier/aider/blob/main/aider/coders/wholefile_prompts.py)
|
||||
[whole](https://github.com/Aider-AI/aider/blob/main/aider/coders/wholefile_prompts.py)
|
||||
format asks GPT to return an updated copy of the entire file, including any changes.
|
||||
The file should be
|
||||
formatted with normal markdown triple-backtick fences, inlined with the rest of its response text.
|
||||
|
@ -187,7 +187,7 @@ def main():
|
|||
|
||||
### diff
|
||||
|
||||
The [diff](https://github.com/paul-gauthier/aider/blob/main/aider/coders/editblock_prompts.py)
|
||||
The [diff](https://github.com/Aider-AI/aider/blob/main/aider/coders/editblock_prompts.py)
|
||||
format also asks GPT to return edits as part of the normal response text,
|
||||
in a simple diff format.
|
||||
Each edit is a fenced code block that
|
||||
|
@ -209,7 +209,7 @@ demo.py
|
|||
|
||||
### whole-func
|
||||
|
||||
The [whole-func](https://github.com/paul-gauthier/aider/blob/main/aider/coders/wholefile_func_coder.py)
|
||||
The [whole-func](https://github.com/Aider-AI/aider/blob/main/aider/coders/wholefile_func_coder.py)
|
||||
format requests updated copies of whole files to be returned using the function call API.
|
||||
|
||||
|
||||
|
@ -227,7 +227,7 @@ format requests updated copies of whole files to be returned using the function
|
|||
### diff-func
|
||||
|
||||
The
|
||||
[diff-func](https://github.com/paul-gauthier/aider/blob/main/aider/coders/editblock_func_coder.py)
|
||||
[diff-func](https://github.com/Aider-AI/aider/blob/main/aider/coders/editblock_func_coder.py)
|
||||
format requests a list of
|
||||
original/updated style edits to be returned using the function call API.
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -21,11 +21,28 @@ load whichever is found first.
|
|||
|
||||
{% include env-keys-tip.md %}
|
||||
|
||||
## A note on lists
|
||||
|
||||
Lists of values can be specified either as a bulleted list:
|
||||
|
||||
```
|
||||
read:
|
||||
- CONVENTIONS.md
|
||||
- anotherfile.txt
|
||||
- thirdfile.py
|
||||
```
|
||||
|
||||
Or lists can be specified using commas and square brackets:
|
||||
|
||||
```
|
||||
read: [CONVENTIONS.md, anotherfile.txt, thirdfile.py]
|
||||
```
|
||||
|
||||
## Sample YAML config file
|
||||
|
||||
Below is a sample of the YAML config file, which you
|
||||
can also
|
||||
[download from GitHub](https://github.com/paul-gauthier/aider/blob/main/aider/website/assets/sample.aider.conf.yml).
|
||||
[download from GitHub](https://github.com/Aider-AI/aider/blob/main/aider/website/assets/sample.aider.conf.yml).
|
||||
|
||||
<!--[[[cog
|
||||
from aider.args import get_sample_yaml
|
||||
|
@ -51,30 +68,30 @@ cog.outl("```")
|
|||
# options:
|
||||
|
||||
## show this help message and exit
|
||||
#help:
|
||||
#help: xxx
|
||||
|
||||
#######
|
||||
# Main:
|
||||
|
||||
## Specify the OpenAI API key
|
||||
#openai-api-key:
|
||||
#openai-api-key: xxx
|
||||
|
||||
## Specify the Anthropic API key
|
||||
#anthropic-api-key:
|
||||
#anthropic-api-key: xxx
|
||||
|
||||
## Specify the model to use for the main chat
|
||||
#model:
|
||||
#model: xxx
|
||||
|
||||
## Use claude-3-opus-20240229 model for the main chat
|
||||
#opus: false
|
||||
|
||||
## Use claude-3-5-sonnet-20240620 model for the main chat
|
||||
## Use claude-3-5-sonnet-20241022 model for the main chat
|
||||
#sonnet: false
|
||||
|
||||
## Use gpt-4-0613 model for the main chat
|
||||
#4: false
|
||||
|
||||
## Use gpt-4o model for the main chat
|
||||
## Use gpt-4o-2024-08-06 model for the main chat
|
||||
#4o: false
|
||||
|
||||
## Use gpt-4o-mini model for the main chat
|
||||
|
@ -89,26 +106,32 @@ cog.outl("```")
|
|||
## Use deepseek/deepseek-coder model for the main chat
|
||||
#deepseek: false
|
||||
|
||||
## Use o1-mini model for the main chat
|
||||
#o1-mini: false
|
||||
|
||||
## Use o1-preview model for the main chat
|
||||
#o1-preview: false
|
||||
|
||||
#################
|
||||
# Model Settings:
|
||||
|
||||
## List known models which match the (partial) MODEL name
|
||||
#models:
|
||||
#list-models: xxx
|
||||
|
||||
## Specify the api base url
|
||||
#openai-api-base:
|
||||
#openai-api-base: xxx
|
||||
|
||||
## Specify the api_type
|
||||
#openai-api-type:
|
||||
#openai-api-type: xxx
|
||||
|
||||
## Specify the api_version
|
||||
#openai-api-version:
|
||||
#openai-api-version: xxx
|
||||
|
||||
## Specify the deployment_id
|
||||
#openai-api-deployment-id:
|
||||
#openai-api-deployment-id: xxx
|
||||
|
||||
## Specify the OpenAI organization ID
|
||||
#openai-organization-id:
|
||||
#openai-organization-id: xxx
|
||||
|
||||
## Specify a file with aider model settings for unknown models
|
||||
#model-settings-file: .aider.model.settings.yml
|
||||
|
@ -120,23 +143,50 @@ cog.outl("```")
|
|||
#verify-ssl: true
|
||||
|
||||
## Specify what edit format the LLM should use (default depends on model)
|
||||
#edit-format:
|
||||
#edit-format: xxx
|
||||
|
||||
## Use architect edit format for the main chat
|
||||
#architect: false
|
||||
|
||||
## Specify the model to use for commit messages and chat history summarization (default depends on --model)
|
||||
#weak-model:
|
||||
#weak-model: xxx
|
||||
|
||||
## Specify the model to use for editor tasks (default depends on --model)
|
||||
#editor-model: xxx
|
||||
|
||||
## Specify the edit format for the editor model (default: depends on editor model)
|
||||
#editor-edit-format: xxx
|
||||
|
||||
## Only work with models that have meta-data available (default: True)
|
||||
#show-model-warnings: true
|
||||
|
||||
## Max number of tokens to use for repo map, use 0 to disable (default: 1024)
|
||||
#map-tokens:
|
||||
|
||||
## Maximum number of tokens to use for chat history. If not specified, uses the model's max_chat_history_tokens.
|
||||
#max-chat-history-tokens:
|
||||
## Soft limit on tokens for chat history, after which summarization begins. If unspecified, defaults to the model's max_chat_history_tokens.
|
||||
#max-chat-history-tokens: xxx
|
||||
|
||||
## Specify the .env file to load (default: .env in git root)
|
||||
#env-file: .env
|
||||
|
||||
#################
|
||||
# Cache Settings:
|
||||
|
||||
## Enable caching of prompts (default: False)
|
||||
#cache-prompts: false
|
||||
|
||||
## Number of times to ping at 5min intervals to keep prompt cache warm (default: 0)
|
||||
#cache-keepalive-pings: false
|
||||
|
||||
###################
|
||||
# Repomap Settings:
|
||||
|
||||
## Suggested number of tokens to use for repo map, use 0 to disable (default: 1024)
|
||||
#map-tokens: xxx
|
||||
|
||||
## Control how often the repo map is refreshed. Options: auto, always, files, manual (default: auto)
|
||||
#map-refresh: auto
|
||||
|
||||
## Multiplier for map tokens when no files are specified (default: 2)
|
||||
#map-multiplier-no-files: true
|
||||
|
||||
################
|
||||
# History Files:
|
||||
|
||||
|
@ -150,7 +200,7 @@ cog.outl("```")
|
|||
#restore-chat-history: false
|
||||
|
||||
## Log the conversation with the LLM to this file (for example, .aider.llm.history)
|
||||
#llm-history-file:
|
||||
#llm-history-file: xxx
|
||||
|
||||
##################
|
||||
# Output Settings:
|
||||
|
@ -171,14 +221,29 @@ cog.outl("```")
|
|||
#user-input-color: #00cc00
|
||||
|
||||
## Set the color for tool output (default: None)
|
||||
#tool-output-color:
|
||||
#tool-output-color: xxx
|
||||
|
||||
## Set the color for tool error messages (default: red)
|
||||
## Set the color for tool error messages (default: #FF2222)
|
||||
#tool-error-color: #FF2222
|
||||
|
||||
## Set the color for tool warning messages (default: #FFA500)
|
||||
#tool-warning-color: #FFA500
|
||||
|
||||
## Set the color for assistant output (default: #0088ff)
|
||||
#assistant-output-color: #0088ff
|
||||
|
||||
## Set the color for the completion menu (default: terminal's default text color)
|
||||
#completion-menu-color: xxx
|
||||
|
||||
## Set the background color for the completion menu (default: terminal's default background color)
|
||||
#completion-menu-bg-color: xxx
|
||||
|
||||
## Set the color for the current item in the completion menu (default: terminal's default background color)
|
||||
#completion-menu-current-color: xxx
|
||||
|
||||
## Set the background color for the current item in the completion menu (default: terminal's default text color)
|
||||
#completion-menu-current-bg-color: xxx
|
||||
|
||||
## Set the markdown code theme (default: default, other options include monokai, solarized-dark, solarized-light)
|
||||
#code-theme: default
|
||||
|
||||
|
@ -222,11 +287,14 @@ cog.outl("```")
|
|||
#commit: false
|
||||
|
||||
## Specify a custom prompt for generating commit messages
|
||||
#commit-prompt:
|
||||
#commit-prompt: xxx
|
||||
|
||||
## Perform a dry run without modifying files (default: False)
|
||||
#dry-run: false
|
||||
|
||||
## Skip the sanity check for the git repository (default: False)
|
||||
#skip-sanity-check-repo: false
|
||||
|
||||
########################
|
||||
# Fixing and committing:
|
||||
|
||||
|
@ -234,13 +302,18 @@ cog.outl("```")
|
|||
#lint: false
|
||||
|
||||
## Specify lint commands to run for different languages, eg: "python: flake8 --select=..." (can be used multiple times)
|
||||
#lint-cmd: xxx
|
||||
## Specify multiple values like this:
|
||||
#lint-cmd:
|
||||
# - xxx
|
||||
# - yyy
|
||||
# - zzz
|
||||
|
||||
## Enable/disable automatic linting after changes (default: True)
|
||||
#auto-lint: true
|
||||
|
||||
## Specify command to run tests
|
||||
#test-cmd:
|
||||
#test-cmd: xxx
|
||||
|
||||
## Enable/disable automatic testing after changes (default: False)
|
||||
#auto-test: false
|
||||
|
@ -264,19 +337,29 @@ cog.outl("```")
|
|||
# Other Settings:
|
||||
|
||||
## specify a file to edit (can be used multiple times)
|
||||
#file: xxx
|
||||
## Specify multiple values like this:
|
||||
#file:
|
||||
# - xxx
|
||||
# - yyy
|
||||
# - zzz
|
||||
|
||||
## specify a read-only file (can be used multiple times)
|
||||
#read: xxx
|
||||
## Specify multiple values like this:
|
||||
#read:
|
||||
# - xxx
|
||||
# - yyy
|
||||
# - zzz
|
||||
|
||||
## Use VI editing mode in the terminal (default: False)
|
||||
#vim: false
|
||||
|
||||
## Specify the language for voice using ISO 639-1 code (default: auto)
|
||||
#voice-language: en
|
||||
## Specify the language to use in the chat (default: None, uses system settings)
|
||||
#chat-language: xxx
|
||||
|
||||
## Show the version number and exit
|
||||
#version:
|
||||
#version: xxx
|
||||
|
||||
## Check for updates and return status in the exit code
|
||||
#just-check-update: false
|
||||
|
@ -284,11 +367,17 @@ cog.outl("```")
|
|||
## Check for new aider versions on launch
|
||||
#check-update: true
|
||||
|
||||
## Install the latest version from the main branch
|
||||
#install-main-branch: false
|
||||
|
||||
## Upgrade aider to the latest version from PyPI
|
||||
#upgrade: false
|
||||
|
||||
## Apply the changes from the given file instead of running the chat (debug)
|
||||
#apply:
|
||||
#apply: xxx
|
||||
|
||||
## Always say yes to every confirmation
|
||||
#yes: false
|
||||
#yes-always: false
|
||||
|
||||
## Enable verbose output
|
||||
#verbose: false
|
||||
|
@ -303,18 +392,36 @@ cog.outl("```")
|
|||
#exit: false
|
||||
|
||||
## Specify a single message to send the LLM, process reply then exit (disables chat mode)
|
||||
#message:
|
||||
#message: xxx
|
||||
|
||||
## Specify a file containing the message to send the LLM, process reply, then exit (disables chat mode)
|
||||
#message-file:
|
||||
#message-file: xxx
|
||||
|
||||
## Load and execute /commands from a file on launch
|
||||
#load: xxx
|
||||
|
||||
## Specify the encoding for input and output (default: utf-8)
|
||||
#encoding: utf-8
|
||||
|
||||
## Specify the config file (default: search for .aider.conf.yml in git root, cwd or home directory)
|
||||
#config:
|
||||
#config: xxx
|
||||
|
||||
## Run aider in your browser
|
||||
#gui: false
|
||||
|
||||
## Enable/disable suggesting shell commands (default: True)
|
||||
#suggest-shell-commands: true
|
||||
|
||||
## Enable/disable fancy input with history and completion (default: True)
|
||||
#fancy-input: true
|
||||
|
||||
#################
|
||||
# Voice Settings:
|
||||
|
||||
## Audio format for voice recording (default: wav). webm and mp3 require ffmpeg
|
||||
#voice-format: wav
|
||||
|
||||
## Specify the language for voice using ISO 639-1 code (default: auto)
|
||||
#voice-language: en
|
||||
```
|
||||
<!--[[[end]]]-->
|
||||
|
|
|
@ -28,7 +28,7 @@ If the files above exist, they will be loaded in that order. Files loaded last w
|
|||
|
||||
Below is a sample `.env` file, which you
|
||||
can also
|
||||
[download from GitHub](https://github.com/paul-gauthier/aider/blob/main/aider/website/assets/sample.env).
|
||||
[download from GitHub](https://github.com/Aider-AI/aider/blob/main/aider/website/assets/sample.env).
|
||||
|
||||
<!--[[[cog
|
||||
from aider.args import get_sample_dotenv
|
||||
|
@ -75,13 +75,13 @@ cog.outl("```")
|
|||
## Use claude-3-opus-20240229 model for the main chat
|
||||
#AIDER_OPUS=
|
||||
|
||||
## Use claude-3-5-sonnet-20240620 model for the main chat
|
||||
## Use claude-3-5-sonnet-20241022 model for the main chat
|
||||
#AIDER_SONNET=
|
||||
|
||||
## Use gpt-4-0613 model for the main chat
|
||||
#AIDER_4=
|
||||
|
||||
## Use gpt-4o model for the main chat
|
||||
## Use gpt-4o-2024-08-06 model for the main chat
|
||||
#AIDER_4O=
|
||||
|
||||
## Use gpt-4o-mini model for the main chat
|
||||
|
@ -96,11 +96,17 @@ cog.outl("```")
|
|||
## Use deepseek/deepseek-coder model for the main chat
|
||||
#AIDER_DEEPSEEK=
|
||||
|
||||
## Use o1-mini model for the main chat
|
||||
#AIDER_O1_MINI=
|
||||
|
||||
## Use o1-preview model for the main chat
|
||||
#AIDER_O1_PREVIEW=
|
||||
|
||||
#################
|
||||
# Model Settings:
|
||||
|
||||
## List known models which match the (partial) MODEL name
|
||||
#AIDER_MODELS=
|
||||
#AIDER_LIST_MODELS=
|
||||
|
||||
## Specify the api base url
|
||||
#OPENAI_API_BASE=
|
||||
|
@ -129,21 +135,48 @@ cog.outl("```")
|
|||
## Specify what edit format the LLM should use (default depends on model)
|
||||
#AIDER_EDIT_FORMAT=
|
||||
|
||||
## Use architect edit format for the main chat
|
||||
#AIDER_ARCHITECT=
|
||||
|
||||
## Specify the model to use for commit messages and chat history summarization (default depends on --model)
|
||||
#AIDER_WEAK_MODEL=
|
||||
|
||||
## Specify the model to use for editor tasks (default depends on --model)
|
||||
#AIDER_EDITOR_MODEL=
|
||||
|
||||
## Specify the edit format for the editor model (default: depends on editor model)
|
||||
#AIDER_EDITOR_EDIT_FORMAT=
|
||||
|
||||
## Only work with models that have meta-data available (default: True)
|
||||
#AIDER_SHOW_MODEL_WARNINGS=true
|
||||
|
||||
## Max number of tokens to use for repo map, use 0 to disable (default: 1024)
|
||||
#AIDER_MAP_TOKENS=
|
||||
|
||||
## Maximum number of tokens to use for chat history. If not specified, uses the model's max_chat_history_tokens.
|
||||
## Soft limit on tokens for chat history, after which summarization begins. If unspecified, defaults to the model's max_chat_history_tokens.
|
||||
#AIDER_MAX_CHAT_HISTORY_TOKENS=
|
||||
|
||||
## Specify the .env file to load (default: .env in git root)
|
||||
#AIDER_ENV_FILE=.env
|
||||
|
||||
#################
|
||||
# Cache Settings:
|
||||
|
||||
## Enable caching of prompts (default: False)
|
||||
#AIDER_CACHE_PROMPTS=false
|
||||
|
||||
## Number of times to ping at 5min intervals to keep prompt cache warm (default: 0)
|
||||
#AIDER_CACHE_KEEPALIVE_PINGS=false
|
||||
|
||||
###################
|
||||
# Repomap Settings:
|
||||
|
||||
## Suggested number of tokens to use for repo map, use 0 to disable (default: 1024)
|
||||
#AIDER_MAP_TOKENS=
|
||||
|
||||
## Control how often the repo map is refreshed. Options: auto, always, files, manual (default: auto)
|
||||
#AIDER_MAP_REFRESH=auto
|
||||
|
||||
## Multiplier for map tokens when no files are specified (default: 2)
|
||||
#AIDER_MAP_MULTIPLIER_NO_FILES=true
|
||||
|
||||
################
|
||||
# History Files:
|
||||
|
||||
|
@ -180,12 +213,27 @@ cog.outl("```")
|
|||
## Set the color for tool output (default: None)
|
||||
#AIDER_TOOL_OUTPUT_COLOR=
|
||||
|
||||
## Set the color for tool error messages (default: red)
|
||||
## Set the color for tool error messages (default: #FF2222)
|
||||
#AIDER_TOOL_ERROR_COLOR=#FF2222
|
||||
|
||||
## Set the color for tool warning messages (default: #FFA500)
|
||||
#AIDER_TOOL_WARNING_COLOR=#FFA500
|
||||
|
||||
## Set the color for assistant output (default: #0088ff)
|
||||
#AIDER_ASSISTANT_OUTPUT_COLOR=#0088ff
|
||||
|
||||
## Set the color for the completion menu (default: terminal's default text color)
|
||||
#AIDER_COMPLETION_MENU_COLOR=
|
||||
|
||||
## Set the background color for the completion menu (default: terminal's default background color)
|
||||
#AIDER_COMPLETION_MENU_BG_COLOR=
|
||||
|
||||
## Set the color for the current item in the completion menu (default: terminal's default background color)
|
||||
#AIDER_COMPLETION_MENU_CURRENT_COLOR=
|
||||
|
||||
## Set the background color for the current item in the completion menu (default: terminal's default text color)
|
||||
#AIDER_COMPLETION_MENU_CURRENT_BG_COLOR=
|
||||
|
||||
## Set the markdown code theme (default: default, other options include monokai, solarized-dark, solarized-light)
|
||||
#AIDER_CODE_THEME=default
|
||||
|
||||
|
@ -234,6 +282,9 @@ cog.outl("```")
|
|||
## Perform a dry run without modifying files (default: False)
|
||||
#AIDER_DRY_RUN=false
|
||||
|
||||
## Skip the sanity check for the git repository (default: False)
|
||||
#AIDER_SKIP_SANITY_CHECK_REPO=false
|
||||
|
||||
########################
|
||||
# Fixing and committing:
|
||||
|
||||
|
@ -279,8 +330,8 @@ cog.outl("```")
|
|||
## Use VI editing mode in the terminal (default: False)
|
||||
#AIDER_VIM=false
|
||||
|
||||
## Specify the language for voice using ISO 639-1 code (default: auto)
|
||||
#AIDER_VOICE_LANGUAGE=en
|
||||
## Specify the language to use in the chat (default: None, uses system settings)
|
||||
#AIDER_CHAT_LANGUAGE=
|
||||
|
||||
## Check for updates and return status in the exit code
|
||||
#AIDER_JUST_CHECK_UPDATE=false
|
||||
|
@ -288,11 +339,17 @@ cog.outl("```")
|
|||
## Check for new aider versions on launch
|
||||
#AIDER_CHECK_UPDATE=true
|
||||
|
||||
## Install the latest version from the main branch
|
||||
#AIDER_INSTALL_MAIN_BRANCH=false
|
||||
|
||||
## Upgrade aider to the latest version from PyPI
|
||||
#AIDER_UPGRADE=false
|
||||
|
||||
## Apply the changes from the given file instead of running the chat (debug)
|
||||
#AIDER_APPLY=
|
||||
|
||||
## Always say yes to every confirmation
|
||||
#AIDER_YES=
|
||||
#AIDER_YES_ALWAYS=
|
||||
|
||||
## Enable verbose output
|
||||
#AIDER_VERBOSE=false
|
||||
|
@ -312,11 +369,29 @@ cog.outl("```")
|
|||
## Specify a file containing the message to send the LLM, process reply, then exit (disables chat mode)
|
||||
#AIDER_MESSAGE_FILE=
|
||||
|
||||
## Load and execute /commands from a file on launch
|
||||
#AIDER_LOAD=
|
||||
|
||||
## Specify the encoding for input and output (default: utf-8)
|
||||
#AIDER_ENCODING=utf-8
|
||||
|
||||
## Run aider in your browser
|
||||
#AIDER_GUI=false
|
||||
|
||||
## Enable/disable suggesting shell commands (default: True)
|
||||
#AIDER_SUGGEST_SHELL_COMMANDS=true
|
||||
|
||||
## Enable/disable fancy input with history and completion (default: True)
|
||||
#AIDER_FANCY_INPUT=true
|
||||
|
||||
#################
|
||||
# Voice Settings:
|
||||
|
||||
## Audio format for voice recording (default: wav). webm and mp3 require ffmpeg
|
||||
#AIDER_VOICE_FORMAT=wav
|
||||
|
||||
## Specify the language for voice using ISO 639-1 code (default: auto)
|
||||
#AIDER_VOICE_LANGUAGE=en
|
||||
```
|
||||
<!--[[[end]]]-->
|
||||
|
||||
|
|
|
@ -27,21 +27,30 @@ cog.out(get_md_help())
|
|||
```
|
||||
usage: aider [-h] [--openai-api-key] [--anthropic-api-key] [--model]
|
||||
[--opus] [--sonnet] [--4] [--4o] [--mini] [--4-turbo]
|
||||
[--35turbo] [--deepseek] [--models] [--openai-api-base]
|
||||
[--openai-api-type] [--openai-api-version]
|
||||
[--openai-api-deployment-id] [--openai-organization-id]
|
||||
[--model-settings-file] [--model-metadata-file]
|
||||
[--35turbo] [--deepseek] [--o1-mini] [--o1-preview]
|
||||
[--list-models] [--openai-api-base] [--openai-api-type]
|
||||
[--openai-api-version] [--openai-api-deployment-id]
|
||||
[--openai-organization-id] [--model-settings-file]
|
||||
[--model-metadata-file]
|
||||
[--verify-ssl | --no-verify-ssl] [--edit-format]
|
||||
[--weak-model]
|
||||
[--architect] [--weak-model] [--editor-model]
|
||||
[--editor-edit-format]
|
||||
[--show-model-warnings | --no-show-model-warnings]
|
||||
[--map-tokens] [--max-chat-history-tokens] [--env-file]
|
||||
[--max-chat-history-tokens] [--env-file]
|
||||
[--cache-prompts | --no-cache-prompts]
|
||||
[--cache-keepalive-pings] [--map-tokens]
|
||||
[--map-refresh] [--map-multiplier-no-files]
|
||||
[--input-history-file] [--chat-history-file]
|
||||
[--restore-chat-history | --no-restore-chat-history]
|
||||
[--llm-history-file] [--dark-mode] [--light-mode]
|
||||
[--pretty | --no-pretty] [--stream | --no-stream]
|
||||
[--user-input-color] [--tool-output-color]
|
||||
[--tool-error-color] [--assistant-output-color]
|
||||
[--code-theme] [--show-diffs] [--git | --no-git]
|
||||
[--tool-error-color] [--tool-warning-color]
|
||||
[--assistant-output-color] [--completion-menu-color]
|
||||
[--completion-menu-bg-color]
|
||||
[--completion-menu-current-color]
|
||||
[--completion-menu-current-bg-color] [--code-theme]
|
||||
[--show-diffs] [--git | --no-git]
|
||||
[--gitignore | --no-gitignore] [--aiderignore]
|
||||
[--subtree-only] [--auto-commits | --no-auto-commits]
|
||||
[--dirty-commits | --no-dirty-commits]
|
||||
|
@ -50,14 +59,20 @@ usage: aider [-h] [--openai-api-key] [--anthropic-api-key] [--model]
|
|||
[--attribute-commit-message-author | --no-attribute-commit-message-author]
|
||||
[--attribute-commit-message-committer | --no-attribute-commit-message-committer]
|
||||
[--commit] [--commit-prompt] [--dry-run | --no-dry-run]
|
||||
[--lint] [--lint-cmd] [--auto-lint | --no-auto-lint]
|
||||
[--test-cmd] [--auto-test | --no-auto-test] [--test]
|
||||
[--skip-sanity-check-repo] [--lint] [--lint-cmd]
|
||||
[--auto-lint | --no-auto-lint] [--test-cmd]
|
||||
[--auto-test | --no-auto-test] [--test]
|
||||
[--analytics | --no-analytics] [--analytics-log]
|
||||
[--analytics-disable] [--file] [--read] [--vim]
|
||||
[--voice-language] [--version] [--just-check-update]
|
||||
[--check-update | --no-check-update] [--apply] [--yes]
|
||||
[-v] [--show-repo-map] [--show-prompts] [--exit]
|
||||
[--message] [--message-file] [--encoding] [-c] [--gui]
|
||||
[--chat-language] [--version] [--just-check-update]
|
||||
[--check-update | --no-check-update]
|
||||
[--install-main-branch] [--upgrade] [--apply]
|
||||
[--yes-always] [-v] [--show-repo-map] [--show-prompts]
|
||||
[--exit] [--message] [--message-file] [--load]
|
||||
[--encoding] [-c] [--gui]
|
||||
[--suggest-shell-commands | --no-suggest-shell-commands]
|
||||
[--fancy-input | --no-fancy-input] [--voice-format]
|
||||
[--voice-language]
|
||||
|
||||
```
|
||||
|
||||
|
@ -88,7 +103,7 @@ Use claude-3-opus-20240229 model for the main chat
|
|||
Environment variable: `AIDER_OPUS`
|
||||
|
||||
### `--sonnet`
|
||||
Use claude-3-5-sonnet-20240620 model for the main chat
|
||||
Use claude-3-5-sonnet-20241022 model for the main chat
|
||||
Environment variable: `AIDER_SONNET`
|
||||
|
||||
### `--4`
|
||||
|
@ -99,7 +114,7 @@ Aliases:
|
|||
- `-4`
|
||||
|
||||
### `--4o`
|
||||
Use gpt-4o model for the main chat
|
||||
Use gpt-4o-2024-08-06 model for the main chat
|
||||
Environment variable: `AIDER_4O`
|
||||
|
||||
### `--mini`
|
||||
|
@ -123,11 +138,22 @@ Aliases:
|
|||
Use deepseek/deepseek-coder model for the main chat
|
||||
Environment variable: `AIDER_DEEPSEEK`
|
||||
|
||||
### `--o1-mini`
|
||||
Use o1-mini model for the main chat
|
||||
Environment variable: `AIDER_O1_MINI`
|
||||
|
||||
### `--o1-preview`
|
||||
Use o1-preview model for the main chat
|
||||
Environment variable: `AIDER_O1_PREVIEW`
|
||||
|
||||
## Model Settings:
|
||||
|
||||
### `--models MODEL`
|
||||
### `--list-models MODEL`
|
||||
List known models which match the (partial) MODEL name
|
||||
Environment variable: `AIDER_MODELS`
|
||||
Environment variable: `AIDER_LIST_MODELS`
|
||||
Aliases:
|
||||
- `--list-models MODEL`
|
||||
- `--models MODEL`
|
||||
|
||||
### `--openai-api-base OPENAI_API_BASE`
|
||||
Specify the api base url
|
||||
|
@ -174,10 +200,22 @@ Aliases:
|
|||
- `--edit-format EDIT_FORMAT`
|
||||
- `--chat-mode EDIT_FORMAT`
|
||||
|
||||
### `--architect`
|
||||
Use architect edit format for the main chat
|
||||
Environment variable: `AIDER_ARCHITECT`
|
||||
|
||||
### `--weak-model WEAK_MODEL`
|
||||
Specify the model to use for commit messages and chat history summarization (default depends on --model)
|
||||
Environment variable: `AIDER_WEAK_MODEL`
|
||||
|
||||
### `--editor-model EDITOR_MODEL`
|
||||
Specify the model to use for editor tasks (default depends on --model)
|
||||
Environment variable: `AIDER_EDITOR_MODEL`
|
||||
|
||||
### `--editor-edit-format EDITOR_EDIT_FORMAT`
|
||||
Specify the edit format for the editor model (default: depends on editor model)
|
||||
Environment variable: `AIDER_EDITOR_EDIT_FORMAT`
|
||||
|
||||
### `--show-model-warnings`
|
||||
Only work with models that have meta-data available (default: True)
|
||||
Default: True
|
||||
|
@ -186,12 +224,8 @@ Aliases:
|
|||
- `--show-model-warnings`
|
||||
- `--no-show-model-warnings`
|
||||
|
||||
### `--map-tokens VALUE`
|
||||
Max number of tokens to use for repo map, use 0 to disable (default: 1024)
|
||||
Environment variable: `AIDER_MAP_TOKENS`
|
||||
|
||||
### `--max-chat-history-tokens VALUE`
|
||||
Maximum number of tokens to use for chat history. If not specified, uses the model's max_chat_history_tokens.
|
||||
Soft limit on tokens for chat history, after which summarization begins. If unspecified, defaults to the model's max_chat_history_tokens.
|
||||
Environment variable: `AIDER_MAX_CHAT_HISTORY_TOKENS`
|
||||
|
||||
### `--env-file ENV_FILE`
|
||||
|
@ -199,6 +233,37 @@ Specify the .env file to load (default: .env in git root)
|
|||
Default: .env
|
||||
Environment variable: `AIDER_ENV_FILE`
|
||||
|
||||
## Cache Settings:
|
||||
|
||||
### `--cache-prompts`
|
||||
Enable caching of prompts (default: False)
|
||||
Default: False
|
||||
Environment variable: `AIDER_CACHE_PROMPTS`
|
||||
Aliases:
|
||||
- `--cache-prompts`
|
||||
- `--no-cache-prompts`
|
||||
|
||||
### `--cache-keepalive-pings VALUE`
|
||||
Number of times to ping at 5min intervals to keep prompt cache warm (default: 0)
|
||||
Default: 0
|
||||
Environment variable: `AIDER_CACHE_KEEPALIVE_PINGS`
|
||||
|
||||
## Repomap Settings:
|
||||
|
||||
### `--map-tokens VALUE`
|
||||
Suggested number of tokens to use for repo map, use 0 to disable (default: 1024)
|
||||
Environment variable: `AIDER_MAP_TOKENS`
|
||||
|
||||
### `--map-refresh VALUE`
|
||||
Control how often the repo map is refreshed. Options: auto, always, files, manual (default: auto)
|
||||
Default: auto
|
||||
Environment variable: `AIDER_MAP_REFRESH`
|
||||
|
||||
### `--map-multiplier-no-files VALUE`
|
||||
Multiplier for map tokens when no files are specified (default: 2)
|
||||
Default: 2
|
||||
Environment variable: `AIDER_MAP_MULTIPLIER_NO_FILES`
|
||||
|
||||
## History Files:
|
||||
|
||||
### `--input-history-file INPUT_HISTORY_FILE`
|
||||
|
@ -261,15 +326,36 @@ Set the color for tool output (default: None)
|
|||
Environment variable: `AIDER_TOOL_OUTPUT_COLOR`
|
||||
|
||||
### `--tool-error-color VALUE`
|
||||
Set the color for tool error messages (default: red)
|
||||
Set the color for tool error messages (default: #FF2222)
|
||||
Default: #FF2222
|
||||
Environment variable: `AIDER_TOOL_ERROR_COLOR`
|
||||
|
||||
### `--tool-warning-color VALUE`
|
||||
Set the color for tool warning messages (default: #FFA500)
|
||||
Default: #FFA500
|
||||
Environment variable: `AIDER_TOOL_WARNING_COLOR`
|
||||
|
||||
### `--assistant-output-color VALUE`
|
||||
Set the color for assistant output (default: #0088ff)
|
||||
Default: #0088ff
|
||||
Environment variable: `AIDER_ASSISTANT_OUTPUT_COLOR`
|
||||
|
||||
### `--completion-menu-color COLOR`
|
||||
Set the color for the completion menu (default: terminal's default text color)
|
||||
Environment variable: `AIDER_COMPLETION_MENU_COLOR`
|
||||
|
||||
### `--completion-menu-bg-color COLOR`
|
||||
Set the background color for the completion menu (default: terminal's default background color)
|
||||
Environment variable: `AIDER_COMPLETION_MENU_BG_COLOR`
|
||||
|
||||
### `--completion-menu-current-color COLOR`
|
||||
Set the color for the current item in the completion menu (default: terminal's default background color)
|
||||
Environment variable: `AIDER_COMPLETION_MENU_CURRENT_COLOR`
|
||||
|
||||
### `--completion-menu-current-bg-color COLOR`
|
||||
Set the background color for the current item in the completion menu (default: terminal's default text color)
|
||||
Environment variable: `AIDER_COMPLETION_MENU_CURRENT_BG_COLOR`
|
||||
|
||||
### `--code-theme VALUE`
|
||||
Set the markdown code theme (default: default, other options include monokai, solarized-dark, solarized-light)
|
||||
Default: default
|
||||
|
@ -373,6 +459,11 @@ Aliases:
|
|||
- `--dry-run`
|
||||
- `--no-dry-run`
|
||||
|
||||
### `--skip-sanity-check-repo`
|
||||
Skip the sanity check for the git repository (default: False)
|
||||
Default: False
|
||||
Environment variable: `AIDER_SKIP_SANITY_CHECK_REPO`
|
||||
|
||||
## Fixing and committing:
|
||||
|
||||
### `--lint`
|
||||
|
@ -426,7 +517,7 @@ Specify a file to log analytics events
|
|||
Environment variable: `AIDER_ANALYTICS_LOG`
|
||||
|
||||
### `--analytics-disable`
|
||||
Disable analytics forever
|
||||
Permanently disable analytics
|
||||
Default: False
|
||||
Environment variable: `AIDER_ANALYTICS_DISABLE`
|
||||
|
||||
|
@ -445,10 +536,9 @@ Use VI editing mode in the terminal (default: False)
|
|||
Default: False
|
||||
Environment variable: `AIDER_VIM`
|
||||
|
||||
### `--voice-language VOICE_LANGUAGE`
|
||||
Specify the language for voice using ISO 639-1 code (default: auto)
|
||||
Default: en
|
||||
Environment variable: `AIDER_VOICE_LANGUAGE`
|
||||
### `--chat-language CHAT_LANGUAGE`
|
||||
Specify the language to use in the chat (default: None, uses system settings)
|
||||
Environment variable: `AIDER_CHAT_LANGUAGE`
|
||||
|
||||
### `--version`
|
||||
Show the version number and exit
|
||||
|
@ -466,13 +556,26 @@ Aliases:
|
|||
- `--check-update`
|
||||
- `--no-check-update`
|
||||
|
||||
### `--install-main-branch`
|
||||
Install the latest version from the main branch
|
||||
Default: False
|
||||
Environment variable: `AIDER_INSTALL_MAIN_BRANCH`
|
||||
|
||||
### `--upgrade`
|
||||
Upgrade aider to the latest version from PyPI
|
||||
Default: False
|
||||
Environment variable: `AIDER_UPGRADE`
|
||||
Aliases:
|
||||
- `--upgrade`
|
||||
- `--update`
|
||||
|
||||
### `--apply FILE`
|
||||
Apply the changes from the given file instead of running the chat (debug)
|
||||
Environment variable: `AIDER_APPLY`
|
||||
|
||||
### `--yes`
|
||||
### `--yes-always`
|
||||
Always say yes to every confirmation
|
||||
Environment variable: `AIDER_YES`
|
||||
Environment variable: `AIDER_YES_ALWAYS`
|
||||
|
||||
### `--verbose`
|
||||
Enable verbose output
|
||||
|
@ -512,6 +615,10 @@ Aliases:
|
|||
- `--message-file MESSAGE_FILE`
|
||||
- `-f MESSAGE_FILE`
|
||||
|
||||
### `--load LOAD_FILE`
|
||||
Load and execute /commands from a file on launch
|
||||
Environment variable: `AIDER_LOAD`
|
||||
|
||||
### `--encoding VALUE`
|
||||
Specify the encoding for input and output (default: utf-8)
|
||||
Default: utf-8
|
||||
|
@ -530,4 +637,32 @@ Environment variable: `AIDER_GUI`
|
|||
Aliases:
|
||||
- `--gui`
|
||||
- `--browser`
|
||||
|
||||
### `--suggest-shell-commands`
|
||||
Enable/disable suggesting shell commands (default: True)
|
||||
Default: True
|
||||
Environment variable: `AIDER_SUGGEST_SHELL_COMMANDS`
|
||||
Aliases:
|
||||
- `--suggest-shell-commands`
|
||||
- `--no-suggest-shell-commands`
|
||||
|
||||
### `--fancy-input`
|
||||
Enable/disable fancy input with history and completion (default: True)
|
||||
Default: True
|
||||
Environment variable: `AIDER_FANCY_INPUT`
|
||||
Aliases:
|
||||
- `--fancy-input`
|
||||
- `--no-fancy-input`
|
||||
|
||||
## Voice Settings:
|
||||
|
||||
### `--voice-format VOICE_FORMAT`
|
||||
Audio format for voice recording (default: wav). webm and mp3 require ffmpeg
|
||||
Default: wav
|
||||
Environment variable: `AIDER_VOICE_FORMAT`
|
||||
|
||||
### `--voice-language VOICE_LANGUAGE`
|
||||
Specify the language for voice using ISO 639-1 code (default: auto)
|
||||
Default: en
|
||||
Environment variable: `AIDER_VOICE_LANGUAGE`
|
||||
<!--[[[end]]]-->
|
||||
|
|
|
@ -12,6 +12,7 @@ nav_exclude: true
|
|||
|
||||

|
||||
|
||||
|
||||
## Updated
|
||||
|
||||
Aider no longer uses ctags to build a repo map.
|
||||
|
@ -111,9 +112,9 @@ like functions and methods also include their signatures.
|
|||
|
||||
Here's a
|
||||
sample of the map of the aider repo, just showing the maps of
|
||||
[main.py](https://github.com/paul-gauthier/aider/blob/main/aider/main.py)
|
||||
[main.py](https://github.com/Aider-AI/aider/blob/main/aider/main.py)
|
||||
and
|
||||
[io.py](https://github.com/paul-gauthier/aider/blob/main/aider/io.py)
|
||||
[io.py](https://github.com/Aider-AI/aider/blob/main/aider/io.py)
|
||||
:
|
||||
|
||||
```
|
||||
|
@ -228,7 +229,7 @@ Some possible approaches to reducing the amount of map data are:
|
|||
|
||||
- Distill the global map, to prioritize important symbols and discard "internal" or otherwise less globally relevant identifiers. Possibly enlist `gpt-3.5-turbo` to perform this distillation in a flexible and language agnostic way.
|
||||
- Provide a mechanism for GPT to start with a distilled subset of the global map, and let it ask to see more detail about subtrees or keywords that it feels are relevant to the current coding task.
|
||||
- Attempt to analyize the natural language coding task given by the user and predict which subset of the repo map is relevant. Possibly by analysis of prior coding chats within the specific repo. Work on certain files or types of features may require certain somewhat predictable context from elsewhere in the repo. Vector and keyword search against the chat history, repo map or codebase may help here.
|
||||
- Attempt to analyze the natural language coding task given by the user and predict which subset of the repo map is relevant. Possibly by analysis of prior coding chats within the specific repo. Work on certain files or types of features may require certain somewhat predictable context from elsewhere in the repo. Vector and keyword search against the chat history, repo map or codebase may help here.
|
||||
|
||||
One key goal is to prefer solutions which are language agnostic or
|
||||
which can be easily deployed against most popular code languages.
|
||||
|
|
|
@ -37,7 +37,7 @@ If you still wish to add lots of files to the chat, you can:
|
|||
|
||||
- Use a wildcard when you launch aider: `aider src/*.py`
|
||||
- Use a wildcard with the in-chat `/add` command: `/add src/*.py`
|
||||
- Give the `/add` command a directory name and it will recurisvely add every file under that dir: `/add src`
|
||||
- Give the `/add` command a directory name and it will recursively add every file under that dir: `/add src`
|
||||
|
||||
## Can I use aider in a large (mono) repo?
|
||||
|
||||
|
@ -45,7 +45,14 @@ Aider will work in any size repo, but is not optimized for quick
|
|||
performance and response time in very large repos.
|
||||
There are some things you can do to improve performance.
|
||||
|
||||
Change into a sub directory of your repo that contains the
|
||||
Be sure to check the
|
||||
[general usage tips](/docs/usage/tips.html)
|
||||
before considering this large-repo specific advice.
|
||||
To get the best results from aider you want to
|
||||
be thoughtful about how you add files to the chat,
|
||||
regardless of your repo size.
|
||||
|
||||
You can change into a sub directory of your repo that contains the
|
||||
code you want to work on and use the `--subtree-only` switch.
|
||||
This will tell aider to ignore the repo outside of the
|
||||
directory you start in.
|
||||
|
@ -59,23 +66,85 @@ to use for ignore patterns.
|
|||
You might have a few of these handy for when you want to work on
|
||||
frontend, backend, etc portions of your repo.
|
||||
|
||||
## Can I use aider with multiple git repos at once?
|
||||
|
||||
Currently aider can only work with one repo at a time.
|
||||
|
||||
There are some things you can try if you need to work with
|
||||
multiple interrelated repos:
|
||||
|
||||
- You can run aider in repo-A where you need to make a change
|
||||
and use `/read` to add some files read-only from another repo-B.
|
||||
This can let aider see key functions or docs from the other repo.
|
||||
- You can run `aider --show-repo-map > map.md` within each
|
||||
repo to create repo maps.
|
||||
You could then run aider in repo-A and
|
||||
use `/read ../path/to/repo-B/map.md` to share
|
||||
a high level map of the other repo.
|
||||
- You can use aider to write documentation about a repo.
|
||||
Inside each repo, you could run `aider docs.md`
|
||||
and work with aider to write some markdown docs.
|
||||
Then while using aider to edit repo-A
|
||||
you can `/read ../path/to/repo-B/docs.md` to
|
||||
read in those docs from the other repo.
|
||||
- In repo A, ask aider to write a small script that demonstrates
|
||||
the functionality you want to use in repo B.
|
||||
Then when you're using aider in repo B, you can
|
||||
`/read` in that script.
|
||||
|
||||
## How do I turn on the repository map?
|
||||
|
||||
Depending on the LLM you are using, aider may launch with the repo map disabled by default:
|
||||
|
||||
```
|
||||
Repo-map: disabled
|
||||
```
|
||||
|
||||
This is because weaker models get easily overwhelmed and confused by the content of the
|
||||
repo map. They sometimes mistakenly try to edit the code in the repo map.
|
||||
The repo map is usually disabled for a good reason.
|
||||
|
||||
If you would like to force it on, you can run aider with `--map-tokens 1024`.
|
||||
|
||||
## How do I include the git history in the context?
|
||||
|
||||
When starting a fresh aider session, you can include recent git history in the chat context. This can be useful for providing the LLM with information about recent changes. To do this:
|
||||
|
||||
1. Use the `/run` command with `git diff` to show recent changes:
|
||||
```
|
||||
/run git diff HEAD~1
|
||||
```
|
||||
This will include the diff of the last commit in the chat history.
|
||||
|
||||
2. To include diffs from multiple commits, increase the number after the tilde:
|
||||
```
|
||||
/run git diff HEAD~3
|
||||
```
|
||||
This will show changes from the last three commits.
|
||||
|
||||
Remember, the chat history already includes recent changes made during the current session, so this tip is most useful when starting a new aider session and you want to provide context about recent work.
|
||||
|
||||
{: .tip }
|
||||
The `/git` command will not work for this purpose, as its output is not included in the chat.
|
||||
|
||||
## How can I run aider locally from source code?
|
||||
|
||||
To run the project locally, follow these steps:
|
||||
|
||||
```
|
||||
# Clone the repository:
|
||||
git clone git@github.com:paul-gauthier/aider.git
|
||||
# Clone the repository
|
||||
git clone git@github.com:Aider-AI/aider.git
|
||||
|
||||
# Navigate to the project directory:
|
||||
# Navigate to the project directory
|
||||
cd aider
|
||||
|
||||
# It's recommended to make a virtual environment
|
||||
|
||||
# Install the dependencies listed in the `requirements.txt` file:
|
||||
# Install aider in editable/development mode,
|
||||
# so it runs from the latest copy of these source files
|
||||
python -m pip install -e .
|
||||
|
||||
# Run the local version of Aider:
|
||||
# Run the local version of aider
|
||||
python -m aider
|
||||
```
|
||||
|
||||
|
@ -122,3 +191,32 @@ You can also refer to the
|
|||
[instructions for installing a development version of aider](https://aider.chat/docs/install/optional.html#install-the-development-version-of-aider).
|
||||
|
||||
|
||||
## Can I share my aider chat transcript?
|
||||
|
||||
Yes, you can now share aider chat logs in a pretty way.
|
||||
|
||||
1. Copy the markdown logs you want to share from `.aider.chat.history.md` and make a github gist. Or publish the raw markdown logs on the web any way you'd like.
|
||||
|
||||
```
|
||||
https://gist.github.com/Aider-AI/2087ab8b64034a078c0a209440ac8be0
|
||||
```
|
||||
|
||||
2. Take the gist URL and append it to:
|
||||
|
||||
```
|
||||
https://aider.chat/share/?mdurl=
|
||||
```
|
||||
|
||||
This will give you a URL like this, which shows the chat history like you'd see in a terminal:
|
||||
|
||||
```
|
||||
https://aider.chat/share/?mdurl=https://gist.github.com/Aider-AI/2087ab8b64034a078c0a209440ac8be0
|
||||
```
|
||||
|
||||
## What is Aider AI LLC?
|
||||
|
||||
Aider AI LLC is the company behind the aider AI coding tool.
|
||||
Aider is
|
||||
[open source and available on GitHub](https://github.com/Aider-AI/aider)
|
||||
under an
|
||||
[Apache 2.0 license](https://github.com/Aider-AI/aider/blob/main/LICENSE.txt).
|
||||
|
|
|
@ -22,9 +22,16 @@ This keeps your edits separate from aider's edits, and makes sure you never lose
|
|||
|
||||
## In-chat commands
|
||||
|
||||
Aider also allows you to use in-chat commands to `/diff` or `/undo` the last change.
|
||||
To do more complex management of your git history, you cat use raw `git` commands,
|
||||
either by using `/git` within the chat, or with standard git tools outside of aider.
|
||||
Aider also allows you to use
|
||||
[in-chat commands](/docs/usage/commands.html)
|
||||
to perform git operations:
|
||||
|
||||
- `/diff` will show all the file changes since the last message you sent.
|
||||
- `/undo` will undo and discard the last change.
|
||||
- `/commit` to commit all dirty changes with a sensible commit message.
|
||||
- `/git` will let you run raw git commands to do more complex management of your git history.
|
||||
|
||||
You can also manage your git history outside of aider with your preferred git tools.
|
||||
|
||||
## Disabling git integration
|
||||
|
||||
|
@ -36,15 +43,18 @@ While it is not recommended, you can disable aider's use of git in a few ways:
|
|||
|
||||
## Commit messages
|
||||
|
||||
Aider sends the `--weak-model` a copy of the diffs and the chat history
|
||||
and asks it to produce a commit message.
|
||||
By default, aider creates commit messages which follow
|
||||
[Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
|
||||
|
||||
You can customize the
|
||||
[commit prompt](https://github.com/paul-gauthier/aider/blob/main/aider/prompts.py#L5)
|
||||
[commit prompt](https://github.com/Aider-AI/aider/blob/main/aider/prompts.py#L5)
|
||||
with the `--commit-prompt` option.
|
||||
You can place that on the command line, or
|
||||
[configure it via a config file or environment variables](https://aider.chat/docs/config.html).
|
||||
|
||||
|
||||
## Commit attribution
|
||||
|
||||
Aider marks commits that it either authored or committed.
|
||||
|
|
|
@ -31,7 +31,7 @@ To work with Anthropic's models like Claude 3.5 Sonnet you need a paid
|
|||
|
||||
```
|
||||
# Install aider
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U --upgrade-strategy only-if-needed aider-chat
|
||||
|
||||
# To work with GPT-4o:
|
||||
$ aider --4o --openai-api-key sk-xxx...
|
||||
|
@ -44,7 +44,7 @@ $ aider --sonnet --anthropic-api-key sk-xxx...
|
|||
|
||||
```
|
||||
# Install aider
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U --upgrade-strategy only-if-needed aider-chat
|
||||
|
||||
# To work with GPT-4o:
|
||||
$ aider --4o --openai-api-key sk-xxx...
|
||||
|
|
|
@ -74,15 +74,11 @@ joshuavial also confirmed that aider works inside a VS Code terminal window.
|
|||
Aider detects if it is running inside VSCode and turns off pretty/color output,
|
||||
since the VSCode terminal doesn't seem to support it well.
|
||||
|
||||
[MattFlower](https://github.com/MattFlower) provided a VSCode plugin for aider:
|
||||
|
||||
[https://marketplace.visualstudio.com/items?itemName=MattFlower.aider](https://marketplace.visualstudio.com/items?itemName=MattFlower.aider)
|
||||
|
||||
### Other editors
|
||||
|
||||
If you are interested in creating an aider plugin for your favorite editor,
|
||||
please let me know by opening a
|
||||
[GitHub issue](https://github.com/paul-gauthier/aider/issues).
|
||||
[GitHub issue](https://github.com/Aider-AI/aider/issues).
|
||||
|
||||
|
||||
## Install the development version of aider
|
||||
|
@ -91,7 +87,7 @@ If you want the very latest development version of aider
|
|||
you can install directly from GitHub:
|
||||
|
||||
```
|
||||
python -m pip install --upgrade git+https://github.com/paul-gauthier/aider.git
|
||||
python -m pip install --upgrade git+https://github.com/Aider-AI/aider.git
|
||||
```
|
||||
|
||||
If you've git cloned the aider repository already, you can install "live" from your local copy. This is mostly useful if you are developing aider and want your current modifications to take effect immediately.
|
||||
|
|
|
@ -25,3 +25,9 @@ Install [pipx](https://pipx.pypa.io/stable/) then just do:
|
|||
```
|
||||
pipx install aider-chat
|
||||
```
|
||||
|
||||
|
||||
## pipx on replit
|
||||
|
||||
{% include replit-pipx.md %}
|
||||
|
||||
|
|
|
@ -21,6 +21,33 @@ Aider can currently produce repository maps for many popular
|
|||
mainstream languages, listed below.
|
||||
|
||||
|
||||
## How to add support for another language
|
||||
|
||||
Aider should work quite well for other languages, even those
|
||||
without repo map or linter support.
|
||||
You should really try coding with aider before
|
||||
assuming it needs better support for your language.
|
||||
|
||||
That said, if aider already has support for linting your language,
|
||||
then it should be possible to add repo map support.
|
||||
To build a repo map, aider needs the `tags.scm` file
|
||||
from the given language's tree-sitter grammar.
|
||||
If you can find and share that file in a
|
||||
[GitHub issue](https://github.com/Aider-AI/aider/issues),
|
||||
then it may be possible to add repo map support.
|
||||
|
||||
If aider doesn't support linting, it will be complicated to
|
||||
add linting and repo map support.
|
||||
That is because aider relies on
|
||||
[py-tree-sitter-languages](https://github.com/grantjenks/py-tree-sitter-languages)
|
||||
to provide pre-packaged versions of tree-sitter
|
||||
parsers for many languages.
|
||||
|
||||
Aider needs to be easy for users to install in many environments,
|
||||
and it is probably too complex to add dependencies on
|
||||
additional individual tree-sitter parsers.
|
||||
|
||||
|
||||
<!--[[[cog
|
||||
from aider.repomap import get_supported_languages_md
|
||||
cog.out(get_supported_languages_md())
|
||||
|
@ -81,29 +108,3 @@ cog.out(get_supported_languages_md())
|
|||
<!--[[[end]]]-->
|
||||
|
||||
|
||||
|
||||
## How to add support for another language
|
||||
|
||||
Aider should work quite well for other languages, even those
|
||||
without repo map or linter support.
|
||||
You should really try coding with aider before
|
||||
assuming it needs better support for your language.
|
||||
|
||||
That said, if aider already has support for linting your language,
|
||||
then it should be possible to add repo map support.
|
||||
To build a repo map, aider needs the `tags.scm` file
|
||||
from the given language's tree-sitter grammar.
|
||||
If you can find and share that file in a
|
||||
[GitHub issue](https://github.com/paul-gauthier/aider/issues),
|
||||
then it may be possible to add repo map support.
|
||||
|
||||
If aider doesn't support linting, it will be complicated to
|
||||
add linting and repo map support.
|
||||
That is because aider relies on
|
||||
[py-tree-sitter-languages](https://github.com/grantjenks/py-tree-sitter-languages)
|
||||
to provide pre-packaged versions of tree-sitter
|
||||
parsers for many languages.
|
||||
|
||||
Aider needs to be easy for users to install in many environments,
|
||||
and it is probably too complex to add dependencies on
|
||||
additional individual tree-sitter parsers.
|
||||
|
|
|
@ -150,7 +150,7 @@ The model also has to successfully apply all its changes to the source file with
|
|||
|
||||
## Code refactoring leaderboard
|
||||
|
||||
[Aider's refactoring benchmark](https://github.com/paul-gauthier/refactor-benchmark) asks the LLM to refactor 89 large methods from large python classes. This is a more challenging benchmark, which tests the model's ability to output long chunks of code without skipping sections or making mistakes. It was developed to provoke and measure [GPT-4 Turbo's "lazy coding" habit](/2023/12/21/unified-diffs.html).
|
||||
[Aider's refactoring benchmark](https://github.com/Aider-AI/refactor-benchmark) asks the LLM to refactor 89 large methods from large python classes. This is a more challenging benchmark, which tests the model's ability to output long chunks of code without skipping sections or making mistakes. It was developed to provoke and measure [GPT-4 Turbo's "lazy coding" habit](/2023/12/21/unified-diffs.html).
|
||||
|
||||
The refactoring benchmark requires a large context window to
|
||||
work with large source files.
|
||||
|
@ -291,10 +291,10 @@ since it is the easiest format for an LLM to use.
|
|||
|
||||
Contributions of benchmark results are welcome!
|
||||
See the
|
||||
[benchmark README](https://github.com/paul-gauthier/aider/blob/main/benchmark/README.md)
|
||||
[benchmark README](https://github.com/Aider-AI/aider/blob/main/benchmark/README.md)
|
||||
for information on running aider's code editing benchmarks.
|
||||
Submit results by opening a PR with edits to the
|
||||
[benchmark results data files](https://github.com/paul-gauthier/aider/blob/main/website/_data/).
|
||||
[benchmark results data files](https://github.com/Aider-AI/aider/blob/main/aider/website/_data/).
|
||||
|
||||
|
||||
<p class="post-date">
|
||||
|
@ -321,6 +321,6 @@ mod_dates = [get_last_modified_date(file) for file in files]
|
|||
latest_mod_date = max(mod_dates)
|
||||
cog.out(f"{latest_mod_date.strftime('%B %d, %Y.')}")
|
||||
]]]-->
|
||||
August 14, 2024.
|
||||
October 22, 2024.
|
||||
<!--[[[end]]]-->
|
||||
</p>
|
||||
|
|
111
aider/website/docs/legal/contributor-agreement.md
Normal file
111
aider/website/docs/legal/contributor-agreement.md
Normal file
|
@ -0,0 +1,111 @@
|
|||
|
||||
Individual Contributor License Agreement
|
||||
|
||||
Thank you for your interest in Aider AI LLC ("Aider AI").
|
||||
To clarify the intellectual property license
|
||||
granted with Contributions from any person or entity, Aider AI
|
||||
must have on file a signed Contributor License Agreement ("CLA")
|
||||
from each Contributor, indicating agreement with the license
|
||||
terms below. This agreement is for your protection as a Contributor
|
||||
as well as the protection of Aider AI and its users. It does not
|
||||
change your rights to use your own Contributions for any other purpose.
|
||||
|
||||
Please complete and sign this Agreement. Read this document carefully
|
||||
before signing and keep a copy for your records.
|
||||
|
||||
You accept and agree to the following terms and conditions for Your
|
||||
Contributions (present and future) that you submit to Aider AI.
|
||||
Except for the license granted herein to Aider AI and recipients
|
||||
of software distributed by Aider AI, You reserve all right, title,
|
||||
and interest in and to Your Contributions.
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"You" (or "Your") shall mean the copyright owner or legal entity
|
||||
authorized by the copyright owner that is making this Agreement
|
||||
with Aider AI. For legal entities, the entity making a
|
||||
Contribution and all other entities that control, are controlled
|
||||
by, or are under common control with that entity are considered to
|
||||
be a single Contributor. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"Contribution" shall mean any original work of authorship,
|
||||
including any modifications or additions to an existing work, that
|
||||
is intentionally submitted by You to Aider AI for inclusion
|
||||
in, or documentation of, any of the products owned or managed by
|
||||
Aider AI (the "Work"). For the purposes of this definition,
|
||||
"submitted" means any form of electronic, verbal, or written
|
||||
communication sent to Aider AI or its representatives,
|
||||
including but not limited to communication on electronic mailing
|
||||
lists, source code control systems, and issue tracking systems that
|
||||
are managed by, or on behalf of, Aider AI for the purpose of
|
||||
discussing and improving the Work, but excluding communication that
|
||||
is conspicuously marked or otherwise designated in writing by You
|
||||
as "Not a Contribution."
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this Agreement, You hereby grant to Aider AI and to
|
||||
recipients of software distributed by Aider AI a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare derivative works of,
|
||||
publicly display, publicly perform, sublicense, and distribute Your
|
||||
Contributions and such derivative works.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this Agreement, You hereby grant to Aider AI and to
|
||||
recipients of software distributed by Aider AI a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have
|
||||
made, use, offer to sell, sell, import, and otherwise transfer the
|
||||
Work, where such license applies only to those patent claims
|
||||
licensable by You that are necessarily infringed by Your
|
||||
Contribution(s) alone or by combination of Your Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If any
|
||||
entity institutes patent litigation against You or any other entity
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging
|
||||
that your Contribution, or the Work to which you have contributed,
|
||||
constitutes direct or contributory patent infringement, then any
|
||||
patent licenses granted to that entity under this Agreement for
|
||||
that Contribution or Work shall terminate as of the date such
|
||||
litigation is filed.
|
||||
|
||||
4. You represent that you are legally entitled to grant the above
|
||||
license. If your employer(s) has rights to intellectual property
|
||||
that you create that includes your Contributions, you represent
|
||||
that you have received permission to make Contributions on behalf
|
||||
of that employer, that your employer has waived such rights for
|
||||
your Contributions to Aider AI, or that your employer has
|
||||
executed a separate Corporate CLA with Aider AI.
|
||||
|
||||
5. You represent that each of Your Contributions is Your original
|
||||
creation (see section 7 for submissions on behalf of others). You
|
||||
represent that Your Contribution submissions include complete
|
||||
details of any third-party license or other restriction (including,
|
||||
but not limited to, related patents and trademarks) of which you
|
||||
are personally aware and which are associated with any part of Your
|
||||
Contributions.
|
||||
|
||||
6. You are not expected to provide support for Your Contributions,
|
||||
except to the extent You desire to provide support. You may provide
|
||||
support for free, for a fee, or not at all. Unless required by
|
||||
applicable law or agreed to in writing, You provide Your
|
||||
Contributions on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
|
||||
OF ANY KIND, either express or implied, including, without
|
||||
limitation, any warranties or conditions of TITLE, NON-
|
||||
INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
7. Should You wish to submit work that is not Your original creation,
|
||||
You may submit it to Aider AI separately from any
|
||||
Contribution, identifying the complete details of its source and of
|
||||
any license or other restriction (including, but not limited to,
|
||||
related patents, trademarks, and license agreements) of which you
|
||||
are personally aware, and conspicuously marking the work as
|
||||
"Submitted on behalf of a third-party: [named here]".
|
||||
|
||||
8. You agree to notify Aider AI of any facts or circumstances of
|
||||
which you become aware that would make these representations
|
||||
inaccurate in any respect.
|
||||
|
|
@ -14,7 +14,7 @@ Aider has some built in shortcuts for the most popular Anthropic models and
|
|||
has been tested and benchmarked to work well with them:
|
||||
|
||||
```
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
|
||||
export ANTHROPIC_API_KEY=<key> # Mac/Linux
|
||||
setx ANTHROPIC_API_KEY <key> # Windows, restart shell after setx
|
||||
|
@ -26,7 +26,7 @@ aider
|
|||
aider --opus
|
||||
|
||||
# List models available from Anthropic
|
||||
aider --models anthropic/
|
||||
aider --list-models anthropic/
|
||||
```
|
||||
|
||||
{: .tip }
|
||||
|
|
|
@ -8,7 +8,7 @@ nav_order: 500
|
|||
Aider can connect to the OpenAI models on Azure.
|
||||
|
||||
```
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
|
||||
# Mac/Linux:
|
||||
export AZURE_API_KEY=<key>
|
||||
|
@ -24,7 +24,7 @@ setx AZURE_API_BASE https://myendpt.openai.azure.com
|
|||
aider --model azure/<your_deployment_name>
|
||||
|
||||
# List models available from Azure
|
||||
aider --models azure/
|
||||
aider --list-models azure/
|
||||
```
|
||||
|
||||
Note that aider will also use environment variables
|
||||
|
|
75
aider/website/docs/llms/bedrock.md
Normal file
75
aider/website/docs/llms/bedrock.md
Normal file
|
@ -0,0 +1,75 @@
|
|||
---
|
||||
parent: Connecting to LLMs
|
||||
nav_order: 560
|
||||
---
|
||||
|
||||
# Amazon Bedrock
|
||||
|
||||
Aider can connect to models provided by Amazon Bedrock.
|
||||
You will need to have an AWS account with access to the Bedrock service.
|
||||
|
||||
To configure Aider to use the Amazon Bedrock API, you need to set up your AWS credentials.
|
||||
This can be done using the AWS CLI or by setting environment variables.
|
||||
|
||||
## AWS CLI Configuration
|
||||
|
||||
If you haven't already, install the [AWS CLI](https://aws.amazon.com/cli/) and configure it with your credentials:
|
||||
|
||||
```bash
|
||||
aws configure
|
||||
```
|
||||
|
||||
This will prompt you to enter your AWS Access Key ID, Secret Access Key, and default region.
|
||||
|
||||
## Environment Variables
|
||||
|
||||
Alternatively, you can set the following environment variables:
|
||||
|
||||
```bash
|
||||
export AWS_REGION=your_preferred_region
|
||||
|
||||
# For user authentication
|
||||
export AWS_ACCESS_KEY_ID=your_access_key
|
||||
export AWS_SECRET_ACCESS_KEY=your_secret_key
|
||||
|
||||
# For profile authentication
|
||||
export AWS_PROFILE=your-profile
|
||||
```
|
||||
|
||||
You can add these to your
|
||||
[.env file](/docs/config/dotenv.html).
|
||||
|
||||
## Bedrock with `pipx` installation
|
||||
|
||||
The AWS Bedrock provider requires the `boto3` package in order to function correctly. To use aider installed via `pipx` with AWS Bedrock, you must add the `boto3` dependency to aider's virtual environment by running
|
||||
|
||||
```
|
||||
pipx inject aider boto3
|
||||
```
|
||||
|
||||
|
||||
## Running Aider with Bedrock
|
||||
|
||||
Once your AWS credentials are set up, you can run Aider with the `--model` command line switch, specifying the Bedrock model you want to use:
|
||||
|
||||
```bash
|
||||
aider --model bedrock/anthropic.claude-3-5-sonnet-20240620-v1:0
|
||||
```
|
||||
|
||||
|
||||
## Available Models
|
||||
|
||||
To see some models available via Bedrock, run:
|
||||
|
||||
```
|
||||
aider --list-models bedrock/
|
||||
```
|
||||
|
||||
Make sure you have access to these models in your AWS account before attempting to use them with Aider.
|
||||
|
||||
# More info
|
||||
|
||||
For more information on Amazon Bedrock and its models, refer to the [official AWS documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html).
|
||||
|
||||
Also, see the
|
||||
[litellm docs on Bedrock](https://litellm.vercel.app/docs/providers/bedrock).
|
|
@ -13,13 +13,13 @@ You'll need a [Cohere API key](https://dashboard.cohere.com/welcome/login).
|
|||
To use **Command-R+**:
|
||||
|
||||
```
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
|
||||
export COHERE_API_KEY=<key> # Mac/Linux
|
||||
setx COHERE_API_KEY <key> # Windows, restart shell after setx
|
||||
|
||||
aider --model command-r-plus
|
||||
aider --model command-r-plus-08-2024
|
||||
|
||||
# List models available from Cohere
|
||||
aider --models cohere_chat/
|
||||
aider --list-models cohere_chat/
|
||||
```
|
||||
|
|
|
@ -9,7 +9,7 @@ Aider can connect to the DeepSeek.com API.
|
|||
The DeepSeek Coder V2 model has a top score on aider's code editing benchmark.
|
||||
|
||||
```
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
|
||||
export DEEPSEEK_API_KEY=<key> # Mac/Linux
|
||||
setx DEEPSEEK_API_KEY <key> # Windows, restart shell after setx
|
||||
|
|
|
@ -12,7 +12,7 @@ with code editing capability that's comparable to GPT-3.5.
|
|||
You'll need a [Gemini API key](https://aistudio.google.com/app/u/2/apikey).
|
||||
|
||||
```
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
|
||||
export GEMINI_API_KEY=<key> # Mac/Linux
|
||||
setx GEMINI_API_KEY <key> # Windows, restart shell after setx
|
||||
|
@ -20,6 +20,6 @@ setx GEMINI_API_KEY <key> # Windows, restart shell after setx
|
|||
aider --model gemini/gemini-1.5-pro-latest
|
||||
|
||||
# List models available from Gemini
|
||||
aider --models gemini/
|
||||
aider --list-models gemini/
|
||||
```
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ You'll need a [Groq API key](https://console.groq.com/keys).
|
|||
To use **Llama3 70B**:
|
||||
|
||||
```
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
|
||||
export GROQ_API_KEY=<key> # Mac/Linux
|
||||
setx GROQ_API_KEY <key> # Windows, restart shell after setx
|
||||
|
@ -21,7 +21,7 @@ setx GROQ_API_KEY <key> # Windows, restart shell after setx
|
|||
aider --model groq/llama3-70b-8192
|
||||
|
||||
# List models available from Groq
|
||||
aider --models groq/
|
||||
aider --list-models groq/
|
||||
```
|
||||
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ ollama pull <model>
|
|||
ollama serve
|
||||
|
||||
# In another terminal window...
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
|
||||
export OLLAMA_API_BASE=http://127.0.0.1:11434 # Mac/Linux
|
||||
setx OLLAMA_API_BASE http://127.0.0.1:11434 # Windows, restart shell after setx
|
||||
|
|
|
@ -8,7 +8,7 @@ nav_order: 500
|
|||
Aider can connect to any LLM which is accessible via an OpenAI compatible API endpoint.
|
||||
|
||||
```
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
|
||||
# Mac/Linux:
|
||||
export OPENAI_API_BASE=<endpoint>
|
||||
|
|
|
@ -14,7 +14,7 @@ Aider has some built in shortcuts for the most popular OpenAI models and
|
|||
has been tested and benchmarked to work well with them:
|
||||
|
||||
```
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
|
||||
export OPENAI_API_KEY=<key> # Mac/Linux
|
||||
setx OPENAI_API_KEY <key> # Windows, restart shell after setx
|
||||
|
@ -22,14 +22,20 @@ setx OPENAI_API_KEY <key> # Windows, restart shell after setx
|
|||
# Aider uses gpt-4o by default (or use --4o)
|
||||
aider
|
||||
|
||||
# GPT-4 Turbo (1106)
|
||||
aider --4-turbo
|
||||
# GPT-4o
|
||||
aider --4o
|
||||
|
||||
# GPT-3.5 Turbo
|
||||
aider --35-turbo
|
||||
|
||||
# o1-mini
|
||||
aider --model o1-mini
|
||||
|
||||
# o1-preview
|
||||
aider --model o1-preview
|
||||
|
||||
# List models available from OpenAI
|
||||
aider --models openai/
|
||||
aider --list-models openai/
|
||||
```
|
||||
|
||||
You can use `aider --model <model-name>` to use any other OpenAI model.
|
||||
|
|
|
@ -9,7 +9,7 @@ Aider can connect to [models provided by OpenRouter](https://openrouter.ai/model
|
|||
You'll need an [OpenRouter API key](https://openrouter.ai/keys).
|
||||
|
||||
```
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
|
||||
export OPENROUTER_API_KEY=<key> # Mac/Linux
|
||||
setx OPENROUTER_API_KEY <key> # Windows, restart shell after setx
|
||||
|
@ -18,13 +18,13 @@ setx OPENROUTER_API_KEY <key> # Windows, restart shell after setx
|
|||
aider --model openrouter/<provider>/<model>
|
||||
|
||||
# List models available from OpenRouter
|
||||
aider --models openrouter/
|
||||
aider --list-models openrouter/
|
||||
```
|
||||
|
||||
In particular, many aider users access Sonnet via OpenRouter:
|
||||
|
||||
```
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
|
||||
export OPENROUTER_API_KEY=<key> # Mac/Linux
|
||||
setx OPENROUTER_API_KEY <key> # Windows, restart shell after setx
|
||||
|
|
|
@ -9,14 +9,14 @@ Aider uses the [litellm](https://docs.litellm.ai/docs/providers) package
|
|||
to connect to hundreds of other models.
|
||||
You can use `aider --model <model-name>` to use any supported model.
|
||||
|
||||
To explore the list of supported models you can run `aider --models <model-name>`
|
||||
To explore the list of supported models you can run `aider --list-models <model-name>`
|
||||
with a partial model name.
|
||||
If the supplied name is not an exact match for a known model, aider will
|
||||
return a list of possible matching models.
|
||||
For example:
|
||||
|
||||
```
|
||||
$ aider --models turbo
|
||||
$ aider --list-models turbo
|
||||
|
||||
Aider v0.29.3-dev
|
||||
Models which match "turbo":
|
||||
|
@ -63,6 +63,7 @@ cog.out(''.join(lines))
|
|||
- AZURE_API_KEY
|
||||
- AZURE_OPENAI_API_KEY
|
||||
- BASETEN_API_KEY
|
||||
- CEREBRAS_API_KEY
|
||||
- CLARIFAI_API_KEY
|
||||
- CLOUDFLARE_API_KEY
|
||||
- CODESTRAL_API_KEY
|
||||
|
@ -71,22 +72,19 @@ cog.out(''.join(lines))
|
|||
- DATABRICKS_API_KEY
|
||||
- DEEPINFRA_API_KEY
|
||||
- DEEPSEEK_API_KEY
|
||||
- EMPOWER_API_KEY
|
||||
- FIREWORKSAI_API_KEY
|
||||
- FIREWORKS_AI_API_KEY
|
||||
- FIREWORKS_API_KEY
|
||||
- FRIENDLIAI_API_KEY
|
||||
- GEMINI_API_KEY
|
||||
- GITHUB_API_KEY
|
||||
- GROQ_API_KEY
|
||||
- HUGGINGFACE_API_KEY
|
||||
- MARITALK_API_KEY
|
||||
- MISTRAL_API_KEY
|
||||
- MISTRAL_AZURE_API_KEY
|
||||
- NLP_CLOUD_API_KEY
|
||||
- NVIDIA_NIM_API_KEY
|
||||
- OLLAMA_API_KEY
|
||||
- OPENAI_API_KEY
|
||||
- OPENAI_LIKE_API_KEY
|
||||
- OPENROUTER_API_KEY
|
||||
- OR_API_KEY
|
||||
- PALM_API_KEY
|
||||
|
@ -95,8 +93,6 @@ cog.out(''.join(lines))
|
|||
- PROVIDER_API_KEY
|
||||
- REPLICATE_API_KEY
|
||||
- TOGETHERAI_API_KEY
|
||||
- TOGETHER_AI_API_KEY
|
||||
- TOGETHER_API_KEY
|
||||
- VOLCENGINE_API_KEY
|
||||
- VOYAGE_API_KEY
|
||||
- XINFERENCE_API_KEY
|
||||
|
|
106
aider/website/docs/more/edit-formats.md
Normal file
106
aider/website/docs/more/edit-formats.md
Normal file
|
@ -0,0 +1,106 @@
|
|||
---
|
||||
parent: More info
|
||||
nav_order: 960
|
||||
description: Aider uses various "edit formats" to let LLMs edit source files.
|
||||
---
|
||||
|
||||
# Edit formats
|
||||
|
||||
Aider uses various "edit formats" to let LLMs edit source files.
|
||||
Different models work better or worse with different edit formats.
|
||||
Aider is configured to use the optimal format for most popular, common models.
|
||||
You can always force use of a specific edit format with
|
||||
the `--edit-format` switch.
|
||||
|
||||
## whole
|
||||
|
||||
The "whole" edit format is the simplest possible editing format.
|
||||
The LLM is instructed to return a full, updated
|
||||
copy of each source file that needs changes.
|
||||
While simple, it can be slow and costly because the LLM has to return
|
||||
the *entire file* even if just a few lines are edited.
|
||||
|
||||
The format expects the file path just before the fenced file content:
|
||||
|
||||
````
|
||||
show_greeting.py
|
||||
```
|
||||
import sys
|
||||
|
||||
def greeting(name):
|
||||
print(f"Hey {{name}}")
|
||||
|
||||
if __name__ == '__main__':
|
||||
greeting(sys.argv[1])
|
||||
```
|
||||
````
|
||||
|
||||
|
||||
## diff
|
||||
|
||||
The "diff" edit format asks the LLM to specify file edits as a series of search/replace blocks.
|
||||
This is an efficient format, because the model only needs to return parts of the file
|
||||
which have changes.
|
||||
|
||||
They are formatted using a syntax similar to the git merge conflict resolution markings,
|
||||
with the file path right before a fenced block:
|
||||
|
||||
````
|
||||
mathweb/flask/app.py
|
||||
```
|
||||
<<<<<<< SEARCH
|
||||
from flask import Flask
|
||||
=======
|
||||
import math
|
||||
from flask import Flask
|
||||
>>>>>>> REPLACE
|
||||
```
|
||||
````
|
||||
|
||||
## diff-fenced
|
||||
|
||||
The "diff-fenced" edit format is based on the diff format, but
|
||||
the file path is placed inside the fence.
|
||||
It is primarily used with the Gemini family of models,
|
||||
which often fail to conform to fencing approach specified in the diff format.
|
||||
|
||||
````
|
||||
```
|
||||
mathweb/flask/app.py
|
||||
<<<<<<< SEARCH
|
||||
from flask import Flask
|
||||
=======
|
||||
import math
|
||||
from flask import Flask
|
||||
>>>>>>> REPLACE
|
||||
```
|
||||
````
|
||||
|
||||
## udiff
|
||||
|
||||
The "udiff" edit format is based on the widely used unified diff format,
|
||||
but [modified and simplified](/2023/12/21/unified-diffs.html).
|
||||
This is an efficient format, because the model only needs to return parts of the file
|
||||
which have changes.
|
||||
|
||||
It was mainly used to the GPT-4 Turbo family of models,
|
||||
to reduce their "lazy coding" tendencies with other edit formats.
|
||||
|
||||
|
||||
````
|
||||
```diff
|
||||
--- mathweb/flask/app.py
|
||||
+++ mathweb/flask/app.py
|
||||
@@ ... @@
|
||||
-class MathWeb:
|
||||
+import sympy
|
||||
+
|
||||
+class MathWeb:
|
||||
```
|
||||
````
|
||||
|
||||
## editor-diff and editor-whole
|
||||
|
||||
These are streamlined versions of the diff and whole formats, intended to be used
|
||||
with `--editor-edit-format` when using
|
||||
[architect mode](/docs/usage/modes.html).
|
98
aider/website/docs/more/infinite-output.md
Normal file
98
aider/website/docs/more/infinite-output.md
Normal file
|
@ -0,0 +1,98 @@
|
|||
---
|
||||
parent: More info
|
||||
nav_order: 920
|
||||
description: Aider can handle "infinite output" from models that support prefill.
|
||||
---
|
||||
|
||||
# Infinite output
|
||||
|
||||
LLM providers limit how much output a model can generate from a single request.
|
||||
This is usually called the output token limit.
|
||||
|
||||
Aider is able to work around this limit with models that support
|
||||
"prefilling" the assistant response.
|
||||
When you use aider with a model that supports prefill, you will see
|
||||
"infinite output" noted in the announcement lines displayed at launch:
|
||||
|
||||
```
|
||||
Aider v0.58.0
|
||||
Main model: claude-3-5-sonnet-20240620 with diff edit format, prompt cache, infinite output
|
||||
```
|
||||
|
||||
Models that support prefill can be primed to think they started their response
|
||||
with a specific piece of text.
|
||||
You can put words in their mouth, and they will continue generating
|
||||
text from that point forward.
|
||||
|
||||
When aider is collecting code edits from a model and
|
||||
it hits the output token limit,
|
||||
aider simply initiates another LLM request with the partial
|
||||
response prefilled.
|
||||
This prompts the model to continue where it left off,
|
||||
generating more of the desired response.
|
||||
This prefilling of the partially completed response can be repeated,
|
||||
allowing for very long outputs.
|
||||
Joining the text across these output limit boundaries
|
||||
requires some heuristics, but is typically fairly reliable.
|
||||
|
||||
Aider supports "infinite output" for models that support "prefill",
|
||||
such as:
|
||||
|
||||
<!--[[[cog
|
||||
import requests
|
||||
import json
|
||||
|
||||
# Fetch the JSON data
|
||||
url = "https://raw.githubusercontent.com/BerriAI/litellm/refs/heads/main/model_prices_and_context_window.json"
|
||||
response = requests.get(url)
|
||||
data = json.loads(response.text)
|
||||
|
||||
# Process the JSON to find models with supports_assistant_prefill=true
|
||||
prefill_models = [model for model, info in data.items() if info.get('supports_assistant_prefill') == True]
|
||||
|
||||
# Generate the list of models
|
||||
model_list = "\n".join(f"- {model}" for model in sorted(prefill_models))
|
||||
|
||||
cog.out(model_list)
|
||||
]]]-->
|
||||
- anthropic.claude-3-5-sonnet-20241022-v2:0
|
||||
- anthropic/claude-3-5-sonnet-20241022
|
||||
- claude-3-5-sonnet-20240620
|
||||
- claude-3-5-sonnet-20241022
|
||||
- claude-3-haiku-20240307
|
||||
- claude-3-opus-20240229
|
||||
- claude-3-sonnet-20240229
|
||||
- codestral/codestral-2405
|
||||
- codestral/codestral-latest
|
||||
- deepseek-chat
|
||||
- deepseek-coder
|
||||
- eu.anthropic.claude-3-5-sonnet-20241022-v2:0
|
||||
- mistral/codestral-2405
|
||||
- mistral/codestral-latest
|
||||
- mistral/codestral-mamba-latest
|
||||
- mistral/mistral-large-2402
|
||||
- mistral/mistral-large-2407
|
||||
- mistral/mistral-large-latest
|
||||
- mistral/mistral-medium
|
||||
- mistral/mistral-medium-2312
|
||||
- mistral/mistral-medium-latest
|
||||
- mistral/mistral-small
|
||||
- mistral/mistral-small-latest
|
||||
- mistral/mistral-tiny
|
||||
- mistral/open-codestral-mamba
|
||||
- mistral/open-mistral-7b
|
||||
- mistral/open-mistral-nemo
|
||||
- mistral/open-mistral-nemo-2407
|
||||
- mistral/open-mixtral-8x22b
|
||||
- mistral/open-mixtral-8x7b
|
||||
- mistral/pixtral-12b-2409
|
||||
- openrouter/anthropic/claude-3.5-sonnet
|
||||
- us.anthropic.claude-3-5-sonnet-20241022-v2:0
|
||||
- vertex_ai/claude-3-5-sonnet-v2@20241022
|
||||
- vertex_ai/claude-3-5-sonnet@20240620
|
||||
- vertex_ai/claude-3-haiku@20240307
|
||||
- vertex_ai/claude-3-opus@20240229
|
||||
- vertex_ai/claude-3-sonnet@20240229
|
||||
<!--[[[end]]]-->
|
||||
|
||||
|
|
@ -29,9 +29,9 @@ It shows how each of these symbols are defined, by including the critical lines
|
|||
|
||||
Here's a part of
|
||||
the repo map of aider's repo, for
|
||||
[base_coder.py](https://github.com/paul-gauthier/aider/blob/main/aider/coders/base_coder.py)
|
||||
[base_coder.py](https://github.com/Aider-AI/aider/blob/main/aider/coders/base_coder.py)
|
||||
and
|
||||
[commands.py](https://github.com/paul-gauthier/aider/blob/main/aider/commands.py)
|
||||
[commands.py](https://github.com/Aider-AI/aider/blob/main/aider/commands.py)
|
||||
:
|
||||
|
||||
```
|
||||
|
|
|
@ -26,7 +26,9 @@ for FILE in *.py ; do
|
|||
done
|
||||
```
|
||||
|
||||
User `aider --help` to see all the command line options, but these are useful for scripting:
|
||||
Use `aider --help` to see all the
|
||||
[command line options](/docs/config/options.html),
|
||||
but these are useful for scripting:
|
||||
|
||||
```
|
||||
--stream, --no-stream
|
||||
|
@ -81,7 +83,7 @@ coder.run("/tokens")
|
|||
```
|
||||
|
||||
See the
|
||||
[Coder.create() and Coder.__init__() methods](https://github.com/paul-gauthier/aider/blob/main/aider/coders/base_coder.py)
|
||||
[Coder.create() and Coder.__init__() methods](https://github.com/Aider-AI/aider/blob/main/aider/coders/base_coder.py)
|
||||
for all the supported arguments.
|
||||
|
||||
It can also be helpful to set the equivalent of `--yes` by doing this:
|
||||
|
|
|
@ -17,7 +17,7 @@ You may see an error message like this:
|
|||
Below is the most fail safe way to install and run aider in these situations:
|
||||
|
||||
```
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
python -m aider
|
||||
```
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ This usually happens because the LLM is disobeying the system prompts
|
|||
and trying to make edits in a format that aider doesn't expect.
|
||||
Aider makes every effort to get the LLM
|
||||
to conform, and works hard to deal with
|
||||
LLMM edits that are "almost" correctly formatted.
|
||||
LLM edits that are "almost" correctly formatted.
|
||||
|
||||
But sometimes the LLM just won't cooperate.
|
||||
In these cases, here are some things you might try.
|
||||
|
@ -30,16 +30,30 @@ disobeying the system prompt instructions.
|
|||
Most local models are just barely capable of working with aider,
|
||||
so editing errors are probably unavoidable.
|
||||
|
||||
Local models which have been quantized are even more likely to have problems
|
||||
because they are not capable enough to follow aider's system prompts.
|
||||
|
||||
## Try the whole format
|
||||
|
||||
Run aider with `--edit-format whole` if the model is using a different edit format.
|
||||
You can see which edit format it is using in the announce lines:
|
||||
|
||||
```
|
||||
Aider v0.50.2-dev
|
||||
Models: claude-3-5-sonnet-20240620 with ♾️ diff edit format
|
||||
```
|
||||
|
||||
## Reduce distractions
|
||||
|
||||
Many LLM now have very large context windows,
|
||||
Many LLMs now have very large context windows,
|
||||
but filling them with irrelevant code or conversation
|
||||
can cofuse the model.
|
||||
can confuse the model.
|
||||
|
||||
- Don't add too many files to the chat, *just* add the files you think need to be edited.
|
||||
Aider also sends the LLM a [map of your entire git repo](https://aider.chat/docs/repomap.html), so other relevant code will be included automatically.
|
||||
- Use `/drop` to remove files from the chat session which aren't needed for the task at hand. This will reduce distractions and may help GPT produce properly formatted edits.
|
||||
- Use `/clear` to remove the conversation history, again to help GPT focus.
|
||||
- Use `/drop` to remove files from the chat session which aren't needed for the task at hand. This will reduce distractions and may help the LLM produce properly formatted edits.
|
||||
- Use `/clear` to remove the conversation history, again to help the LLM focus.
|
||||
- Use `/tokens` to see how many tokens you are using for each message.
|
||||
|
||||
## More help
|
||||
|
||||
|
|
72
aider/website/docs/troubleshooting/imports.md
Normal file
72
aider/website/docs/troubleshooting/imports.md
Normal file
|
@ -0,0 +1,72 @@
|
|||
---
|
||||
parent: Troubleshooting
|
||||
nav_order: 28
|
||||
---
|
||||
|
||||
# Dependency versions
|
||||
|
||||
Aider expects to be installed via `pip` or `pipx`, which will install
|
||||
correct versions of all of its required dependencies.
|
||||
|
||||
If you've been linked to this doc from a GitHub issue,
|
||||
or if aider is reporting `ImportErrors`
|
||||
it is likely that your
|
||||
aider install is using incorrect dependencies.
|
||||
|
||||
## Install with pipx
|
||||
|
||||
If you are having dependency problems you should consider
|
||||
[installing aider using pipx](/docs/install/pipx.html).
|
||||
This will ensure that aider is installed in its own python environment,
|
||||
with the correct set of dependencies.
|
||||
|
||||
Try re-installing cleanly:
|
||||
|
||||
```
|
||||
pipx uninstall aider-chat
|
||||
pipx install aider-chat
|
||||
```
|
||||
|
||||
## Package managers like Homebrew, AUR, ports
|
||||
|
||||
Package managers often install aider with the wrong dependencies, leading
|
||||
to import errors and other problems.
|
||||
|
||||
The recommended way to
|
||||
install aider is with
|
||||
[pip](/docs/install/install.html).
|
||||
Be sure to use the `--upgrade-strategy only-if-needed` switch so that the correct
|
||||
versions of dependencies will be installed.
|
||||
|
||||
```
|
||||
python -m pip install -U --upgrade-strategy only-if-needed aider-chat
|
||||
```
|
||||
|
||||
A very safe way is to
|
||||
[install aider using pipx](/docs/install/pipx.html),
|
||||
which will ensure it is installed in a stand alone virtual environment.
|
||||
|
||||
## Dependency versions matter
|
||||
|
||||
Aider pins its dependencies and is tested to work with those specific versions.
|
||||
If you are installing aider with pip (rather than pipx),
|
||||
you should be careful about upgrading or downgrading the python packages that
|
||||
aider uses.
|
||||
|
||||
In particular, be careful with the packages with pinned versions
|
||||
noted at the end of
|
||||
[aider's requirements.in file](https://github.com/Aider-AI/aider/blob/main/requirements/requirements.in).
|
||||
These versions are pinned because aider is known not to work with the
|
||||
latest versions of these libraries.
|
||||
|
||||
Also be wary of upgrading `litellm`, as it changes versions frequently
|
||||
and sometimes introduces bugs or backwards incompatible changes.
|
||||
|
||||
## Replit
|
||||
|
||||
You can `pip install -U aider-chat` on replit.
|
||||
|
||||
Or you can install aider with
|
||||
pipx as follows:
|
||||
|
||||
{% include replit-pipx.md %}
|
|
@ -68,7 +68,7 @@ To avoid hitting output token limits:
|
|||
- Ask for smaller changes in each request.
|
||||
- Break your code into smaller source files.
|
||||
- Use a strong model like gpt-4o, sonnet or opus that can return diffs.
|
||||
|
||||
- Use a model that supports [infinite output](/docs/more/infinite-output.html).
|
||||
|
||||
## Other causes
|
||||
|
||||
|
|
|
@ -317,7 +317,7 @@ the ones with the most code and which involve refactoring.
|
|||
Based on this observation, I set out to build a benchmark based on refactoring
|
||||
a non-trivial amount of code found in fairly large files.
|
||||
To do this, I used python's `ast` module to analyze
|
||||
[9 popular open source python repositories](https://github.com/paul-gauthier/refactor-benchmark)
|
||||
[9 popular open source python repositories](https://github.com/Aider-AI/refactor-benchmark)
|
||||
to identify challenging refactoring tasks.
|
||||
The goal was to find:
|
||||
|
||||
|
@ -332,7 +332,7 @@ where we ask GPT to do something like:
|
|||
> Name the new function `_set_csrf_cookie`, exactly the same name as the existing method.
|
||||
> Update any existing `self._set_csrf_cookie` calls to work with the new `_set_csrf_cookie` function.
|
||||
|
||||
A [simple python AST scanning script](https://github.com/paul-gauthier/aider/blob/main/benchmark/refactor_tools.py)
|
||||
A [simple python AST scanning script](https://github.com/Aider-AI/aider/blob/main/benchmark/refactor_tools.py)
|
||||
found 89 suitable files
|
||||
and packaged them up as benchmark tasks.
|
||||
Each task has a test
|
||||
|
@ -351,7 +351,7 @@ gathered during benchmarking like the
|
|||
introduction of new comments that contain "...".
|
||||
|
||||
The result is a pragmatic
|
||||
[benchmark suite that provokes, detects and quantifies GPT coding laziness](https://github.com/paul-gauthier/refactor-benchmark).
|
||||
[benchmark suite that provokes, detects and quantifies GPT coding laziness](https://github.com/Aider-AI/refactor-benchmark).
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ It also supports [connecting to almost any LLM](https://aider.chat/docs/llms.htm
|
|||
Use the `--browser` switch to launch the browser version of aider:
|
||||
|
||||
```
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
|
||||
export OPENAI_API_KEY=<key> # Mac/Linux
|
||||
setx OPENAI_API_KEY <key> # Windows, restart shell after setx
|
||||
|
|
51
aider/website/docs/usage/caching.md
Normal file
51
aider/website/docs/usage/caching.md
Normal file
|
@ -0,0 +1,51 @@
|
|||
---
|
||||
title: Prompt caching
|
||||
highlight_image: /assets/prompt-caching.jpg
|
||||
parent: Usage
|
||||
nav_order: 750
|
||||
description: Aider supports prompt caching for cost savings and faster coding.
|
||||
|
||||
---
|
||||
|
||||
# Prompt caching
|
||||
|
||||
Aider supports prompt caching for cost savings and faster coding.
|
||||
Currently Anthropic provides caching for Sonnet and Haiku,
|
||||
and DeepSeek provides caching for Coder.
|
||||
|
||||
Aider organizes the chat history to try and cache:
|
||||
|
||||
- The system prompt.
|
||||
- Read only files added with `--read` or `/read-only`.
|
||||
- The repository map.
|
||||
- The editable files that have been added to the chat.
|
||||
|
||||

|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
Run aider with `--cache-prompts` or add that setting to your
|
||||
[configuration files](/docs/config.html).
|
||||
|
||||
Due to limitations in the provider APIs, caching statistics and costs
|
||||
are not available when streaming responses.
|
||||
To turn off streaming, use `--no-stream`.
|
||||
|
||||
When caching is enabled, it will be noted for the main model when aider launches:
|
||||
|
||||
```
|
||||
Main model: claude-3-5-sonnet-20240620 with diff edit format, prompt cache, infinite output
|
||||
```
|
||||
|
||||
## Preventing cache expiration
|
||||
|
||||
Aider can ping the provider to keep your prompt cache warm and prevent
|
||||
it from expiring.
|
||||
By default, Anthropic keeps your cache for 5 minutes.
|
||||
Use `--cache-keepalive-pings N` to tell aider to ping
|
||||
every 5 minutes to keep the cache warm.
|
||||
Aider will ping up to `N` times over a period of `N*5` minutes
|
||||
after each message you send.
|
||||
|
||||
|
|
@ -14,31 +14,39 @@ cog.out(get_help_md())
|
|||
|
||||
|Command|Description|
|
||||
|:------|:----------|
|
||||
| **/add** | Add files to the chat so GPT can edit them or review them in detail |
|
||||
| **/add** | Add files to the chat so aider can edit them or review them in detail |
|
||||
| **/architect** | Enter architect mode to discuss high-level design and architecture |
|
||||
| **/ask** | Ask questions about the code base without editing any files |
|
||||
| **/chat-mode** | Switch to a new chat mode |
|
||||
| **/clear** | Clear the chat history |
|
||||
| **/clipboard** | Add image/text from the clipboard to the chat (optionally provide a name for the image) |
|
||||
| **/code** | Ask for changes to your code |
|
||||
| **/commit** | Commit edits to the repo made outside the chat (commit message optional) |
|
||||
| **/copy** | Copy the last assistant message to the clipboard |
|
||||
| **/diff** | Display the diff of changes since the last message |
|
||||
| **/drop** | Remove files from the chat session to free up context space |
|
||||
| **/exit** | Exit the application |
|
||||
| **/git** | Run a git command |
|
||||
| **/git** | Run a git command (output excluded from chat) |
|
||||
| **/help** | Ask questions about aider |
|
||||
| **/lint** | Lint and fix provided files or in-chat files if none provided |
|
||||
| **/lint** | Lint and fix in-chat files or all dirty files if none in chat |
|
||||
| **/load** | Load and execute commands from a file |
|
||||
| **/ls** | List all known files and indicate which are included in the chat session |
|
||||
| **/map** | Print out the current repository map |
|
||||
| **/map-refresh** | Force a refresh of the repository map |
|
||||
| **/model** | Switch to a new LLM |
|
||||
| **/models** | Search the list of available models |
|
||||
| **/paste** | Paste image/text from the clipboard into the chat. Optionally provide a name for the image. |
|
||||
| **/quit** | Exit the application |
|
||||
| **/read** | Add a file to the chat that is for reference, not to be edited |
|
||||
| **/read-only** | Add files to the chat that are for reference, not to be edited |
|
||||
| **/report** | Report a problem by opening a GitHub Issue |
|
||||
| **/reset** | Drop all files and clear the chat history |
|
||||
| **/run** | Run a shell command and optionally add the output to the chat (alias: !) |
|
||||
| **/save** | Save commands to a file that can reconstruct the current chat session's files |
|
||||
| **/settings** | Print out the current settings |
|
||||
| **/test** | Run a shell command and add the output to the chat on non-zero exit code |
|
||||
| **/tokens** | Report on the number of tokens used by the current chat context |
|
||||
| **/undo** | Undo the last git commit if it was done by aider |
|
||||
| **/voice** | Record and transcribe voice input |
|
||||
| **/web** | Scrape a webpage, convert to markdown and add to the chat |
|
||||
| **/web** | Scrape a webpage, convert to markdown and send in a message |
|
||||
|
||||
<!--[[[end]]]-->
|
||||
|
||||
|
|
|
@ -21,10 +21,35 @@ For example, say we want our python code to:
|
|||
|
||||
We would simply create a file like `CONVENTIONS.md` with those lines
|
||||
and then we can add it to the aider chat, along with the file(s)
|
||||
that we want to edit:
|
||||
that we want to edit.
|
||||
|
||||
It's best to load the conventions file with `/read CONVENTIONS.md`
|
||||
or `aider --read CONVENTIONS.md`.
|
||||
This way it is marked as read-only, and cached if prompt caching
|
||||
is enabled.
|
||||
|
||||
## Always load conventions
|
||||
|
||||
You can also configure aider to always load your conventions file
|
||||
in the [`.aider.conf.yml` config file](https://aider.chat/docs/config/aider_conf.html):
|
||||
|
||||
|
||||
```yaml
|
||||
# alone
|
||||
read: CONVENTIONS.md
|
||||
|
||||
# multiple files
|
||||
read: [CONVENTIONS.md, anotherfile.txt]
|
||||
```
|
||||
|
||||
|
||||
## Example
|
||||
|
||||
See below for an example of how the conventions can affect the code
|
||||
that aider writes.
|
||||
|
||||
<div class="chat-transcript" markdown="1">
|
||||
> $ aider CONVENTIONS.md useragent.py
|
||||
> $ aider --read CONVENTIONS.md useragent.py
|
||||
>
|
||||
> Aider v0.24.2-dev
|
||||
> Added CONVENTIONS.md to the chat.
|
||||
|
@ -85,3 +110,5 @@ which is perhaps more typical in small python scripts.
|
|||
|
||||
> Applied edit to useragent.py
|
||||
</div>
|
||||
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ You can add images to the chat just like you would
|
|||
add any other file:
|
||||
|
||||
- Use `/add <image-filename>` from within the chat
|
||||
- Use `/clipboard` to paste an image from your clipboard into the chat.
|
||||
- Use `/paste` to paste an image from your clipboard into the chat.
|
||||
- Launch aider with image filenames on the command line: `aider <image-filename>` along with any other command line arguments you need.
|
||||
|
||||
## Web pages
|
||||
|
@ -40,4 +40,9 @@ To add URLs to the chat:
|
|||
- Use `/web <url>`
|
||||
- Just paste the URL into the chat and aider will ask if you want to add it.
|
||||
|
||||
You can also scrape web pages from the command line to see the markdown version that aider produces:
|
||||
|
||||
|
||||
```
|
||||
python -m aider.scrape https://aider.chat/docs/usage/tips.html
|
||||
```
|
||||
|
|
|
@ -31,18 +31,21 @@ You can disable this with the `--no-auto-lint` switch.
|
|||
|
||||
## Testing
|
||||
|
||||
You can configure aider to run your test suite
|
||||
after each time the AI edits your code
|
||||
using the `--test-cmd <cmd>` switch.
|
||||
|
||||
You can run tests with `/test <test-command>`.
|
||||
Aider will run the test command without any arguments.
|
||||
If there are test errors, aider expects the
|
||||
command to print them on stdout/stderr
|
||||
and return a non-zero exit code.
|
||||
This is how most test tools normally operate.
|
||||
|
||||
To have aider automatically run the test command,
|
||||
use the `--auto-test` switch.
|
||||
Aider will try and fix any errors
|
||||
if the command returns a non-zero exit code.
|
||||
|
||||
You can configure aider to run your test suite
|
||||
after each time the AI edits your code
|
||||
using the `--test-cmd <test-command>` and
|
||||
`--auto-test` switch.
|
||||
|
||||
|
||||
|
||||
## Compiled languages
|
||||
|
||||
|
|
|
@ -6,15 +6,17 @@ description: Using the chat, ask and help chat modes.
|
|||
|
||||
# Chat modes
|
||||
|
||||
Aider has 3 different chat modes:
|
||||
Aider has a few different chat modes:
|
||||
|
||||
- `code` - Aider will make changes to your code to satisfy your requests.
|
||||
- `architect` - Aider will first propose a solution, then ask if you want it to turn that proposal into edits to your files.
|
||||
- `ask` - Aider will answer questions about your code, but never edit it.
|
||||
- `help` - Aider will answer questions about using aider, configuring, troubleshooting, etc.
|
||||
|
||||
By default, aider starts in "code" mode. As you are talking, you can
|
||||
send individual messages in a specific mode using `/code`, `/ask`, and `/help` commands:
|
||||
Using `/code`, `/ask`, and `/help` applies just to that particular message.
|
||||
send individual messages in a specific mode using
|
||||
`/code`, `/architect`, `/ask`, and `/help` commands:
|
||||
Using these `/`-commands applies just to that particular message.
|
||||
Your next message will go back to the active mode (usually "code" mode by default).
|
||||
|
||||
You can switch the active mode in a sticky way
|
||||
|
@ -22,11 +24,53 @@ with the `/chat-mode <mode>` command:
|
|||
|
||||
```
|
||||
/chat-mode code
|
||||
/chat-mode architect
|
||||
/chat-mode ask
|
||||
/chat-mode help
|
||||
```
|
||||
|
||||
Or you can launch aider in one of the modes with the `--chat-mode <mode>` switch.
|
||||
There is also a special shortcut `--architect` to launch in `--chat-mode architect`.
|
||||
|
||||
## Architect mode and the editor model
|
||||
|
||||
When you are in architect mode, aider sends your request to two models:
|
||||
|
||||
1. First, it sends your request to the main active model.
|
||||
The main model is configured with `/model`, `--model` or the shortcut switches like `--sonnet`.
|
||||
After the main model replies, aider will offer to edit the files based on the response.
|
||||
|
||||
2. To edit the files, aider sends a second LLM request asking for specific code editing instructions.
|
||||
This request goes to the "editor" model.
|
||||
Aider has built in defaults to select an editor model based on your main model.
|
||||
Or, you can choose an editor model yourself with `--editor-model <model>`.
|
||||
|
||||
Architect mode produces better results than code mode, but uses two LLM requests.
|
||||
This probably makes it slower and more expensive than using code mode.
|
||||
|
||||
Architect mode is especially useful with OpenAI's o1 models, which are strong at
|
||||
reasoning but less capable at editing files.
|
||||
Pairing an o1 architect with an editor model like GPT-4o or Sonnet will
|
||||
give the best results.
|
||||
|
||||
But architect mode is also quite helpful when you use GPT-4o or Sonnet
|
||||
at both the architect and the editor.
|
||||
Allowing the model two requests to solve the problem and edit the files
|
||||
usually provides a better result.
|
||||
|
||||
The editor model uses one of aider's edit formats to let the LLM
|
||||
edit source files.
|
||||
Aider will pick a suitable edit format by default,
|
||||
but you can customize it with `--editor-edit-format <format>`.
|
||||
The
|
||||
["editor-diff" and "editor-whole" edit formats](/docs/more/edit-formats.html#editor-diff-and-editor-whole)
|
||||
are the recommended edit formats when using architect mode.
|
||||
See this article on
|
||||
[aider's architect/editor mode](/2024/09/26/architect.html)
|
||||
for more details.
|
||||
|
||||
|
||||
## Examples
|
||||
|
||||
<div class="chat-transcript" markdown="1">
|
||||
|
||||
|
@ -63,5 +107,26 @@ print(factorial(5)) # Output: 120
|
|||
|
||||
This function uses recursion to calculate the factorial. It's been added to your code.
|
||||
|
||||
#### /architect Can we make this simpler?
|
||||
|
||||
Yes, you could replace the `factorial()` function with a call to the `math.factorial()`
|
||||
builtin.
|
||||
This way you don't have to maintain a custom factorial implementation,
|
||||
and the builtin function is well optimized.
|
||||
|
||||
> Edit the files? (Y)es/(N)o [Yes]: Yes
|
||||
|
||||
```python
|
||||
<<<<<<< SEARCH
|
||||
def factorial(n):
|
||||
if n == 0 or n == 1:
|
||||
return 1
|
||||
else:
|
||||
return n * factorial(n - 1)
|
||||
=======
|
||||
from math import factorial
|
||||
>>>>>>> REPLACE
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -6,21 +6,74 @@ description: Tips for AI pair programming with aider.
|
|||
|
||||
# Tips
|
||||
|
||||
- Think about which files need to be edited to make your change and add them to the chat.
|
||||
Aider can help the LLM figure out which files to edit all by itself, but the most efficient approach is to add the needed files to the chat yourself.
|
||||
- Don't add *everything* to the chat, just the files you think need to be edited.
|
||||
Aider also sends the LLM a [map of your entire git repo](https://aider.chat/docs/repomap.html).
|
||||
So the LLM can see all the other relevant parts of your code base.
|
||||
- Large changes are best performed as a sequence of thoughtful bite sized steps, where you plan out the approach and overall design. Walk the LLM through changes like you might with a junior dev. Ask for a refactor to prepare, then ask for the actual change. Spend the time to ask for code quality/structure improvements.
|
||||
- It's always safe to use Control-C to interrupt aider if it isn't providing a useful response. The partial response remains in the conversation, so you can refer to it when you reply to the LLM with more information or direction.
|
||||
- If your code is throwing an error,
|
||||
use the `/run` [in-chat command](/docs/usage/commands.html)
|
||||
## Just add the files that need to be changed to the chat
|
||||
|
||||
Take a moment and think about which files will need to be changed.
|
||||
Aider can often figure out which files to edit all by itself, but the most efficient approach is for you to add the files to the chat.
|
||||
|
||||
## Don't add lots of files to the chat
|
||||
|
||||
Just add the files you think need to be edited.
|
||||
Too much irrelevant code will distract and confuse the LLM.
|
||||
Aider uses a [map of your entire git repo](https://aider.chat/docs/repomap.html)
|
||||
so is usually aware of relevant classes/functions/methods elsewhere in your code base.
|
||||
It's ok to add 1-2 highly relevant files that don't need to be edited,
|
||||
but be selective.
|
||||
|
||||
## Break your goal down into bite sized steps
|
||||
|
||||
Do them one at a time.
|
||||
Adjust the files added to the chat as you go: `/drop` files that don't need any more changes, `/add` files that need changes for the next step.
|
||||
|
||||
## For complex changes, discuss a plan first
|
||||
|
||||
Use the [`/ask` command](modes.html) to make a plan with aider.
|
||||
Once you are happy with the approach, just say "go ahead" without the `/ask` prefix.
|
||||
|
||||
## If aider gets stuck
|
||||
|
||||
- Use `/clear` to discard the chat history and make a fresh start.
|
||||
- Can you `/drop` any extra files?
|
||||
- Use `/ask` to discuss a plan before aider starts editing code.
|
||||
- Use the [`/model` command](commands.html) to switch to a different model and try again. Switching between GPT-4o and Sonnet will often get past problems.
|
||||
- If aider is hopelessly stuck,
|
||||
just code the next step yourself and try having aider code some more after that.
|
||||
Take turns and pair program with aider.
|
||||
|
||||
## Creating new files
|
||||
|
||||
If you want aider to create a new file, add it to the repository first with `/add <file>`.
|
||||
This way aider knows this file exists and will write to it.
|
||||
Otherwise, aider might write the changes to an existing file.
|
||||
This can happen even if you ask for a new file, as LLMs tend to focus a lot
|
||||
on the existing information in their contexts.
|
||||
|
||||
## Fixing bugs and errors
|
||||
|
||||
If your code is throwing an error,
|
||||
use the [`/run` command](commands.html)
|
||||
to share the error output with the aider.
|
||||
Or just paste the errors into the chat. Let the aider figure out and fix the bug.
|
||||
- If test are failing, use the `/test` [in-chat command](/docs/usage/commands.html)
|
||||
Or just paste the errors into the chat. Let the aider figure out how to fix the bug.
|
||||
|
||||
If test are failing, use the [`/test` command](lint-test.html)
|
||||
to run tests and
|
||||
share the error output with the aider.
|
||||
- {% include multi-line.md %}
|
||||
- LLMs know about a lot of standard tools and libraries, but may get some of the fine details wrong about API versions and function arguments.
|
||||
You can paste doc snippets into the chat to resolve these issues.
|
||||
|
||||
## Providing docs
|
||||
|
||||
LLMs know about a lot of standard tools and libraries, but may get some of the fine details wrong about API versions and function arguments.
|
||||
|
||||
You can provide up-to-date documentation in a few ways:
|
||||
|
||||
- Paste doc snippets into the chat.
|
||||
- Include a URL to docs in your chat message
|
||||
and aider will scrape and read it. For example: `Add a submit button like this https://ui.shadcn.com/docs/components/button`.
|
||||
- Use the [`/read` command](commands.html) to read doc files into the chat from anywhere on your filesystem.
|
||||
- If you have coding conventions or standing instructions you want aider to follow, consider using a [conventions file](conventions.html).
|
||||
|
||||
## Interrupting & inputting
|
||||
|
||||
Use Control-C to interrupt aider if it isn't providing a useful response. The partial response remains in the conversation, so you can refer to it when you reply with more information or direction.
|
||||
|
||||
{% include multi-line.md %}
|
||||
|
||||
|
|
|
@ -8,6 +8,11 @@ description: Intro and tutorial videos made by aider users.
|
|||
|
||||
Here are some tutorial videos made by aider users:
|
||||
|
||||
- [Using Architect/Editor mode](https://www.youtube.com/watch?v=OPXslklVBZc) -- AICodeKing
|
||||
- [Using aider to incrementally build a non-trivial app](https://youtu.be/QlUt06XLbJE) -- IndyDevDan
|
||||
- [Aider and Replit on mobile with your voice](https://x.com/itsPaulAi/status/1830987090617831810) -- Paul Couvert
|
||||
- [Aider is the OG AI Coding King (Mermaid Diagram AI Agent)](https://www.youtube.com/watch?v=ag-KxYS8Vuw) -- IndyDevDan
|
||||
- [Installing aider in replit and making a Trello clone](https://x.com/itspaulai/status/1828834199597633724) -- Paul Couvert
|
||||
- [Step-by-Step Development Environment Setup for AI-Assisted Coding](https://www.youtube.com/watch?v=DnBVgfe6ZQM) -- Coding the Future With AI
|
||||
- [Generate FULL-STACK Apps with Claude 3.5 Sonnet](https://youtu.be/sKeIZGW8xzg) -- AICodeKing
|
||||
- [Creating Games with AI from Start-To-End](https://youtu.be/sOd2YYZFMUs) -- AICodeKing
|
||||
|
|
|
@ -8,7 +8,7 @@ has_toc: false
|
|||
# Example chat transcripts
|
||||
|
||||
Below are some chat transcripts showing what it's like to code with aider.
|
||||
In the chats, you'll see a varity of coding tasks like generating new code, editing existing code, debugging, exploring unfamiliar code, etc.
|
||||
In the chats, you'll see a variety of coding tasks like generating new code, editing existing code, debugging, exploring unfamiliar code, etc.
|
||||
|
||||
* [**Hello World Flask App**](https://aider.chat/examples/hello-world-flask.html): Start from scratch and have aider create a simple Flask app with various endpoints, such as adding two numbers and calculating the Fibonacci sequence.
|
||||
|
||||
|
|
|
@ -10,6 +10,19 @@ text = open("README.md").read()
|
|||
text = text.replace('['*3 + 'cog', ' NOOP ')
|
||||
text = text.replace('['*3 + 'end', ' NOOP ')
|
||||
text = text.replace(']'*3, '')
|
||||
|
||||
# embedding these confuses the syntax highlighter while editing index.md
|
||||
com_open = '<!' + '--'
|
||||
com_close = '--' + '>'
|
||||
|
||||
# comment out the screencast
|
||||
text = text.replace('SCREENCAST START ' + com_close, '')
|
||||
text = text.replace(com_open + ' SCREENCAST END', '')
|
||||
|
||||
# uncomment the video
|
||||
text = text.replace('VIDEO START', com_close)
|
||||
text = text.replace('VIDEO END', com_open)
|
||||
|
||||
cog.out(text)
|
||||
]]]-->
|
||||
|
||||
|
@ -23,12 +36,23 @@ Start a new project or work with an existing git repo.
|
|||
Aider works best with GPT-4o & Claude 3.5 Sonnet and can
|
||||
[connect to almost any LLM](https://aider.chat/docs/llms.html).
|
||||
|
||||
<!--
|
||||
<p align="center">
|
||||
<img
|
||||
src="https://aider.chat/assets/screencast.svg"
|
||||
alt="aider screencast"
|
||||
>
|
||||
</p>
|
||||
-->
|
||||
|
||||
<!-- -->
|
||||
<p align="center">
|
||||
<video style="max-width: 100%; height: auto;" autoplay loop muted playsinline>
|
||||
<source src="/assets/shell-cmds-small.mp4" type="video/mp4">
|
||||
Your browser does not support the video tag.
|
||||
</video>
|
||||
</p>
|
||||
<!-- -->
|
||||
|
||||
<p align="center">
|
||||
<a href="https://discord.gg/Tv2uQnR88V">
|
||||
|
@ -49,7 +73,7 @@ cog.out(open("aider/website/_includes/get-started.md").read())
|
|||
You can get started quickly like this:
|
||||
|
||||
```
|
||||
python -m pip install aider-chat
|
||||
python -m pip install -U aider-chat
|
||||
|
||||
# Change directory into a git repo
|
||||
cd /to/your/git/repo
|
||||
|
@ -110,7 +134,7 @@ projects like django, scikitlearn, matplotlib, etc.
|
|||
- [Configuration](https://aider.chat/docs/config.html)
|
||||
- [Troubleshooting](https://aider.chat/docs/troubleshooting.html)
|
||||
- [LLM Leaderboards](https://aider.chat/docs/leaderboards/)
|
||||
- [GitHub](https://github.com/paul-gauthier/aider)
|
||||
- [GitHub](https://github.com/Aider-AI/aider)
|
||||
- [Discord](https://discord.gg/Tv2uQnR88V)
|
||||
- [Blog](https://aider.chat/blog/)
|
||||
|
||||
|
@ -121,14 +145,14 @@ projects like django, scikitlearn, matplotlib, etc.
|
|||
- *The best AI coding assistant so far.* -- [Matthew Berman](https://www.youtube.com/watch?v=df8afeb1FY8)
|
||||
- *Aider ... has easily quadrupled my coding productivity.* -- [SOLAR_FIELDS](https://news.ycombinator.com/item?id=36212100)
|
||||
- *It's a cool workflow... Aider's ergonomics are perfect for me.* -- [qup](https://news.ycombinator.com/item?id=38185326)
|
||||
- *It's really like having your senior developer live right in your Git repo - truly amazing!* -- [rappster](https://github.com/paul-gauthier/aider/issues/124)
|
||||
- *What an amazing tool. It's incredible.* -- [valyagolev](https://github.com/paul-gauthier/aider/issues/6#issue-1722897858)
|
||||
- *Aider is such an astounding thing!* -- [cgrothaus](https://github.com/paul-gauthier/aider/issues/82#issuecomment-1631876700)
|
||||
- *It's really like having your senior developer live right in your Git repo - truly amazing!* -- [rappster](https://github.com/Aider-AI/aider/issues/124)
|
||||
- *What an amazing tool. It's incredible.* -- [valyagolev](https://github.com/Aider-AI/aider/issues/6#issue-1722897858)
|
||||
- *Aider is such an astounding thing!* -- [cgrothaus](https://github.com/Aider-AI/aider/issues/82#issuecomment-1631876700)
|
||||
- *It was WAY faster than I would be getting off the ground and making the first few working versions.* -- [Daniel Feldman](https://twitter.com/d_feldman/status/1662295077387923456)
|
||||
- *THANK YOU for Aider! It really feels like a glimpse into the future of coding.* -- [derwiki](https://news.ycombinator.com/item?id=38205643)
|
||||
- *It's just amazing. It is freeing me to do things I felt were out my comfort zone before.* -- [Dougie](https://discord.com/channels/1131200896827654144/1174002618058678323/1174084556257775656)
|
||||
- *This project is stellar.* -- [funkytaco](https://github.com/paul-gauthier/aider/issues/112#issuecomment-1637429008)
|
||||
- *Amazing project, definitely the best AI coding assistant I've used.* -- [joshuavial](https://github.com/paul-gauthier/aider/issues/84)
|
||||
- *This project is stellar.* -- [funkytaco](https://github.com/Aider-AI/aider/issues/112#issuecomment-1637429008)
|
||||
- *Amazing project, definitely the best AI coding assistant I've used.* -- [joshuavial](https://github.com/Aider-AI/aider/issues/84)
|
||||
- *I absolutely love using Aider ... It makes software development feel so much lighter as an experience.* -- [principalideal0](https://discord.com/channels/1131200896827654144/1133421607499595858/1229689636012691468)
|
||||
- *I have been recovering from multiple shoulder surgeries ... and have used aider extensively. It has allowed me to continue productivity.* -- [codeninja](https://www.reddit.com/r/OpenAI/s/nmNwkHy1zG)
|
||||
- *I am an aider addict. I'm getting so much more work done, but in less time.* -- [dandandan](https://discord.com/channels/1131200896827654144/1131200896827654149/1135913253483069470)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue