Commit graph

3954 commits

Author SHA1 Message Date
Paul Gauthier
4482c24d34 Restore proper default to io.yes #585 2024-05-02 12:47:16 -07:00
Paul Gauthier
3e5f0d0c75 copy 2024-05-02 11:34:38 -07:00
Paul Gauthier
d64a457def Added --env-file param 2024-05-02 11:32:06 -07:00
Paul Gauthier
254481408e aider: Implemented loading .env file specified by command line argument.
# Aider chat conversation:

USER: do the todo

ASSISTANT: To implement the TODO item in `aider/main.py` about loading a .env file, we can make the following changes:

1. Add the python-dotenv package to the imports.
2. Load the .env file specified by args.env_file using dotenv.load_dotenv().

Here are the *SEARCH/REPLACE* blocks to make those changes:

aider/main.py
```python
<<<<<<< SEARCH
import configparser
import os
import sys
from pathlib import Path

import git
import litellm
from streamlit.web import cli
=======
import configparser
import os
import sys
from pathlib import Path

import git
import litellm
from dotenv import load_dotenv
from streamlit.web import cli
>>>>>>> REPLACE
```

aider/main.py
```python
<<<<<<< SEARCH
    # todo: load .env using filename args.env_file
=======
    if args.env_file:
        load_dotenv(args.env_file)
>>>>>>> REPLACE
```

This will load the environment variables from the specified .env file, if provided via the `--env-file` command line argument.

Note: You'll need to install the `python-dotenv` package for this to work, e.g. via `pip install python-dotenv`.
2024-05-02 11:29:12 -07:00
Paul Gauthier
8cfdd36620 Added support for loading environment variables from a custom .env file. 2024-05-02 11:29:11 -07:00
Paul Gauthier
3289383cbe new video 2024-05-02 10:52:12 -07:00
Paul Gauthier
192bc6592e aider: Added the 'loop' attribute to the video element to enable looping the video.
# Aider chat conversation:

USER: can we loop the video?

ASSISTANT: To loop the video, we can add the `loop` attribute to the `<video>` tag.

Here is the *SEARCH/REPLACE* block:

_posts/2024-05-02-browser.md
<source>
<<<<<<< SEARCH
<video width="704" height="720" controls poster="/assets/browser.jpg">
=======
<video width="704" height="720" controls loop poster="/assets/browser.jpg">
>>>>>>> REPLACE
</source>
2024-05-02 10:48:15 -07:00
Paul Gauthier
05450fb3d2 copy 2024-05-02 10:45:53 -07:00
Paul Gauthier
db0e420ea0 aider: Added a poster image to the video tag
# Aider chat conversation:

USER: add the highlight image as the thumbnail that will show before the <video> tag plays

ASSISTANT: To add the highlight image as a thumbnail that shows before the video plays, we can use the `poster` attribute on the `<video>` tag.

Here is the *SEARCH/REPLACE* block:

_posts/2024-05-02-browser.md
<source>
<<<<<<< SEARCH
<video width="704" height="720" controls>
=======
<video width="704" height="720" controls poster="/assets/browser.jpg">
>>>>>>> REPLACE
</source>

The `poster` attribute specifies an image to be shown while the video is downloading, or until the user hits the play button. This will display the `browser.jpg` image before the video starts playing.
2024-05-02 10:41:46 -07:00
Paul Gauthier
b087cd670f Enabled browser-based AI pair programming in Aider. 2024-05-02 10:41:44 -07:00
Paul Gauthier
7c2e9a394c browser blog post 2024-05-02 10:39:33 -07:00
Paul Gauthier
707fb80d87 copy 2024-05-02 09:22:09 -07:00
Paul Gauthier
8a9ba47442 set version to 0.31.1-dev 2024-05-02 09:10:09 -07:00
Paul Gauthier
ec6054a53a version bump to 0.31.0 2024-05-02 09:09:35 -07:00
Paul Gauthier
bd2900495d bump deps to pick up latest litellm 2024-05-02 08:46:16 -07:00
Paul Gauthier
258c466906 copy 2024-05-02 08:31:13 -07:00
Paul Gauthier
1a8ea2f81f added windows setx commands #584 2024-05-02 08:14:24 -07:00
Paul Gauthier
d4c63ca959 Updated the API key environment variable examples in the llms.md documentation. 2024-05-02 08:03:42 -07:00
Paul Gauthier
8800432dd7 aider: Added # Windows: setx versions of all the export commands.
# Aider chat conversation:

USER: add `# Windows: setx` versions of all the `export` commands, like the first one

ASSISTANT: Here are the changes to add `# Windows: setx` versions of all the `export` commands:

docs/llms.md
<source>markdown
<<<<<<< SEARCH
export ANTHROPIC_API_KEY=<your-key>
=======
export ANTHROPIC_API_KEY=<your-key> # Windows: setx ANTHROPIC_API_KEY <your-key>
>>>>>>> REPLACE
</source>

