mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-31 17:55:01 +00:00
Merge branch 'main' into register_settings
This commit is contained in:
commit
b6fa02044f
51 changed files with 1973 additions and 238 deletions
|
@ -10,6 +10,8 @@ Most of aider's options can be set in an `.aider.conf.yml` file,
|
|||
which can be placed in your home directory or at the root of
|
||||
your git repo.
|
||||
|
||||
{% include special-keys.md %}
|
||||
|
||||
Below is a sample of the file, which you
|
||||
can also
|
||||
[download from GitHub](https://github.com/paul-gauthier/aider/blob/main/website/assets/sample.aider.conf.yml).
|
||||
|
@ -26,6 +28,7 @@ cog.outl("```")
|
|||
```
|
||||
##########################################################
|
||||
# Sample .aider.conf.yaml
|
||||
# This file lists *all* the valid configuration entries.
|
||||
# Place in your home dir, or at the root of your git repo.
|
||||
##########################################################
|
||||
|
||||
|
@ -38,8 +41,8 @@ cog.outl("```")
|
|||
#######
|
||||
# Main:
|
||||
|
||||
## Use VI editing mode in the terminal (default: False)
|
||||
#vim: false
|
||||
## Log the conversation with the LLM to this file (for example, .aider.llm.history)
|
||||
#llm-history-file:
|
||||
|
||||
## Specify the OpenAI API key
|
||||
#openai-api-key:
|
||||
|
@ -53,7 +56,7 @@ cog.outl("```")
|
|||
## Use claude-3-opus-20240229 model for the main chat
|
||||
#opus: false
|
||||
|
||||
## Use claude-3-sonnet-20240229 model for the main chat
|
||||
## Use claude-3-5-sonnet-20240620 model for the main chat
|
||||
#sonnet: false
|
||||
|
||||
## Use gpt-4-0613 model for the main chat
|
||||
|
@ -89,6 +92,9 @@ cog.outl("```")
|
|||
## Specify the OpenAI organization ID
|
||||
#openai-organization-id:
|
||||
|
||||
## Verify the SSL cert when connecting to models (default: True)
|
||||
#verify-ssl: true
|
||||
|
||||
## Specify a file with context window and costs for unknown models
|
||||
#model-metadata-file:
|
||||
|
||||
|
@ -203,6 +209,9 @@ cog.outl("```")
|
|||
#################
|
||||
# Other Settings:
|
||||
|
||||
## 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
|
||||
|
||||
|
|
|
@ -4,28 +4,263 @@ nav_order: 900
|
|||
description: Using a .env file to store LLM API keys for aider.
|
||||
---
|
||||
|
||||
# Storing LLM params in .env
|
||||
# Config with .env
|
||||
|
||||
You can use a `.env` file to store API keys and other settings for the
|
||||
models you use with aider.
|
||||
You currently can not set general aider options
|
||||
in the `.env` file, only LLM environment variables.
|
||||
You can also set many general aider options
|
||||
in the `.env` file.
|
||||
|
||||
{% include special-keys.md %}
|
||||
|
||||
Aider will look for a `.env` file in the
|
||||
root of your git repo or in the current directory.
|
||||
You can give it an explicit file to load with the `--env-file <filename>` parameter.
|
||||
|
||||
Here is an example `.env` file:
|
||||
Below is a sample `.env` file, which you
|
||||
can also
|
||||
[download from GitHub](https://github.com/paul-gauthier/aider/blob/main/website/assets/sample.env).
|
||||
|
||||
<!--[[[cog
|
||||
from aider.args import get_sample_dotenv
|
||||
from pathlib import Path
|
||||
text=get_sample_dotenv()
|
||||
Path("website/assets/sample.env").write_text(text)
|
||||
cog.outl("```")
|
||||
cog.out(text)
|
||||
cog.outl("```")
|
||||
]]]-->
|
||||
```
|
||||
OPENAI_API_KEY=<key>
|
||||
ANTHROPIC_API_KEY=<key>
|
||||
GROQ_API_KEY=<key>
|
||||
OPENROUTER_API_KEY=<key>
|
||||
##########################################################
|
||||
# Sample aider .env file.
|
||||
# Place at the root of your git repo.
|
||||
# Or use `aider --env <fname>` to specify.
|
||||
##########################################################
|
||||
|
||||
AZURE_API_KEY=<key>
|
||||
AZURE_API_VERSION=2023-05-15
|
||||
AZURE_API_BASE=https://example-endpoint.openai.azure.com
|
||||
#################
|
||||
# LLM parameters:
|
||||
#
|
||||
# Include xxx_API_KEY parameters and other params needed for your LLMs.
|
||||
# See https://aider.chat/docs/llms.html for details.
|
||||
|
||||
OLLAMA_API_BASE=http://127.0.0.1:11434
|
||||
## OpenAI
|
||||
#OPENAI_API_KEY=
|
||||
|
||||
## Anthropic
|
||||
#ANTHROPIC_API_KEY=
|
||||
|
||||
##...
|
||||
|
||||
#######
|
||||
# Main:
|
||||
|
||||
## Log the conversation with the LLM to this file (for example, .aider.llm.history)
|
||||
#AIDER_LLM_HISTORY_FILE=
|
||||
|
||||
## Specify the OpenAI API key
|
||||
#OPENAI_API_KEY=
|
||||
|
||||
## Specify the Anthropic API key
|
||||
#ANTHROPIC_API_KEY=
|
||||
|
||||
## Specify the model to use for the main chat (default: gpt-4o)
|
||||
#AIDER_MODEL=gpt-4o
|
||||
|
||||
## Use claude-3-opus-20240229 model for the main chat
|
||||
#AIDER_OPUS=
|
||||
|
||||
## Use claude-3-5-sonnet-20240620 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
|
||||
#AIDER_4O=
|
||||
|
||||
## Use gpt-4-1106-preview model for the main chat
|
||||
#AIDER_4_TURBO=
|
||||
|
||||
## Use gpt-3.5-turbo model for the main chat
|
||||
#AIDER_35TURBO=
|
||||
|
||||
#################
|
||||
# Model Settings:
|
||||
|
||||
## List known models which match the (partial) MODEL name
|
||||
#AIDER_MODELS=
|
||||
|
||||
## Specify the api base url
|
||||
#OPENAI_API_BASE=
|
||||
|
||||
## Specify the api_type
|
||||
#OPENAI_API_TYPE=
|
||||
|
||||
## Specify the api_version
|
||||
#OPENAI_API_VERSION=
|
||||
|
||||
## Specify the deployment_id
|
||||
#OPENAI_API_DEPLOYMENT_ID=
|
||||
|
||||
## Specify the OpenAI organization ID
|
||||
#OPENAI_ORGANIZATION_ID=
|
||||
|
||||
## Verify the SSL cert when connecting to models (default: True)
|
||||
#AIDER_VERIFY_SSL=true
|
||||
|
||||
## Specify a file with context window and costs for unknown models
|
||||
#AIDER_MODEL_METADATA_FILE=
|
||||
|
||||
## Specify what edit format the LLM should use (default depends on model)
|
||||
#AIDER_EDIT_FORMAT=
|
||||
|
||||
## Specify the model to use for commit messages and chat history summarization (default depends on --model)
|
||||
#AIDER_WEAK_MODEL=
|
||||
|
||||
## 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=true
|
||||
|
||||
## Maximum number of tokens to use for chat history. If not specified, uses 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
|
||||
|
||||
################
|
||||
# History Files:
|
||||
|
||||
## Specify the chat input history file (default: .aider.input.history)
|
||||
#AIDER_INPUT_HISTORY_FILE=.aider.input.history
|
||||
|
||||
## Specify the chat history file (default: .aider.chat.history.md)
|
||||
#AIDER_CHAT_HISTORY_FILE=.aider.chat.history.md
|
||||
|
||||
## Restore the previous chat history messages (default: False)
|
||||
#AIDER_RESTORE_CHAT_HISTORY=false
|
||||
|
||||
##################
|
||||
# Output Settings:
|
||||
|
||||
## Use colors suitable for a dark terminal background (default: False)
|
||||
#AIDER_DARK_MODE=false
|
||||
|
||||
## Use colors suitable for a light terminal background (default: False)
|
||||
#AIDER_LIGHT_MODE=false
|
||||
|
||||
## Enable/disable pretty, colorized output (default: True)
|
||||
#AIDER_PRETTY=true
|
||||
|
||||
## Enable/disable streaming responses (default: True)
|
||||
#AIDER_STREAM=true
|
||||
|
||||
## Set the color for user input (default: #00cc00)
|
||||
#AIDER_USER_INPUT_COLOR=#00cc00
|
||||
|
||||
## Set the color for tool output (default: None)
|
||||
#AIDER_TOOL_OUTPUT_COLOR=
|
||||
|
||||
## Set the color for tool error messages (default: red)
|
||||
#AIDER_TOOL_ERROR_COLOR=#FF2222
|
||||
|
||||
## Set the color for assistant output (default: #0088ff)
|
||||
#AIDER_ASSISTANT_OUTPUT_COLOR=#0088ff
|
||||
|
||||
## Set the markdown code theme (default: default, other options include monokai, solarized-dark, solarized-light)
|
||||
#AIDER_CODE_THEME=default
|
||||
|
||||
## Show diffs when committing changes (default: False)
|
||||
#AIDER_SHOW_DIFFS=false
|
||||
|
||||
###############
|
||||
# Git Settings:
|
||||
|
||||
## Enable/disable looking for a git repo (default: True)
|
||||
#AIDER_GIT=true
|
||||
|
||||
## Enable/disable adding .aider* to .gitignore (default: True)
|
||||
#AIDER_GITIGNORE=true
|
||||
|
||||
## Specify the aider ignore file (default: .aiderignore in git root)
|
||||
#AIDER_AIDERIGNORE=.aiderignore
|
||||
|
||||
## Enable/disable auto commit of LLM changes (default: True)
|
||||
#AIDER_AUTO_COMMITS=true
|
||||
|
||||
## Enable/disable commits when repo is found dirty (default: True)
|
||||
#AIDER_DIRTY_COMMITS=true
|
||||
|
||||
## Perform a dry run without modifying files (default: False)
|
||||
#AIDER_DRY_RUN=false
|
||||
|
||||
########################
|
||||
# Fixing and committing:
|
||||
|
||||
## Commit all pending changes with a suitable commit message, then exit
|
||||
#AIDER_COMMIT=false
|
||||
|
||||
## Lint and fix provided files, or dirty files if none provided
|
||||
#AIDER_LINT=false
|
||||
|
||||
## Specify lint commands to run for different languages, eg: "python: flake8 --select=..." (can be used multiple times)
|
||||
#AIDER_LINT_CMD=
|
||||
|
||||
## Enable/disable automatic linting after changes (default: True)
|
||||
#AIDER_AUTO_LINT=true
|
||||
|
||||
## Specify command to run tests
|
||||
#AIDER_TEST_CMD=
|
||||
|
||||
## Enable/disable automatic testing after changes (default: False)
|
||||
#AIDER_AUTO_TEST=false
|
||||
|
||||
## Run tests and fix problems found
|
||||
#AIDER_TEST=false
|
||||
|
||||
#################
|
||||
# Other Settings:
|
||||
|
||||
## 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
|
||||
|
||||
## Check for updates and return status in the exit code
|
||||
#AIDER_CHECK_UPDATE=false
|
||||
|
||||
## Skips checking for the update when the program runs
|
||||
#AIDER_SKIP_CHECK_UPDATE=false
|
||||
|
||||
## Apply the changes from the given file instead of running the chat (debug)
|
||||
#AIDER_APPLY=
|
||||
|
||||
## Always say yes to every confirmation
|
||||
#AIDER_YES=
|
||||
|
||||
## Enable verbose output
|
||||
#AIDER_VERBOSE=false
|
||||
|
||||
## Print the repo map and exit (debug)
|
||||
#AIDER_SHOW_REPO_MAP=false
|
||||
|
||||
## Print the system prompts and exit (debug)
|
||||
#AIDER_SHOW_PROMPTS=false
|
||||
|
||||
## Specify a single message to send the LLM, process reply then exit (disables chat mode)
|
||||
#AIDER_MESSAGE=
|
||||
|
||||
## Specify a file containing the message to send the LLM, process reply, then exit (disables chat mode)
|
||||
#AIDER_MESSAGE_FILE=
|
||||
|
||||
## Specify the encoding for input and output (default: utf-8)
|
||||
#AIDER_ENCODING=utf-8
|
||||
|
||||
## Run aider in your browser
|
||||
#AIDER_GUI=false
|
||||
```
|
||||
<!--[[[end]]]-->
|
||||
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
---
|
||||
nav_order: 85
|
||||
nav_order: 90
|
||||
description: Frequently asked questions about aider.
|
||||
---
|
||||
|
||||
# Frequently asked questions
|
||||
# FAQ
|
||||
{: .no_toc }
|
||||
|
||||
- TOC
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
---
|
||||
parent: More info
|
||||
nav_order: 800
|
||||
description: Aider is tightly integrated with git.
|
||||
---
|
||||
|
@ -14,14 +15,21 @@ Aider is tightly integrated with git, which makes it easy to:
|
|||
|
||||
Aider specifically uses git in these ways:
|
||||
|
||||
- It asks to create a git repo if you launch it in a directory without one.
|
||||
- Whenever aider edits a file, it commits those changes with a descriptive commit message. This makes it easy to undo or review aider's changes.
|
||||
- Aider takes special care before editing files that already have uncommitted changes (dirty files). Aider will first commit any preexisting changes with a descriptive commit message. This keeps your edits separate from aider's edits, and makes sure you never lose your work if aider makes an inappropriate change.
|
||||
- It asks to create a git repo if you launch it in a directory without one.
|
||||
- Whenever aider edits a file, it commits those changes with a descriptive commit message. This makes it easy to undo or review aider's changes.
|
||||
These commits will have "(aider)" appended to their git author and git committer metadata.
|
||||
- Aider takes special care before editing files that already have uncommitted changes (dirty files). Aider will first commit any preexisting changes with a descriptive commit message.
|
||||
This keeps your edits separate from aider's edits, and makes sure you never lose your work if aider makes an inappropriate change.
|
||||
These commits will have "(aider)" appended to their git committer metadata.
|
||||
|
||||
## 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.
|
||||
|
||||
## Disabling git integration
|
||||
|
||||
While it is not recommended, you can disable aider's use of git in a few ways:
|
||||
|
||||
- `--no-auto-commits` will stop aider from git committing each of its changes.
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
---
|
||||
parent: More info
|
||||
nav_order: 900
|
||||
description: Aider supports pretty much all popular coding languages.
|
||||
---
|
||||
|
|
|
@ -16,6 +16,20 @@ While [aider can connect to almost any LLM](/docs/llms.html),
|
|||
it works best with models that score well on the benchmarks.
|
||||
|
||||
|
||||
## Claude 3.5 Sonnet takes the top spot
|
||||
|
||||
Claude 3.5 Sonnet is now the top ranked model on aider's code editing leaderboard.
|
||||
DeepSeek Coder V2 only spent 4 days in the top spot.
|
||||
|
||||
The new Sonnet came in 3rd on aider's refactoring leaderboard, behind GPT-4o and Opus.
|
||||
|
||||
Sonnet ranked #1 when using the "whole" editing format,
|
||||
but it also scored very well with
|
||||
aider's "diff" editing format.
|
||||
This format allows it to return code changes as diffs -- saving time and token costs,
|
||||
and making it practical to work with larger source files.
|
||||
As such, aider uses "diff" by default with this new Sonnet model.
|
||||
|
||||
## Code editing leaderboard
|
||||
|
||||
[Aider's code editing benchmark](/docs/benchmarks.html#the-benchmark) asks the LLM to edit python source files to complete 133 small coding exercises. This benchmark measures the LLM's coding ability, but also whether it can consistently emit code edits in the format specified in the system prompt.
|
||||
|
|
|
@ -10,22 +10,27 @@ description: Aider can connect to most LLMs for AI pair programming.
|
|||
|
||||
[](https://aider.chat/assets/llms.jpg)
|
||||
|
||||
|
||||
## Best models
|
||||
{: .no_toc }
|
||||
|
||||
**Aider works best with [GPT-4o](/docs/llms/openai.html) and
|
||||
[Claude 3 Opus](/docs/llms/anthropic.html),**
|
||||
as they are the very best models for editing code.
|
||||
Aider works best with these models, which are skilled at editing code:
|
||||
|
||||
- [GPT-4o](/docs/llms/openai.html)
|
||||
- [Claude 3.5 Sonnet](/docs/llms/anthropic.html)
|
||||
- [Claude 3 Opus](/docs/llms/anthropic.html)
|
||||
- [DeepSeek Coder V2](/docs/llms/deepseek.html)
|
||||
|
||||
|
||||
## Free models
|
||||
{: .no_toc }
|
||||
|
||||
Aider works with a number of **free** API providers:
|
||||
|
||||
- Google's [Gemini 1.5 Pro](/docs/llms/gemini.html) is the most capable free model to use with aider, with
|
||||
- The [DeepSeek Coder V2](/docs/llms/deepseek.html) model gets the top score on aider's code editing benchmark. DeepSeek has been offering 5M free tokens of API usage.
|
||||
- Google's [Gemini 1.5 Pro](/docs/llms/gemini.html) works with aider, with
|
||||
code editing capabilities similar to GPT-3.5.
|
||||
- You can use [Llama 3 70B on Groq](/docs/llms/groq.html) which is comparable to GPT-3.5 in code editing performance.
|
||||
- The [Deepseek Chat v2](/docs/llms/deepseek.html) model work well with aider, better than GPT-3.5. Deepseek currently offers 5M free tokens of API usage.
|
||||
- Cohere also offers free API access to their [Command-R+ model](/docs/llms/cohere.html), which works with aider as a *very basic* coding assistant.
|
||||
|
||||
## Local models
|
||||
|
|
|
@ -22,7 +22,7 @@ setx ANTHROPIC_API_KEY <key> # Windows
|
|||
# Claude 3 Opus
|
||||
aider --opus
|
||||
|
||||
# Claude 3 Sonnet
|
||||
# Claude 3.5 Sonnet
|
||||
aider --sonnet
|
||||
|
||||
# List models available from Anthropic
|
||||
|
|
|
@ -25,3 +25,6 @@ aider --model azure/<your_deployment_name>
|
|||
# List models available from Azure
|
||||
aider --models azure/
|
||||
```
|
||||
|
||||
Note that aider will also use environment variables
|
||||
like `AZURE_OPENAI_API_xxx`.
|
||||
|
|
|
@ -3,10 +3,11 @@ parent: Connecting to LLMs
|
|||
nav_order: 500
|
||||
---
|
||||
|
||||
# Deepseek
|
||||
# DeepSeek
|
||||
|
||||
Aider can connect to the Deepseek.com API.
|
||||
Deepseek appears to grant 5M tokens of free API usage to new accounts.
|
||||
Aider can connect to the DeepSeek.com API.
|
||||
The DeepSeek Coder V2 model gets the top score on aider's code editing benchmark.
|
||||
DeepSeek appears to grant 5M tokens of free API usage to new accounts.
|
||||
|
||||
```
|
||||
pip install aider-chat
|
||||
|
@ -14,8 +15,8 @@ pip install aider-chat
|
|||
export DEEPSEEK_API_KEY=<key> # Mac/Linux
|
||||
setx DEEPSEEK_API_KEY <key> # Windows
|
||||
|
||||
# Use Deepseek Chat v2
|
||||
aider --model deepseek/deepseek-chat
|
||||
# Use DeepSeek Coder V2
|
||||
aider --model deepseek/deepseek-coder
|
||||
```
|
||||
|
||||
See the [model warnings](warnings.html)
|
||||
|
|
8
website/docs/more-info.md
Normal file
8
website/docs/more-info.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
has_children: true
|
||||
nav_order: 85
|
||||
---
|
||||
|
||||
# More info
|
||||
|
||||
See below for more info about aider, including some advanced topics.
|
|
@ -21,6 +21,15 @@ usage: aider [-h] [--vim] [--openai-api-key] [--anthropic-api-key]
|
|||
[--openai-api-deployment-id] [--openai-organization-id]
|
||||
[--model-settings-file] [--model-metadata-file]
|
||||
[--edit-format] [--weak-model]
|
||||
=======
|
||||
usage: aider [-h] [--llm-history-file] [--openai-api-key]
|
||||
[--anthropic-api-key] [--model] [--opus] [--sonnet]
|
||||
[--4] [--4o] [--4-turbo] [--35turbo] [--models]
|
||||
[--openai-api-base] [--openai-api-type]
|
||||
[--openai-api-version] [--openai-api-deployment-id]
|
||||
[--openai-organization-id]
|
||||
[--verify-ssl | --no-verify-ssl]
|
||||
[--model-metadata-file] [--edit-format] [--weak-model]
|
||||
[--show-model-warnings | --no-show-model-warnings]
|
||||
[--map-tokens] [--max-chat-history-tokens] [--env-file]
|
||||
[--input-history-file] [--chat-history-file]
|
||||
|
@ -36,7 +45,7 @@ usage: aider [-h] [--vim] [--openai-api-key] [--anthropic-api-key]
|
|||
[--dry-run | --no-dry-run] [--commit] [--lint]
|
||||
[--lint-cmd] [--auto-lint | --no-auto-lint]
|
||||
[--test-cmd] [--auto-test | --no-auto-test] [--test]
|
||||
[--voice-language] [--version] [--check-update]
|
||||
[--vim] [--voice-language] [--version] [--check-update]
|
||||
[--skip-check-update] [--apply] [--yes] [-v]
|
||||
[--show-repo-map] [--show-prompts] [--message]
|
||||
[--message-file] [--encoding] [-c] [--gui]
|
||||
|
@ -53,10 +62,9 @@ Aliases:
|
|||
|
||||
## Main:
|
||||
|
||||
### `--vim`
|
||||
Use VI editing mode in the terminal (default: False)
|
||||
Default: False
|
||||
Environment variable: `AIDER_VIM`
|
||||
### `--llm-history-file LLM_HISTORY_FILE`
|
||||
Log the conversation with the LLM to this file (for example, .aider.llm.history)
|
||||
Environment variable: `AIDER_LLM_HISTORY_FILE`
|
||||
|
||||
### `--openai-api-key OPENAI_API_KEY`
|
||||
Specify the OpenAI API key
|
||||
|
@ -76,7 +84,7 @@ Use claude-3-opus-20240229 model for the main chat
|
|||
Environment variable: `AIDER_OPUS`
|
||||
|
||||
### `--sonnet`
|
||||
Use claude-3-sonnet-20240229 model for the main chat
|
||||
Use claude-3-5-sonnet-20240620 model for the main chat
|
||||
Environment variable: `AIDER_SONNET`
|
||||
|
||||
### `--4`
|
||||
|
@ -132,6 +140,14 @@ Environment variable: `OPENAI_ORGANIZATION_ID`
|
|||
### `--model-settings-file MODEL_FILE`
|
||||
Specify a file with aider model settings for unknown models
|
||||
Environment variable: `AIDER_MODEL_SETTINGS_FILE`
|
||||
=======
|
||||
### `--verify-ssl`
|
||||
Verify the SSL cert when connecting to models (default: True)
|
||||
Default: True
|
||||
Environment variable: `AIDER_VERIFY_SSL`
|
||||
Aliases:
|
||||
- `--verify-ssl`
|
||||
- `--no-verify-ssl`
|
||||
|
||||
### `--model-metadata-file MODEL_FILE`
|
||||
Specify a file with context window and costs for unknown models
|
||||
|
@ -336,6 +352,11 @@ Environment variable: `AIDER_TEST`
|
|||
|
||||
## Other Settings:
|
||||
|
||||
### `--vim`
|
||||
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
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
---
|
||||
parent: More info
|
||||
highlight_image: /assets/robot-ast.png
|
||||
nav_order: 900
|
||||
description: Aider uses a map of your git repository to provide code context to LLMs.
|
||||
|
@ -12,23 +13,22 @@ Aider
|
|||
uses a **concise map of your whole git repository**
|
||||
that includes
|
||||
the most important classes and functions along with their types and call signatures.
|
||||
This helps the LLM understand the code it needs to change,
|
||||
This helps aider understand the code it's editing
|
||||
and how it relates to the other parts of the codebase.
|
||||
The repo map also helps the LLM write new code
|
||||
The repo map also helps aider write new code
|
||||
that respects and utilizes existing libraries, modules and abstractions
|
||||
found elsewhere in the codebase.
|
||||
|
||||
## Using a repo map to provide context
|
||||
|
||||
Aider sends a **repo map** to the LLM along with
|
||||
each request from the user to make a code change.
|
||||
The map contains a list of the files in the
|
||||
each change request from the user.
|
||||
The repo map contains a list of the files in the
|
||||
repo, along with the key symbols which are defined in each file.
|
||||
It shows how each of these symbols are defined in the
|
||||
source code, by including the critical lines of code for each definition.
|
||||
It shows how each of these symbols are defined, 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
|
||||
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)
|
||||
and
|
||||
[commands.py](https://github.com/paul-gauthier/aider/blob/main/aider/commands.py)
|
||||
|
@ -71,7 +71,7 @@ aider/commands.py:
|
|||
Mapping out the repo like this provides some key benefits:
|
||||
|
||||
- The LLM can see classes, methods and function signatures from everywhere in the repo. This alone may give it enough context to solve many tasks. For example, it can probably figure out how to use the API exported from a module just based on the details shown in the map.
|
||||
- If it needs to see more code, the LLM can use the map to figure out by itself which files it needs to look at in more detail. The LLM will then ask to see these specific files, and aider will automatically add them to the chat context.
|
||||
- If it needs to see more code, the LLM can use the map to figure out which files it needs to look at. The LLM can ask to see these specific files, and aider will offer to add them to the chat context.
|
||||
|
||||
## Optimizing the map
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
---
|
||||
parent: More info
|
||||
nav_order: 900
|
||||
description: You can script aider via the command line or python.
|
||||
---
|
||||
|
|
|
@ -33,8 +33,8 @@ so editing errors are probably unavoidable.
|
|||
## Reduce distractions
|
||||
|
||||
Many LLM now have very large context windows,
|
||||
but filling them with irrelevant code often
|
||||
cofuses the model.
|
||||
but filling them with irrelevant code or conversation
|
||||
can cofuse 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.
|
||||
|
|
86
website/docs/troubleshooting/token-limits.md
Normal file
86
website/docs/troubleshooting/token-limits.md
Normal file
|
@ -0,0 +1,86 @@
|
|||
---
|
||||
parent: Troubleshooting
|
||||
nav_order: 25
|
||||
---
|
||||
|
||||
# Token limits
|
||||
|
||||
Every LLM has limits on how many tokens it can process for each request:
|
||||
|
||||
- The model's **context window** limits how many total tokens of
|
||||
*input and output* it can process.
|
||||
- Each model has limit on how many **output tokens** it can
|
||||
produce.
|
||||
|
||||
Aider will report an error if a model responds indicating that
|
||||
it has exceeded a token limit.
|
||||
The error will include suggested actions to try and
|
||||
avoid hitting token limits.
|
||||
Here's an example error:
|
||||
|
||||
```
|
||||
Model gpt-3.5-turbo has hit a token limit!
|
||||
|
||||
Input tokens: 768 of 16385
|
||||
Output tokens: 4096 of 4096 -- exceeded output limit!
|
||||
Total tokens: 4864 of 16385
|
||||
|
||||
To reduce output tokens:
|
||||
- Ask for smaller changes in each request.
|
||||
- Break your code into smaller source files.
|
||||
- Try using a stronger model like gpt-4o or opus that can return diffs.
|
||||
|
||||
For more info: https://aider.chat/docs/token-limits.html
|
||||
```
|
||||
|
||||
## Input tokens & context window size
|
||||
|
||||
The most common problem is trying to send too much data to a
|
||||
model,
|
||||
overflowing its context window.
|
||||
Technically you can exhaust the context window if the input is
|
||||
too large or if the input plus output are too large.
|
||||
|
||||
Strong models like GPT-4o and Opus have quite
|
||||
large context windows, so this sort of error is
|
||||
typically only an issue when working with weaker models.
|
||||
|
||||
The easiest solution is to try and reduce the input tokens
|
||||
by removing files from the chat.
|
||||
It's best to only add the files that aider will need to *edit*
|
||||
to complete your request.
|
||||
|
||||
- Use `/tokens` to see token usage.
|
||||
- Use `/drop` to remove unneeded files from the chat session.
|
||||
- Use `/clear` to clear the chat history.
|
||||
- Break your code into smaller source files.
|
||||
|
||||
## Output token limits
|
||||
|
||||
Most models have quite small output limits, often as low
|
||||
as 4k tokens.
|
||||
If you ask aider to make a large change that affects a lot
|
||||
of code, the LLM may hit output token limits
|
||||
as it tries to send back all the changes.
|
||||
|
||||
To avoid hitting output token limits:
|
||||
|
||||
- Ask for smaller changes in each request.
|
||||
- Break your code into smaller source files.
|
||||
- Try using a stronger model like gpt-4o or opus that can return diffs.
|
||||
|
||||
|
||||
## Other causes
|
||||
|
||||
Sometimes token limit errors are caused by
|
||||
non-compliant API proxy servers
|
||||
or bugs in the API server you are using to host a local model.
|
||||
Aider has been well tested when directly connecting to
|
||||
major
|
||||
[LLM provider cloud APIs](https://aider.chat/docs/llms.html).
|
||||
For serving local models,
|
||||
[Ollama](https://aider.chat/docs/llms/ollama.html) is known to work well with aider.
|
||||
|
||||
Try using aider without an API proxy server
|
||||
or directly with one of the recommended cloud APIs
|
||||
and see if your token limit problems resolve.
|
|
@ -10,11 +10,31 @@ Run `aider` with the source code files you want to edit.
|
|||
These files will be "added to the chat session", so that
|
||||
aider can see their
|
||||
contents and edit them for you.
|
||||
They can be existing files or the name of files you want
|
||||
aider to create for you.
|
||||
|
||||
```
|
||||
aider <file1> <file2> ...
|
||||
```
|
||||
|
||||
At the aider `>` prompt, ask for code changes and aider
|
||||
will edit those files to accomplish your request.
|
||||
|
||||
|
||||
```
|
||||
$ aider factorial.py
|
||||
|
||||
Aider v0.37.1-dev
|
||||
Models: gpt-4o with diff edit format, weak model gpt-3.5-turbo
|
||||
Git repo: .git with 258 files
|
||||
Repo-map: using 1024 tokens
|
||||
Use /help to see in-chat commands, run with --help to see cmd line args
|
||||
───────────────────────────────────────────────────────────────────────
|
||||
>`Make a program that asks for a number and prints its factorial
|
||||
|
||||
...
|
||||
```
|
||||
|
||||
## Adding files
|
||||
|
||||
Just add the files that the aider will need to *edit*.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue