AICodeBot — это помощник по программированию на базе терминала, призванный облегчить вашу жизнь программисту. Думайте об этом как о своей ИИ-версии парного программиста. Выполняйте проверки кода, создавайте полезные сообщения о фиксации, устраняйте проблемы и помогайте вам продумывать создание новых функций. Член команды, который ускоряет темпы разработки и помогает писать более качественный код.
Мы планировали создать несколько различных интерфейсов для взаимодействия с AICodeBot. Для начала это инструмент командной строки, который вы можете установить и запустить в своем терминале, а также действие GitHub для проверки кода.
Статус: Этот проект был создан до того, как помощники по кодированию с использованием искусственного интеллекта стали крутыми. ? Таким образом, большая часть функциональности была воспроизведена в различных IDE. Отличительной особенностью AICodeBot является то, что а) он находится в терминале, а не в графическом интерфейсе, и б) его можно использовать в таких процессах, как действия GitHub.
Мы используем AICodeBot для создания AICodeBot, и его развитие постоянно растет. Мы ищем участников, которые помогут нам его создать. Подробнее см. ВКЛАД.
Задача | Статус |
---|---|
Генерация качественных сообщений о коммитах | ✅ |
Продумывание задач парным программистом | ✅ |
Кодирование с небольшим количеством файлов | ✅ |
Отладка | ✅ |
Делаем обзоры кода | ✅ |
Объяснение кода | ✅ |
Написание тестов | ✅ |
Интеграция с GitHub | ✅ |
Изменение локальных файлов | Ранние стадии |
Ищем ответы в Интернете | В ходе выполнения |
Чтение документации библиотеки | Ранние стадии |
Кодирование с большим количеством файлов | Поскольку LM получают большие лимиты токенов |
Написание кода уровня старшего разработчика | В конце концов |
Основные рефакторинги | В конце концов |
Создавайте целые приложения | В конце концов |
Заменить разработчиков | Неа |
aicodebot sidekick
Ваш помощник по программированию на базе искусственного интеллекта. Он создан, чтобы помочь вам в решении задач по кодированию, предоставляя контекстно-зависимые предложения и решения. Подумайте о ChatGPT с возможностью чтения контекста из локального репозитория.
По умолчанию он передает каталог файлов из текущего рабочего каталога, и вы также можете передать список файлов, которые будут использоваться в качестве контекста для задачи, над которой вы работаете. Например:
aicodebot sidekick file1.py file2.py
В этом примере помощник прочитает содержимое файлов file1.py и file2.py и будет использовать его для предоставления контекстно-зависимых ответов.
Советы:
Эта функция сейчас находится на ранней стадии разработки, но она уже полезна. Мы добавим поддержку инструментов, которые сможет использовать помощник, включая интеграцию с GitHub, получение знаний о конкретной области репозитория, запись локальных файлов и многое другое. На данный момент он просто читает файлы и выдает предложения.
aicodebot commit
улучшает процесс фиксации git. Он запустит предварительную фиксацию для проверки синтаксиса, а затем сгенерирует для вас сообщение о фиксации на основе внесенных вами изменений. Приложив примерно столько же усилий, сколько набрав «исправить ошибку» в сообщении о фиксации, вы получите высококачественное сообщение о фиксации, подробно описывающее изменение.
aicodebot review
проведет проверку вашего кода и предложит улучшения. По умолчанию он будет просматривать [не]проиндексированные изменения, и вы также можете предоставить для просмотра конкретный хеш коммита. Его цель — предложить, как улучшить код, и мы обнаружили, что он часто учит нас чему-то новому о нашем коде и делает нас лучшими программистами. Это отличный способ привлечь внимание второй пары роботов к вашему коду.
aicodebot debug $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 поддерживает несколько моделей больших языков, включая Claude 3.x от Anthropic и GPT-3/4x от OpenAI. Запросы на включение Gemini или Ollama приветствуются, но мы считаем, что эти двое справятся со своей задачей.
При первом запуске AICodeBot вам будет предложено ввести ключи API.
Как насчет автоматических проверок кода при каждом коммите? Вы можете запустить AICodeBot как действие GitHub в своем репозитории. См. действие AICodeBot GitHub для проверки кода. Он будет проверять каждый запрос на фиксацию и извлечение, а затем либо:
aicodebot debug $command
pip install aicodebot
aicodebot alignment
. Технология сама по себе аморальна; он просто пропитывает ценности людей, которые его создают. Мы считаем, что искусственный интеллект должен быть создан таким образом, чтобы он соответствовал потребностям человечества, и мы создаем AICodeBot, который поможет нам в этом. Мы строим, руководствуясь сердцем, и способствуем здоровому взаимодействию искусственного интеллекта и человечества.
aicodebot
— это инструмент для разработчиков, а не их замена. Это не заменит вашу работу, но сделает ее проще и веселее. Он не захватит мир, но поможет нам построить его лучше. Дополнительную информацию см. в разделе «Выравнивание» ниже.
Это также не инструмент «создайте для меня сайт за 5 минут», который принимает хорошо продуманную подсказку и строит за вас основу. Для этого есть другие инструменты. Это не платформа без кода. Вместо этого AICodeBot создан для работы с существующими базами кода и уровнем git-commit. Он создан для увеличения эффективности талантливых инженеров.
Чтобы указать другую модель, вы можете установить language_model
в файле $HOME/.aicodebot.yaml
. Например:
openai_api_key : sk-*****
language_model : gpt-3.5-turbo
personality : Stewie
version : 1.3
В моделях искусственного интеллекта, таких как GPT-4 от OpenAI, «токен» представляет собой фрагмент текста, короткий, как символ, или длинный, как слово. Общее количество токенов в вызове API, включая входные и выходные, влияет на стоимость, время и на то, работает ли вызов в зависимости от максимального предела.
Каждая модель имеет максимальный лимит токенов. Например, GPT-3.5 имеет ограничение в 4096 токенов, а GPT-4 имеет ограничение в 8192 токена. Если разговор превышает этот предел, вы должны уменьшить текст до тех пор, пока он не поместится.
При использовании таких команд, как команда Sidekick в AICodeBot, которая позволяет передавать файлы для контекста, важно эффективно управлять своими токенами. Из-за ограничений на токены невозможно загрузить всю базу кода. Вместо этого вам следует загружать только те файлы, которые имеют отношение к задаче, над которой вы работаете. Это гарантирует, что модель искусственного интеллекта сможет эффективно обработать ваш запрос и предоставить наиболее подходящие предложения для вашей текущей задачи.
Вам нужно большее контекстное окно для вашей задачи? Вы исчерпали лимиты токенов и получаете такое сообщение?
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