docs/llms.md
<source>markdown
<<<<<<< SEARCH
export GEMINI_API_KEY=<your-key>
=======
export GEMINI_API_KEY=<your-key> # Windows: setx GEMINI_API_KEY <your-key>
>>>>>>> REPLACE
</source>

docs/llms.md
<source>markdown
<<<<<<< SEARCH
export GROQ_API_KEY=<your-key>
=======
export GROQ_API_KEY=<your-key> # Windows: setx GROQ_API_KEY <your-key>
>>>>>>> REPLACE
</source>

docs/llms.md
<source>markdown
<<<<<<< SEARCH
export COHERE_API_KEY=<your-key>
=======
export COHERE_API_KEY=<your-key> # Windows: setx COHERE_API_KEY <your-key>
>>>>>>> REPLACE
</source>

docs/llms.md
<source>markdown
<<<<<<< SEARCH
export AZURE_API_KEY=<your-key>
export AZURE_API_VERSION=2023-05-15
export AZURE_API_BASE=https://example-endpoint.openai.azure.com
=======
export AZURE_API_KEY=<your-key> # Windows: setx AZURE_API_KEY <your-key>
export AZURE_API_VERSION=2023-05-15 # Windows: setx AZURE_API_VERSION 2023-05-15
export AZURE_API_BASE=https://example-endpoint.openai.azure.com # Windows: setx AZURE_API_BASE https://example-endpoint.openai.azure.com
>>>>>>> REPLACE
</source>

docs/llms.md
<source>markdown
<<<<<<< SEARCH
export OPENROUTER_API_KEY=<your-key>
=======
export OPENROUTER_API_KEY=<your-key> # Windows: setx OPENROUTER_API_KEY <your-key>
>>>>>>> REPLACE
</source>

docs/llms.md
<source>markdown
<<<<<<< SEARCH
export OLLAMA_API_BASE=http://127.0.0.1:11434
=======
export OLLAMA_API_BASE=http://127.0.0.1:11434 # Windows: setx OLLAMA_API_BASE http://127.0.0.1:11434
>>>>>>> REPLACE
</source>

docs/llms.md
<source>markdown
<<<<<<< SEARCH
export OPENAI_API_KEY=<your-key>
export OPENAI_API_BASE=https://api.deepseek.com/v1
=======
export OPENAI_API_KEY=<your-key> # Windows: setx OPENAI_API_KEY <your-key>
export OPENAI_API_BASE=https://api.deepseek.com/v1 # Windows: setx OPENAI_API_BASE https://api.deepseek.com/v1
>>>>>>> REPLACE
</source>

docs/llms.md
<source>markdown
<<<<<<< SEARCH
export OPENAI_API_BASE=<your-endpoint-goes-here>

# If your endpoint needs a key
export OPENAI_API_KEY=<your-key>
=======
export OPENAI_API_BASE=<your-endpoint-goes-here> # Windows: setx OPENAI_API_BASE <your-endpoint-goes-here>

# If your endpoint needs a key
export OPENAI_API_KEY=<your-key> # Windows: setx OPENAI_API_KEY <your-key>
>>>>>>> REPLACE
</source>
2024-05-02 07:52:20 -07:00
Paul Gauthier
3b900a4c59 Prep for windows setx 2024-05-02 07:51:01 -07:00
Paul Gauthier
b8313c5343 added docstrings 2024-05-01 15:14:14 -07:00
Paul Gauthier
e8666d3984 fix wholefile prompt 2024-05-01 15:06:31 -07:00
Paul Gauthier
26d841ccc7 aider: Add --add-host flag to docker run command to allow container to connect to host machine on macOS using host.docker.internal.
# Aider chat conversation:

USER: when i run `curl http://127.0.0.1:11434` inside the container, it "Couldn't connect to server". i want it to connect to the server running on the host computer on that port. the host is a mac.

ASSISTANT: To allow the Docker container to connect to the host machine on macOS, you can use the special DNS name `host.docker.internal` which resolves to the internal IP address used by the host. This is a feature provided by Docker for Mac to facilitate such connections.

Here's the diff to update the `docker.sh` script to include the `--add-host` flag, which adds an entry to the container's `/etc/hosts` file:

```diff
--- benchmark/docker.sh
+++ benchmark/docker.sh
@@ ... @@
 docker run \
        -it --rm \
        -v `pwd`:/aider \
        -v `pwd`/tmp.benchmarks/.:/benchmarks \
        -e OPENAI_API_KEY=$OPENAI_API_KEY \
        -e HISTFILE=/aider/.bash_history \
        -e AIDER_DOCKER=1 \
        -e AIDER_BENCHMARK_DIR=/benchmarks \
+       --add-host=host.docker.internal:host-gateway \
        --net=host \
        -p 11434:11434 \
        aider-benchmark \
        bash
```

