Полезности
May 4, 2023

Introducing... FixGPT!

Вчера параллельно со сценарием по ролику набросал целую утилиту для быстрого кодгена/рефакторинга и прочего.


Проблема

  • Очень часто появляются паттерны, когда нужно создать несколько файлов по определённому шаблону.
    • Например, в моей игре моб - это сразу ~6 файлов (1 на самого юнита, один на ИИ, и по одному на каждый скилл)
    • На работе (во фронтенде) код разбит по фичам. Каждая фича - это модель с логикой + компоненты, работающие с этой моделью
  • Также часто появляется необходимость глобально что-то изменить по всему проекту, но при этом эти изменения не всегда возможны
    • Например, ты изменил какую-то общую функцию, а она используется в 30 файлах
    • Или вот у тебя есть 100 перков, и у сущности Perk появилась ещё какая-то информация, которую надо добавить во все перки. При этом эту информацию можно вывести и из самого кода перков, но

Такие вещи руками делать невероятно впадлу.

И ChatGPT просто так это сделать тоже не попросишь, ведь это всего лишь чатик - у него нет доступа к файлам, он также не знает куда сходить и что поменять.

К счастью, я сделал инструмент, который решает эту проблему!


FixGPT

FixGPT - это консольная утилита, через которую можно создавать список задач на создание/изменение/удаление файлов. А для генерации кода она использует ChatGPT, засчёт чего может работать с любым языком (будь то C# или GDScript или JavaScript).

Также вы можете создавать и сохранять шаблоны задач с возможностью указывать дополнительные параметры по ходу выполнения этих задач.


Демонстрация работы

  • Генерация кода - link
  • Массовые изменения - link
  • Parameters - link

Как накатить

1. Установите Node.js - тык
2. Возьмите токен с OpenAI - тык
3. Запустите npx fixgpt init <token>
4. Используйте через npx fixgpt run или шаблоны (подробнее в документации)

Очень важно! Если вы не используете Git или другие системы контроля версий, обязательно сохраняйте бэкап проекта перед использованием FixGPT

LLM не являются на 100% надёжными, ввиду чего вам может сгенерировать нерабочий код (или вовсе удалить тот, что был)

Документация: https://github.com/Kelin2025/fixgpt


Почему не AutoGPT/BabyAGI?

Некоторые умельцы уже научили ChatGPT работать с файловой системой и создавать лупы, в которых она сама решает что делать.

Но они делают не то, что нужно, примерно всегда.

Причина 1

"AGI" солюшены используют LLM для создания инструкций, что нужно делать.

С FixGPT ты сам задаёшь, что нужно создавать, изменять или удалять (используя конкретный путь или glob pattern для массовых апдейтов).

ChatGPT только создаёт код, и не полагается на нестабильные ответы нейронок для действий.

Причина 2

"AGI" солюшены не позволяют взаимодействовать с ними во время процесса.

Шаблоны FixGPT позволяют запрашивать дополнительную информацию в процессе работы. Очень полезно, если вы хотите добавить в промпт какую-то инфу индивидуальную для каждого изменяемого файла.

Причина 3

Также шаблоны FixGPT хранятся в виде обычных Markdown-файлов.

Вы можете складывать шаблоны рутинных задач прямо в проект, чтобы ими могли пользоваться ваши коллеги.


Пользуйтесь!