AICodeBot 是一款基于终端的编码助手,旨在让您的编码生活更轻松。将其视为结对程序员的人工智能版本。执行代码审查、创建有用的提交消息、调试问题并帮助您思考构建新功能。加快开发速度并帮助您编写更好代码的团队成员。
我们计划构建多个不同的接口来与 AICodeBot 交互。首先,它是一个可以在终端中安装和运行的命令行工具,以及一个用于代码审查的 GitHub 操作。
状态:这个项目是在人工智能编码助手变得很酷之前构建的。 ?因此,许多功能已在各种 IDE 中复制。 AICodeBot 的亮点在于 a) 它位于终端中,而不是 GUI,b) 它可以在 GitHub actions 等流程中使用。
我们正在使用 AICodeBot 来构建 AICodeBot,并且它一直在呈螺旋式上升。️ 我们正在寻找贡献者来帮助我们构建它。有关更多信息,请参阅贡献。
任务 | 地位 |
---|---|
生成质量提交消息 | ✅ |
作为结对程序员思考任务 | ✅ |
使用少量文件进行编码 | ✅ |
调试 | ✅ |
进行代码审查 | ✅ |
解释代码 | ✅ |
编写测试 | ✅ |
与 GitHub 集成 | ✅ |
修改本地文件 | 早期阶段 |
在互联网上搜索答案 | 进行中 |
阅读图书馆文档 | 早期阶段 |
使用大量文件进行编码 | 随着 LM 获得更大的代币限制 |
编写高级开发人员级别的代码 | 最终 |
主要重构 | 最终 |
构建整个应用程序 | 最终 |
更换开发人员 | 没有 |
aicodebot sidekick
您的人工智能编码助手。它旨在通过提供上下文感知建议和解决方案来帮助您完成编码任务。认为 ChatGPT 能够读取本地存储库以获取上下文。
默认情况下,它将传递当前工作目录中的文件目录,您还可以传递文件列表以用作您正在处理的任务的上下文。例如:
aicodebot sidekick file1.py file2.py
在此示例中,sidekick 将读取 file1.py 和 file2.py 的内容,并使用它们来提供上下文感知的答案。
专业提示:
该功能目前还处于早期阶段,但已经很有用了。我们将添加对 sidekick 可以使用的工具的支持,包括 GitHub 集成、提取存储库特定领域知识、编写本地文件等等。目前,它只是读取文件并提供建议。
aicodebot commit
改进了 git 提交过程。它将运行预提交来检查语法,然后根据您所做的更改为您生成提交消息。只需在提交消息中输入“修复错误”即可,您将获得完整描述更改的高质量提交消息。
aicodebot review
将对您的代码进行代码审查并提出改进建议。默认情况下,它将查看[un]暂存的更改,您还可以提供特定的提交哈希来进行审查。它的目标是建议如何使代码变得更好,我们发现它经常教会我们有关代码的新知识,并使我们成为更好的程序员。这是让第二双机器人眼睛关注您的代码的好方法。
aicodebot debug $command
将运行 $command 并捕获日志输出。它将错误消息、堆栈跟踪、命令输出等传递给人工智能,并给出一些有关如何修复它的建议。
要安装 AICodeBot,请运行:
pip install aicodebot
然后,运行aicodebot configure
开始。
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
AICodeBot支持多种大型语言模型,包括Anthropic的Claude 3.x和OpenAI的GPT-3/4x。欢迎 Gemini 或 Ollama 的 Pull 请求,但我们认为这两个可以解决问题。
第一次运行 AICodeBot 时,系统会提示您输入 API 密钥
每次提交时自动进行代码审查怎么样?您可以让 AICodeBot 作为存储库上的 GitHub 操作运行。请参阅 AICodeBot GitHub 代码审查操作。它将查看每个提交和拉取请求,然后:
aicodebot debug $command
尝试一下pip install aicodebot
作为 Python 包安装aicodebot alignment
。 技术本身是不道德的;它只是灌输了创造它的人的价值观。我们相信人工智能应该以一种与人性相一致的方式构建,我们正在构建 AICodeBot 来帮助我们做到这一点。我们正在构建一个以心为中心的空间,并为人工智能与人类的健康交叉做出贡献。
aicodebot
是开发人员的工具,而不是他们的替代品。它不会取代您的工作,但会让您的工作变得更轻松、更有趣。它不会接管世界,但会帮助我们建设一个更美好的世界。有关更多信息,请参阅下面的对齐部分。
它也不是一个“5 分钟内为我构建一个网站”的工具,它需要一个精心构建的提示并为您构建一个脚手架。还有其他工具可以实现这一点。它不是一个无代码平台。相反,AICodeBot 旨在与现有代码库和 git 提交级别配合使用。它旨在提高有能力的工程师的效率。
要指定不同的模型,您可以在$HOME/.aicodebot.yaml
文件中设置language_model
。例如:
openai_api_key : sk-*****
language_model : gpt-3.5-turbo
personality : Stewie
version : 1.3
在 OpenAI 的 GPT-4 等人工智能模型中,“令牌”是一段文本,短如字符或长如单词。 API 调用中的总令牌(包括输入和输出)会影响成本、时间以及调用是否基于最大限制进行。
每个模型都有最大代币限制。例如,GPT-3.5 的代币限制为 4096 个代币,GPT-4 的代币限制为 8192 个代币。如果对话超出此限制,您必须减少文本直至适合。
当使用 AICodeBot 中的 Sidekick 命令(允许您传入上下文文件)等命令时,有效管理令牌非常重要。由于令牌限制,加载整个代码库是不可行的。相反,您应该只加载与您正在处理的任务相关的特定文件。这确保了人工智能模型可以有效地处理您的请求,并为您当前的任务提供最相关的建议。
您的任务需要更大的上下文窗口吗?您是否遇到了令牌限制并收到这样的消息?
The context is too large (21414) for any of the models supported by your API key. ?
您可以执行以下几项操作:
我们希望得到您的帮助!如果您有兴趣做出贡献,请按照以下步骤开始。有关更多详细信息,请参阅贡献。
假设您已添加当前工作目录中的更改。
docker build -t aicodebot .
docker run -v ~ /.aicodebot.yaml:/home/user/.aicodebot.yaml -v .:/app aicodebot commit -y