Ques/Help/Req GPT-Migrate — ИИ-инструмент для миграции с одного языка или фреймворка на другой

XakeR

Member
Регистрация
13.05.2006
Сообщения
1 912
Реакции
0
Баллы
16
Местоположение
Ukraine
Миграция — это дорогая, трудоемкая и нетривиальная проблема. GPT-Migrate — это нейросетевой инструмент, который позволяет быстрее переписать весь код с одного языка программирования на другой. У GPT-Migrate уже 6000 звёзд на GitHub.


GitHub — 0xpayne/gpt-migrate: Easily migrate your codebase from one framework or language to another. github.com


GPT-Migrate не гарантирует полностью верный код после автоматического перевода на другой язык, однако он позволяет ускорить процесс миграции.

Как работает GPT-Migrate​


Для переноса кода из —sourcelang в —targetlang:

  1. GPT-Migrate создает среду Docker для —targetlang, которая автоматически оценивается GPT-Migrate.
  2. Он рекурсивно оценивает существующий код для определения зависимостей —sourcelang и выбирает соответствующие зависимости —targetlang.
  3. GPT-Migrate перестраивает новый —targetlang код из существующего кода, начиная с файла —sourceentry. Этот этап может начинаться с помощью опции —step migrate.
  4. Инструмент запускает среду Docker с новой кодовой базой, которая отображается на —targetport, и по мере необходимости итеративно выполняет отладку.
  5. ИИ разрабатывает модульные тесты с использованием фреймворка unittest в Python, и при необходимости опционально тестирует их на вашем существующем приложении, если оно запущено и отображается на —sourceport. Этот этап может начинаться с помощью опции —step test.
  6. Тестирует новый код на —targetport с использованием этих модульных тестов.
  7. Итеративно выполняет отладку кода для вас, используя контекст из журналов, сообщений об ошибках, соответствующих файлов и структуры каталогов. Если в какой-то момент миграция приостанавливается или пользователь завершает цикл отладки, ИИ выдаст указания к следующему этапу миграции.

Новая кодовая база будет находиться в —targetdir.


Как использовать GPT-Migrate​


Установите Docker и запустите его. Также вам понадобится ключ API для ChatGPT. Лучше всего использовать GPT-4, предпочтительно GPT-4-32k.

Установите ваш ключ API OpenAI и установите требования для python:

export OPENAIAPIKEY=<ваш ключ>

pip install -r requirements.txt

Запустите основной скрипт с выбранным языком, на который вы хотите выполнить миграцию:

python main.py —targetlang nodejs

Если вы хотите, чтобы GPT-Migrate проверял созданные им модульные тесты, убедитесь, что ваше существующее приложение работает и используйте флаг —sourceport.

Настройка GPT-Migrate​


Вы можете настроить поведение GPT-Migrate, передав следующие параметры в скрипт main.py:

  1. —model: Используемая модель GPT. По умолчанию используется «gpt-4-32k».
  2. —temperature: Настройка температуры для модели искусственного интеллекта. По умолчанию значение равно 0.
  3. —sourcedir: Директория исходного кода, который будет мигрирован. По умолчанию «../benchmarks/flask-nodejs/source».
  4. —sourcelang: Язык или фреймворк исходного кода для миграции. Значение по умолчанию отсутствует.
  5. —sourceentry: Имя файла точки входа для директории исходного кода. Например, это может быть файл app.py или main.py для Python. По умолчанию используется «app.py».
  6. —targetdir: Директория, в которой будет находиться мигрированный код. По умолчанию «../benchmarks/flask-nodejs/target».
  7. —targetlang: Язык или фреймворк, на который будет проводиться миграция. По умолчанию используется «nodejs».
  8. —operating_system: Операционная система для файла Dockerfile. Обычные варианты — ‘linux’ или ‘windows’. По умолчанию «linux».
  9. —testfiles: Список файлов, в которых содержатся функции, которые должны быть протестированы. Например, это может быть файл app.py или main.py для приложения на Python, где находятся ваши REST-конечные точки. Включите полный путь к файлу. По умолчанию используется «app.py».
  10. —sourceport: (Необязательно) Порт для тестирования файла модульных тестов по отношению к исходному приложению. Значение по умолчанию отсутствует. Если значение не указано, GPT-Migrate не будет пытаться тестировать модульные тесты на основе исходного приложения.
  11. —targetport: Порт для тестирования файла модульных тестов по отношению к мигрированному приложению. По умолчанию используется 8080.
  12. —guidelines: Стилистические или небольшие функциональные рекомендации, которые вы хотели бы соблюдать при миграции. Например, «используйте табы, а не пробелы». По умолчанию используется пустая строка.
  13. —step: Шаг для выполнения. Варианты: ‘setup’, ‘migrate’, ‘test’, ‘all’. По умолчанию используется ‘all’.

Например, для миграции кодовой базы на Python в Node.js вы можете выполнить следующую команду:

python main.py —sourcedir /path/to/my-python-app —sourceentry app.py —targetdir /path/to/my-nodejs-app —targetlang nodejs

Этот промпт найдёт код на Python в папке .-python-app, выполнит миграцию на Node.js и запишет полученный код в папку .-nodejs-app.

Заключение​


Миграция приложения с одного языка на другой — непростая задачка. Существует множество мемов о том, как нелюбимый PM или техлид предлагает переписать весь код проекта на модный язык программирования. Теперь, мы надеемся, эта задача станет менее абсурдной и более безболезненной.

Если вам уже удалось протестировать GPT-Migrate, напишите в комментариях, увенчались ли ваши попытки успехом. Нам будет интересно узнать, помог ли инструмент в решении ваших задач.
🙂
 
198 207Темы
635 179Сообщения
3 618 416Пользователи
artvladimir2004Новый пользователь
Верх