aicodebot


Nameaicodebot JSON
Version 0.22.1 PyPI version JSON
download
home_pagehttps://github.com/gorillamania/AICodeBot
SummaryAI-powered tool for developers, simplifying coding tasks and improving workflow efficiency.
upload_time2023-08-13 18:29:01
maintainer
docs_urlNone
authorNick Sullivan
requires_python>=3.9
license
keywords ai coding assistant pair-programming automation productivity workflow artificial intelligence
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # AI Code Bot πŸ€–

## Your AI-powered coding sidekick

AICodeBot is a coding assistant designed to make your coding life easier. Think of it as your AI version of a pair programmer. Perform code reviews, create helpful commit messages, debug problems, and help you think through building new features. A team member that accelerates the pace of development and helps you write better code.

We've planned to build out multiple different interfaces for interacting with AICodeBot. To start, it's a [command-line tool](https://pypi.org/project/aicodebot/) that you can install and run in your terminal, and a [GitHub Action for Code Reviews](https://github.com/marketplace/actions/aicodebot-code-review).

Status: This project is in its early stages, but it already improves the software development workflow, and has a healthy roadmap of features (below).

We're using AICodeBot to build AICodeBot, and it's upward spiraling all the time.️ We're looking for contributors to help us build it out. See [CONTRIBUTING](https://github.com/gorillamania/AICodeBot/blob/main/CONTRIBUTING.md) for more.

## Current features - how you can use it today

| Task | Status |
| --- | --- |
| Generating quality commit messages | βœ… |
| Thinking through tasks as a pair programmer | βœ… |
| Coding with a small number of files | βœ… |
| Debugging | βœ… |
| Doing code reviews | βœ… |
| Explaining code | βœ… |
| Writing tests | βœ… |
| Integration with GitHub | βœ… |
| Modifying local files | In Progress |
| Searching the internet for answers | In Progress |
| Reading library documentation | In Progress |
| Coding with a large number of files |  As LLMs improve |
| Writing senior developer level code | Eventually |
| Major refactors | Eventually |
| Build entire apps | Eventually |
| Replace Developers | Nope |

### AI Sidekick πŸ¦Έβ€β™‚οΈ

 `aicodebot sidekick` Your AI-powered coding assistant. It's designed to help you with your coding tasks by providing context-aware suggestions and solutions. Think ChatGPT with the ability to read the local repository for context.

 By default it will pass along a directory of files from the current working directory, and you can also pass in a list of files to use as context for the task you are working on. For example:

 ```bash
 aicodebot sidekick file1.py file2.py
 ```

In this example, the sidekick will read the contents of file1.py and file2.py and use them to provide context-aware answers.

Pro-tips:

* Add your README.md to the list of files to get context-aware answers.
* Paste in error messages from log files or stack traces and it will help you debug
* Brainstorm new features
* Have it write unit tests for you that cover all the cases

This feature is in its early phases right now, but it's already useful. We'll be adding support for tools that the sidekick can use, including GitHub integration, ingesting repository specific domain knowledge, writing local files, and more. For now, it just *reads* files and provides suggestions.

### AI-Assisted Git Commit πŸ“

`aicodebot commit` improves the git commit process. It will run pre-commit for you to check syntax, and then generate a commit message for you based on the changes you've made. In about as much effort as typing "fix bug" for the commit message, you will get a high-quality commit message that thoroughly describes the change.

### AI-Assisted Code Review πŸ‘€

`aicodebot review` will run a code review on your code and suggest improvements. By default, it will look at [un]staged changes, and you can also supply a specific commit hash to review.
Its goal is to suggest how to make the code better, and we've found that it often teaches us new things about our code and makes us better programmers. It is a great way to get a second set of robot eyes on your code.

### AI-Assisted Debugging 🐞

`aicodebot debug $command` will run the $command and capture the log output. It will pass the error message, stack trace, command output, etc. over to the AI and respond with some suggestions on how to fix it.

[![PyPI version](https://badge.fury.io/py/aicodebot.svg?0.6.2)](https://badge.fury.io/py/aicodebot)

## Installation and Usage

To install AICodeBot, run:

`pip install aicodebot`

And then, run `aicodebot configure` to get started.

```bash
Usage: aicodebot [OPTIONS] COMMAND [ARGS]...

Options:
  -V, --version  Show the version and exit.
  -h, --help     Show this message and exit.
  -d, --debug    Enable langchain debug output

Commands:
  alignment       A message from AICodeBot about AI Alignment ❀ + πŸ€–.
  commit          Generate a commit message based on your changes.
  configure       Create or update the configuration file
  debug           Run a command and debug the output.
  review          Do a code review, with [un]staged changes, or a...
  sidekick        Coding help from your AI sidekick
```

### Open AI key setup

The first time you run it, you'll be prompted to enter your OpenAI API Key, which is required, as we use OpenAI's large language models for the AI. You can get one for free by visiting your [API key settings page](https://platform.openai.com/account/api-keys).

Note: You will be billed by OpenAI based on how much you use it. Typical developers will use less than $10/month - which if you are a professional developer you'll likely more than make up for with saved time and higher quality work. See [OpenAI's pricing page](https://openai.com/pricing/) for more details. Also, see the note about increasing your token size and using better language models below.

## Integration with GitHub Actions

How about automated code reviews on every commit? You can have AICodeBot run as a GitHub action on your repository. See [The AICodeBot GitHub Action for Code Reviews](https://github.com/marketplace/actions/aicodebot-code-review). It will look at every commit and pull request, and then either:

* βœ… Pass
* πŸ—’οΈ Comments - pass the action, but leave a comment with minor issues, suggestions, or improvements.
* ❌ Fail the action - if a serious issue is found, it will leave a comment and let you know about something that should be addressed.

## Roadmap of Upcoming Features ️

### Code Workflow Improvements

* [X] **Assisted Git Commit**: Automatically generate a commit message based on the changes you've made
* [X] **Assisted Debugging**: Run a command with aicodebot and it captures the log message and tries to figure out what's going on from the error message.  Eventually, it could also suggest fixes for the error and make the changes for you. Try it out with `aicodebot debug $command`
* [X] **Code Review**: Provides feedback on potential issues in code,  and suggests improvements to make it better.
* [ ] **Dependency Management**: Updating dependencies to their latest versions with pull requests that run tests.
* [ ] **Documentation Generation**: Generates comprehensive documentation for code, including docstrings, README files, and wiki pages.
* [ ] **Performance Optimization Suggestions**: Suggests potential performance optimizations for code.
* [X] **Test Generation**: Generates unit tests for code, improve test coverage.
* [X] **Integration with CI/CD pipelines**: Integrates with CI/CD pipelines to automate tasks like code review, testing, and deployment (via GitHub Actions). Eventually: Fix the build automatically when there are small errors.
* [X] **Rubber Ducky Chat Bot**: Helps developers think through design issues by providing a conversational interface to discuss and solve problems, using data from the current repository.
* [X] **Linting/Formatting**: Checks code for linting errors and automatically fixes them where possible (via pre-commit)
* [ ] **Automatically Generate ChangeLogs and Release Notes**: Generates release notes and changelogs based on commit messages and code changes.

### User Interfaces

* [X] **Command-line, installable via pip**: aicodebot can be installed as a Python package using `pip install aicodebot`
* [ ] **Mention the @aicodebot GitHub user**: Mentioning the [@aicodebot](https://pypi.org/project/aicodebot/) GitHub user in a comment will trigger it to perform a task, review code, or pull in an appropriate GIF.
* [X] **Callable as a GitHub action**: Can be called as a GitHub action to perform tasks on GitHub repositories. [AICodeBot Action](https://github.com/marketplace/actions/aicodebot-code-review)
* [ ] **Jupyter Notebook Extension**: Provides a Jupyter Notebook extension that can be used to debug code in the notebook.
* [X] **Chat**: CLI chat interface that knows the context of your codebase and can answer questions about it. No more going back and forth between ChatGPT and command-line.
* [ ] **Slack Bot**: Interacts with aicodebot via slack, sends notifications, performs tasks, and provides real-time assistance to developers.
* [ ] **Bug Report service integrations**: Listen for bug reports from Sentry, [Honeybadger](http://honeybadger.io), and other bug reporting tools and automatically create issues, assign them to developers, and notify them via Slack. Eventually: FIX the bug automatically and notify the team.

### Repository / Project Management

* [ ] **Project best practices**: Suggest things like pre-commit, linting, license, CI/CD, etc. Eventually: Implement them for you.
* [ ] **Manage GitHub Issues**: Provides Level 1 triage of incoming issues on GitHub, including tagging, assigning, and responding with FAQs. It could also escalate issues to human developers when necessary, and provide nudges for tasks that need more input.
* [ ] **Welcome new contributors**: Automatically welcome new contributors to the project, find out what they're interested in, and suggest issues for them to work on.

### Fun

* [X] **Alignment**: Gives a heart-centered inspirational message about how we can build AI in a way that aligns with humanity. Try it out with `aicodebot alignment`.
* [ ] **Telling Jokes**: We've gotta figure out how to teach LLMs about humor. :)
* [ ] **Supportive Encouragement**: High fives and kudos for a job well done
* [ ] **GIF Reactions**: Reacts to messages with relevant and fun gifs.

<img src="https://camo.githubusercontent.com/6fc1e79b4aa226b24a756c4c8e20e5b049301a930449a7321d3e45f516e61601/68747470733a2f2f74656e6f722e636f6d2f766965772f6b746f2d6b6f756e6f746f72692d6b6f756e6f746f7269746f6b656e2d6c626f772d73746f726b686f6c646572732d6769662d32353637363438332e676966" width="25%">

## Alignment ❀️ + πŸ€–

Technology itself is amoral; it just imbues the values of the people who create it. We believe that AI should be built-in a way that aligns with humanity, and we're building AICodeBot to help us do just that. We're building from a heart-centered space, and contributing to the healthy intersection of AI and humanity.

### What it's NOT

`aicodebot` is a tool for developers, not a replacement for them. It's not going to replace your job, but it will make your job easier and more fun. It won't take over the world, but it will help us build a better one. See the *Alignment* section below for more.

⚠️ AICodeBot currently uses OpenAI's ChatGPT large language models, which can hallucinate and be confidently wrong. Sometimes AICodeBot does dumb things, so it's mostly *reading* and *advising* and not yet *writing*. Much like Tesla's "Full Self Driving", you must keep your hands on the wheel.

It's also not a "build a site for me in 5 minutes" tool that takes a well-constructed prompt and builds a scaffold for you. There are [other tools](https://github.com/AntonOsika/gpt-engineer) for that. It's not a no-code platform. Instead, AICodeBot is built to work with existing codebases and the git-commit level. It's designed to multiply the effectiveness of capable engineers.

## Configuring the language model to use

Not all OpenAI accounts have GPT-4 API access enabled. By default, AICodeBot will use GPT-4. If your OpenAI account supports it, we will check the first time you run it. If your OpenAI API does not support GPT-4, you can ask to be added to the waitlist [here](https://openai.com/waitlist/gpt-4-api). In our testing, GPT-4 is the best model and provides the best results.

To specify a different model, you can set the `language_model` in your `$HOME/.aicodebot.yaml` file. For example:

```yaml
openai_api_key: sk-*****
language_model: gpt-3.5-turbo
personality: Stewie
version: 1.2
```

You can also use openrouter.ai to get access to advanced models like GPT-4 32k and Anthropic's 100k model for larger context windows. See [openrouter.ai](https://openrouter.ai) for more details. Here's a sample config:

```yaml
openai_api_key: sk-*****
openrouter_api_key: sk-or-****
language_model_provider: OpenRouter
language_model: openai/gpt-4-32k # or anthropic/claude-2 for 100k token limit
personality: Stewie
version: 1.2
```

Note: We'll be adding more options for AI models in the future, including those that can be run locally, such as [GPT4all](https://gpt4all.io/) and HuggingFace's [Transformers](https://huggingface.co/transformers/).

### Understanding Tokens and Using Commands Efficiently

In AI models like OpenAI's GPT-4, a "token" is a piece of text, as short as a character or as long as a word. The total tokens in an API call, including input and output, affect the cost, time, and whether the call works based on the maximum limit.

Each model has a maximum token limit. For example, GPT-3.5 has a limit of 4096 tokens, and GPT-4 has a token limit of 8192 tokens. If a conversation exceeds this limit, you must reduce your text until it fits.

When using commands like the Sidekick command in AICodeBot, which allows you to pass in files for context, it's important to manage your tokens effectively. Due to token limits, it's not feasible to load your entire codebase. Instead, you should only load the specific files that are relevant to the task you're working on. This ensures that the AI model can process your request efficiently and provide the most relevant suggestions for your current task.

### How can I get a larger token limit?

Do you need a larger context window for your task? Are you running into token limits and getting a message like this?

```bash
The context is too large (21414) for any of the models supported by your API key. 😞
```

There are a couple of things you can do:

1. Load fewer files into the context (only what you need to work with)
2. Apply for GPT-4-32k access from OpenAI by contacting them.
3. Use openrouter.ai - this allows you to use the full power of GPT-4-32k, which offers a 4x larger context window. See [openrouter.ai](https://openrouter.ai) for more details. Once you sign up and set your `openrouter_api_key` in your `$HOME/.aicodebot.yaml` file, you can have access to larger models. Soon we will have support for Claude 2, which has a 100k token limit.

## Development / Contributing

We'd love your help! If you're interested in contributing, here's how to get started. See [CONTRIBUTING](https://github.com/gorillamania/AICodeBot/blob/main/CONTRIBUTING.md) for more details.

## Docker

Assumes you have changes in current working dir that are already added.

```
docker build -t aicodebot .
docker run -v ~/.aicodebot.yaml:/home/user/.aicodebot.yaml -v .:/app aicodebot commit -y
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/gorillamania/AICodeBot",
    "name": "aicodebot",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "",
    "keywords": "AI,coding,assistant,pair-programming,automation,productivity,workflow,artificial intelligence",
    "author": "Nick Sullivan",
    "author_email": "",
    "download_url": "https://files.pythonhosted.org/packages/a6/0e/44c1737a758723e9af1b54c2f5c097ee97a3aa1bd11537f844ec20952622/aicodebot-0.22.1.tar.gz",
    "platform": null,
    "description": "# AI Code Bot \ud83e\udd16\n\n## Your AI-powered coding sidekick\n\nAICodeBot is a coding assistant designed to make your coding life easier. Think of it as your AI version of a pair programmer. Perform code reviews, create helpful commit messages, debug problems, and help you think through building new features. A team member that accelerates the pace of development and helps you write better code.\n\nWe've planned to build out multiple different interfaces for interacting with AICodeBot. To start, it's a [command-line tool](https://pypi.org/project/aicodebot/) that you can install and run in your terminal, and a [GitHub Action for Code Reviews](https://github.com/marketplace/actions/aicodebot-code-review).\n\nStatus: This project is in its early stages, but it already improves the software development workflow, and has a healthy roadmap of features (below).\n\nWe're using AICodeBot to build AICodeBot, and it's upward spiraling all the time.\ufe0f We're looking for contributors to help us build it out. See [CONTRIBUTING](https://github.com/gorillamania/AICodeBot/blob/main/CONTRIBUTING.md) for more.\n\n## Current features - how you can use it today\n\n| Task | Status |\n| --- | --- |\n| Generating quality commit messages | \u2705 |\n| Thinking through tasks as a pair programmer | \u2705 |\n| Coding with a small number of files | \u2705 |\n| Debugging | \u2705 |\n| Doing code reviews | \u2705 |\n| Explaining code | \u2705 |\n| Writing tests | \u2705 |\n| Integration with GitHub | \u2705 |\n| Modifying local files | In Progress |\n| Searching the internet for answers | In Progress |\n| Reading library documentation | In Progress |\n| Coding with a large number of files |  As LLMs improve |\n| Writing senior developer level code | Eventually |\n| Major refactors | Eventually |\n| Build entire apps | Eventually |\n| Replace Developers | Nope |\n\n### AI Sidekick \ud83e\uddb8\u200d\u2642\ufe0f\n\n `aicodebot sidekick` Your AI-powered coding assistant. It's designed to help you with your coding tasks by providing context-aware suggestions and solutions. Think ChatGPT with the ability to read the local repository for context.\n\n By default it will pass along a directory of files from the current working directory, and you can also pass in a list of files to use as context for the task you are working on. For example:\n\n ```bash\n aicodebot sidekick file1.py file2.py\n ```\n\nIn this example, the sidekick will read the contents of file1.py and file2.py and use them to provide context-aware answers.\n\nPro-tips:\n\n* Add your README.md to the list of files to get context-aware answers.\n* Paste in error messages from log files or stack traces and it will help you debug\n* Brainstorm new features\n* Have it write unit tests for you that cover all the cases\n\nThis feature is in its early phases right now, but it's already useful. We'll be adding support for tools that the sidekick can use, including GitHub integration, ingesting repository specific domain knowledge, writing local files, and more. For now, it just *reads* files and provides suggestions.\n\n### AI-Assisted Git Commit \ud83d\udcdd\n\n`aicodebot commit` improves the git commit process. It will run pre-commit for you to check syntax, and then generate a commit message for you based on the changes you've made. In about as much effort as typing \"fix bug\" for the commit message, you will get a high-quality commit message that thoroughly describes the change.\n\n### AI-Assisted Code Review \ud83d\udc40\n\n`aicodebot review` will run a code review on your code and suggest improvements. By default, it will look at [un]staged changes, and you can also supply a specific commit hash to review.\nIts goal is to suggest how to make the code better, and we've found that it often teaches us new things about our code and makes us better programmers. It is a great way to get a second set of robot eyes on your code.\n\n### AI-Assisted Debugging \ud83d\udc1e\n\n`aicodebot debug $command` will run the $command and capture the log output. It will pass the error message, stack trace, command output, etc. over to the AI and respond with some suggestions on how to fix it.\n\n[![PyPI version](https://badge.fury.io/py/aicodebot.svg?0.6.2)](https://badge.fury.io/py/aicodebot)\n\n## Installation and Usage\n\nTo install AICodeBot, run:\n\n`pip install aicodebot`\n\nAnd then, run `aicodebot configure` to get started.\n\n```bash\nUsage: aicodebot [OPTIONS] COMMAND [ARGS]...\n\nOptions:\n  -V, --version  Show the version and exit.\n  -h, --help     Show this message and exit.\n  -d, --debug    Enable langchain debug output\n\nCommands:\n  alignment       A message from AICodeBot about AI Alignment \u2764 + \ud83e\udd16.\n  commit          Generate a commit message based on your changes.\n  configure       Create or update the configuration file\n  debug           Run a command and debug the output.\n  review          Do a code review, with [un]staged changes, or a...\n  sidekick        Coding help from your AI sidekick\n```\n\n### Open AI key setup\n\nThe first time you run it, you'll be prompted to enter your OpenAI API Key, which is required, as we use OpenAI's large language models for the AI. You can get one for free by visiting your [API key settings page](https://platform.openai.com/account/api-keys).\n\nNote: You will be billed by OpenAI based on how much you use it. Typical developers will use less than $10/month - which if you are a professional developer you'll likely more than make up for with saved time and higher quality work. See [OpenAI's pricing page](https://openai.com/pricing/) for more details. Also, see the note about increasing your token size and using better language models below.\n\n## Integration with GitHub Actions\n\nHow about automated code reviews on every commit? You can have AICodeBot run as a GitHub action on your repository. See [The AICodeBot GitHub Action for Code Reviews](https://github.com/marketplace/actions/aicodebot-code-review). It will look at every commit and pull request, and then either:\n\n* \u2705 Pass\n* \ud83d\uddd2\ufe0f Comments - pass the action, but leave a comment with minor issues, suggestions, or improvements.\n* \u274c Fail the action - if a serious issue is found, it will leave a comment and let you know about something that should be addressed.\n\n## Roadmap of Upcoming Features \ufe0f\n\n### Code Workflow Improvements\n\n* [X] **Assisted Git Commit**: Automatically generate a commit message based on the changes you've made\n* [X] **Assisted Debugging**: Run a command with aicodebot and it captures the log message and tries to figure out what's going on from the error message.  Eventually, it could also suggest fixes for the error and make the changes for you. Try it out with `aicodebot debug $command`\n* [X] **Code Review**: Provides feedback on potential issues in code,  and suggests improvements to make it better.\n* [ ] **Dependency Management**: Updating dependencies to their latest versions with pull requests that run tests.\n* [ ] **Documentation Generation**: Generates comprehensive documentation for code, including docstrings, README files, and wiki pages.\n* [ ] **Performance Optimization Suggestions**: Suggests potential performance optimizations for code.\n* [X] **Test Generation**: Generates unit tests for code, improve test coverage.\n* [X] **Integration with CI/CD pipelines**: Integrates with CI/CD pipelines to automate tasks like code review, testing, and deployment (via GitHub Actions). Eventually: Fix the build automatically when there are small errors.\n* [X] **Rubber Ducky Chat Bot**: Helps developers think through design issues by providing a conversational interface to discuss and solve problems, using data from the current repository.\n* [X] **Linting/Formatting**: Checks code for linting errors and automatically fixes them where possible (via pre-commit)\n* [ ] **Automatically Generate ChangeLogs and Release Notes**: Generates release notes and changelogs based on commit messages and code changes.\n\n### User Interfaces\n\n* [X] **Command-line, installable via pip**: aicodebot can be installed as a Python package using `pip install aicodebot`\n* [ ] **Mention the @aicodebot GitHub user**: Mentioning the [@aicodebot](https://pypi.org/project/aicodebot/) GitHub user in a comment will trigger it to perform a task, review code, or pull in an appropriate GIF.\n* [X] **Callable as a GitHub action**: Can be called as a GitHub action to perform tasks on GitHub repositories. [AICodeBot Action](https://github.com/marketplace/actions/aicodebot-code-review)\n* [ ] **Jupyter Notebook Extension**: Provides a Jupyter Notebook extension that can be used to debug code in the notebook.\n* [X] **Chat**: CLI chat interface that knows the context of your codebase and can answer questions about it. No more going back and forth between ChatGPT and command-line.\n* [ ] **Slack Bot**: Interacts with aicodebot via slack, sends notifications, performs tasks, and provides real-time assistance to developers.\n* [ ] **Bug Report service integrations**: Listen for bug reports from Sentry, [Honeybadger](http://honeybadger.io), and other bug reporting tools and automatically create issues, assign them to developers, and notify them via Slack. Eventually: FIX the bug automatically and notify the team.\n\n### Repository / Project Management\n\n* [ ] **Project best practices**: Suggest things like pre-commit, linting, license, CI/CD, etc. Eventually: Implement them for you.\n* [ ] **Manage GitHub Issues**: Provides Level 1 triage of incoming issues on GitHub, including tagging, assigning, and responding with FAQs. It could also escalate issues to human developers when necessary, and provide nudges for tasks that need more input.\n* [ ] **Welcome new contributors**: Automatically welcome new contributors to the project, find out what they're interested in, and suggest issues for them to work on.\n\n### Fun\n\n* [X] **Alignment**: Gives a heart-centered inspirational message about how we can build AI in a way that aligns with humanity. Try it out with `aicodebot alignment`.\n* [ ] **Telling Jokes**: We've gotta figure out how to teach LLMs about humor. :)\n* [ ] **Supportive Encouragement**: High fives and kudos for a job well done\n* [ ] **GIF Reactions**: Reacts to messages with relevant and fun gifs.\n\n<img src=\"https://camo.githubusercontent.com/6fc1e79b4aa226b24a756c4c8e20e5b049301a930449a7321d3e45f516e61601/68747470733a2f2f74656e6f722e636f6d2f766965772f6b746f2d6b6f756e6f746f72692d6b6f756e6f746f7269746f6b656e2d6c626f772d73746f726b686f6c646572732d6769662d32353637363438332e676966\" width=\"25%\">\n\n## Alignment \u2764\ufe0f + \ud83e\udd16\n\nTechnology itself is amoral; it just imbues the values of the people who create it. We believe that AI should be built-in a way that aligns with humanity, and we're building AICodeBot to help us do just that. We're building from a heart-centered space, and contributing to the healthy intersection of AI and humanity.\n\n### What it's NOT\n\n`aicodebot` is a tool for developers, not a replacement for them. It's not going to replace your job, but it will make your job easier and more fun. It won't take over the world, but it will help us build a better one. See the *Alignment* section below for more.\n\n\u26a0\ufe0f AICodeBot currently uses OpenAI's ChatGPT large language models, which can hallucinate and be confidently wrong. Sometimes AICodeBot does dumb things, so it's mostly *reading* and *advising* and not yet *writing*. Much like Tesla's \"Full Self Driving\", you must keep your hands on the wheel.\n\nIt's also not a \"build a site for me in 5 minutes\" tool that takes a well-constructed prompt and builds a scaffold for you. There are [other tools](https://github.com/AntonOsika/gpt-engineer) for that. It's not a no-code platform. Instead, AICodeBot is built to work with existing codebases and the git-commit level. It's designed to multiply the effectiveness of capable engineers.\n\n## Configuring the language model to use\n\nNot all OpenAI accounts have GPT-4 API access enabled. By default, AICodeBot will use GPT-4. If your OpenAI account supports it, we will check the first time you run it. If your OpenAI API does not support GPT-4, you can ask to be added to the waitlist [here](https://openai.com/waitlist/gpt-4-api). In our testing, GPT-4 is the best model and provides the best results.\n\nTo specify a different model, you can set the `language_model` in your `$HOME/.aicodebot.yaml` file. For example:\n\n```yaml\nopenai_api_key: sk-*****\nlanguage_model: gpt-3.5-turbo\npersonality: Stewie\nversion: 1.2\n```\n\nYou can also use openrouter.ai to get access to advanced models like GPT-4 32k and Anthropic's 100k model for larger context windows. See [openrouter.ai](https://openrouter.ai) for more details. Here's a sample config:\n\n```yaml\nopenai_api_key: sk-*****\nopenrouter_api_key: sk-or-****\nlanguage_model_provider: OpenRouter\nlanguage_model: openai/gpt-4-32k # or anthropic/claude-2 for 100k token limit\npersonality: Stewie\nversion: 1.2\n```\n\nNote: We'll be adding more options for AI models in the future, including those that can be run locally, such as [GPT4all](https://gpt4all.io/) and HuggingFace's [Transformers](https://huggingface.co/transformers/).\n\n### Understanding Tokens and Using Commands Efficiently\n\nIn AI models like OpenAI's GPT-4, a \"token\" is a piece of text, as short as a character or as long as a word. The total tokens in an API call, including input and output, affect the cost, time, and whether the call works based on the maximum limit.\n\nEach model has a maximum token limit. For example, GPT-3.5 has a limit of 4096 tokens, and GPT-4 has a token limit of 8192 tokens. If a conversation exceeds this limit, you must reduce your text until it fits.\n\nWhen using commands like the Sidekick command in AICodeBot, which allows you to pass in files for context, it's important to manage your tokens effectively. Due to token limits, it's not feasible to load your entire codebase. Instead, you should only load the specific files that are relevant to the task you're working on. This ensures that the AI model can process your request efficiently and provide the most relevant suggestions for your current task.\n\n### How can I get a larger token limit?\n\nDo you need a larger context window for your task? Are you running into token limits and getting a message like this?\n\n```bash\nThe context is too large (21414) for any of the models supported by your API key. \ud83d\ude1e\n```\n\nThere are a couple of things you can do:\n\n1. Load fewer files into the context (only what you need to work with)\n2. Apply for GPT-4-32k access from OpenAI by contacting them.\n3. Use openrouter.ai - this allows you to use the full power of GPT-4-32k, which offers a 4x larger context window. See [openrouter.ai](https://openrouter.ai) for more details. Once you sign up and set your `openrouter_api_key` in your `$HOME/.aicodebot.yaml` file, you can have access to larger models. Soon we will have support for Claude 2, which has a 100k token limit.\n\n## Development / Contributing\n\nWe'd love your help! If you're interested in contributing, here's how to get started. See [CONTRIBUTING](https://github.com/gorillamania/AICodeBot/blob/main/CONTRIBUTING.md) for more details.\n\n## Docker\n\nAssumes you have changes in current working dir that are already added.\n\n```\ndocker build -t aicodebot .\ndocker run -v ~/.aicodebot.yaml:/home/user/.aicodebot.yaml -v .:/app aicodebot commit -y\n```\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "AI-powered tool for developers, simplifying coding tasks and improving workflow efficiency.",
    "version": "0.22.1",
    "project_urls": {
        "Homepage": "https://github.com/gorillamania/AICodeBot"
    },
    "split_keywords": [
        "ai",
        "coding",
        "assistant",
        "pair-programming",
        "automation",
        "productivity",
        "workflow",
        "artificial intelligence"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "196ff64aedbe6a44ba053628ab356df86c6962ec6b3297eb087ca42c58e7912f",
                "md5": "db13e646974dabdb748cea241677aa6c",
                "sha256": "3fbd8a1c507c091c55bbd49db4250789e91ca23d3cc73c194552f0947f89facd"
            },
            "downloads": -1,
            "filename": "aicodebot-0.22.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "db13e646974dabdb748cea241677aa6c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 55512,
            "upload_time": "2023-08-13T18:28:59",
            "upload_time_iso_8601": "2023-08-13T18:28:59.461439Z",
            "url": "https://files.pythonhosted.org/packages/19/6f/f64aedbe6a44ba053628ab356df86c6962ec6b3297eb087ca42c58e7912f/aicodebot-0.22.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a60e44c1737a758723e9af1b54c2f5c097ee97a3aa1bd11537f844ec20952622",
                "md5": "d65a7ceb6462dcd56f44a0a9b12523de",
                "sha256": "5cb771121428e47dbd532dee752ebed9e763afea5e66f4cd02f3bf5b95fed1c1"
            },
            "downloads": -1,
            "filename": "aicodebot-0.22.1.tar.gz",
            "has_sig": false,
            "md5_digest": "d65a7ceb6462dcd56f44a0a9b12523de",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 54764,
            "upload_time": "2023-08-13T18:29:01",
            "upload_time_iso_8601": "2023-08-13T18:29:01.440733Z",
            "url": "https://files.pythonhosted.org/packages/a6/0e/44c1737a758723e9af1b54c2f5c097ee97a3aa1bd11537f844ec20952622/aicodebot-0.22.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-08-13 18:29:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "gorillamania",
    "github_project": "AICodeBot",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "aicodebot"
}
        
Elapsed time: 0.10171s