With this change, when you run `curl http://host.docker.internal:11434` inside the container, it should connect to the server running on the host computer on that port.
2024-05-01 13:54:30 -07:00
Paul Gauthier
71b675d0ef Add network host mode and change port mapping in docker run script. 2024-05-01 13:54:28 -07:00
Paul Gauthier
5e4ac44008 aider: Add port forwarding for the client inside the container to connect to the Ollama server on the host.
# Aider chat conversation:

USER: add a port fwd so a client inside the contain can connect to the ollama server running on the host

ASSISTANT: To forward a port so that a client inside the container can connect to the Ollama server running on the host, you need to add a `--publish` or `-p` option to the `docker run` command in the `benchmark/docker.sh` script. This option takes the format `host_port:container_port`.

Assuming the Ollama server is running on port 12345 on the host, and you want to use the same port inside the container, the diff would look like this:

```diff
--- benchmark/docker.sh
+++ benchmark/docker.sh
@@ ... @@
 docker run \
        -it --rm \
        -v `pwd`:/aider \
        -v `pwd`/tmp.benchmarks/.:/benchmarks \
        -e OPENAI_API_KEY=$OPENAI_API_KEY \
        -e HISTFILE=/aider/.bash_history \
        -e AIDER_DOCKER=1 \
        -e AIDER_BENCHMARK_DIR=/benchmarks \
+       -p 12345:12345 \
        aider-benchmark \
        bash
```

This change will forward port 12345 from the host to port 12345 in the container, allowing a client inside the container to connect to the Ollama server running on the host machine.
2024-05-01 13:46:45 -07:00
paul-gauthier
e922732f0a
Update HISTORY.md 2024-05-01 12:48:20 -07:00
Paul Gauthier
f4b1797998 put filename back outside fences 2024-05-01 11:59:23 -07:00
Paul Gauthier
5ed9e8cb6d Merge remote-tracking branch 'origin/main' 2024-05-01 11:08:42 -07:00
Paul Gauthier
2f589ee379 upgraded dependencies 2024-05-01 10:46:20 -07:00
Paul Gauthier
e76d1c0cfa accepts_multi_system_msgs -> reminder_as_sys_msg 2024-05-01 10:30:41 -07:00
Paul Gauthier
31b7ed3660 Merge branch 'main' into gemini-editblock-and-examples 2024-05-01 10:27:09 -07:00
Paul Gauthier
862c0dd0d7 stronger code base switch prompt 2024-05-01 09:40:47 -07:00
Paul Gauthier
1403d19aa7 Added example messages to wholefile edit format 2024-05-01 09:34:40 -07:00
Paul Gauthier
2c0dff52d3 asking for code language in whole edit format confuses some models 2024-05-01 09:17:29 -07:00
Paul Gauthier
484f7e44c0 Updated HISTORY 2024-05-01 09:17:07 -07:00
Paul Gauthier
0185e02a92 updated favicon paths 2024-05-01 09:14:53 -07:00
Paul Gauthier
0fb08896e3 Merge branch 'main' into gemini-editblock-and-examples 2024-05-01 09:02:08 -07:00
paul-gauthier
5ea1c5df0b
Merge pull request #581 from paul-gauthier/switch-model
New /model command to switch models, /models to search them
2024-05-01 07:11:16 -07:00
Paul Gauthier
7fd3b8aeee Tell the AI we are switching code bases 2024-04-30 20:51:24 -07:00
Paul Gauthier
d51cada163 make the examples part of the chat 2024-04-30 20:45:49 -07:00
Paul Gauthier
22d90d70c6 prompt copy 2024-04-30 20:24:53 -07:00
Paul Gauthier
256a9a454c move cloning into Coder.create, summarize chat history if edit format changes 2024-04-30 17:31:58 -07:00
Paul Gauthier
665b9044c8 added autocomplete for model names 2024-04-30 16:29:10 -07:00
Paul Gauthier
8e9a00006b carry conversation history to switched model 2024-04-30 16:25:47 -07:00
Paul Gauthier
304856fc60 roughed in model switch 2024-04-30 16:22:13 -07:00
Paul Gauthier
050d35790e added /models cmd 2024-04-30 16:02:38 -07:00
Paul Gauthier
e610e5bd0a Handle existing dirnames with [globby] chars, with test #195 2024-04-30 15:50:24 -07:00
Paul Gauthier
a3a4d87a0c treat litellm.exceptions.BadRequestError as a 400 error and do not retry 2024-04-30 15:40:28 -07:00
Paul Gauthier
3469e04eb8 Do exp backoff for litellm.exceptions.ServiceUnavailableError #580 2024-04-30 15:34:01 -07:00
Paul Gauthier
7b14d77e9e Don't retry on gemini RECITATION error 2024-04-30 14:40:15 -07:00