sandzhaj.space

Меню
  • главная
  • cтатьи
  • книги
  • про автора
Меню

Личный джун на базе chatgpt

Опубликовано в 17.01.2023 от sandzhaj

Про сhatgpt уже слышно из-под каждого утюга, поэтому я решил проверить, на что сегодня способны нейросети в контексте написания кода.

Как попробовать самостоятельно

https://chat.openai.com
Chatgpt сегодня доступен бесплатно, пока происходит «research preview». Потом, вероятно, они перейдут на платную модель использования, как и другие сетки openai.com.

Для регистрации понадобится VPN, а так же подтверждение номера своего телефона, который должен соответствовать стране, под которой вы проходите регистрацию. Я регистрировался под английским ip. Для решения проблемы с смс воспользовался сервисом https://sms-activate.org/

Тестируемый кейс

Необходимо написать функцию на python, которая возьмет две переменные:
— X: список, содержащий числа (например [1, 2, 3, 4] )
— Y: число (например 2)

В результате мы хотим получить новый список, состоящий из Y списков, в котором числа из X распределятся по спискам таким образом, чтобы сумма внутри каждого списка стремилась быть одинаковой к другим.
Пример результата: [[1, 4], [2, 3]].

Другой пример: X=[1, 4, 6, 3, 8, 4, 13, 10], Y=3. Желаемый результат, например [[1, 3, 4, 8], [4, 13], [6, 10]]

Ради интереса можете попробовать решить этот кейс самостоятельно, кидайте в комменты 🙂

Первая проба

Создаем новый чат, пытаемся описать скрипт и проверяем первые результаты:

Результат:

Я дополнил результат выводом суммы для каждой группы чтобы визуально было сразу понятен результат распределения. Как видим, результат не идеальный. Говорим об этом:

В итоге, с третьей попытки он выдал почти рабочее решение:

С простым примером оно справилось на отлично. Генерация такого скрипта заняла у меня пять минут.
Однако, с примером X=[1, 4, 6, 3, 8, 4, 13, 10], Y=3 результат будет следующий:

Хотя, если распределить эти числа руками, можно было бы добиться лучшего результата:

[[1, 3, 4, 8], [4, 13], [6, 10]]
16
17
16

Попытки договориться

Далее начался долгий путь к улучшению кода. Объяснял в чате желаемый результат, но сетка начала возвращать часто сломанные варианты: то списки пустые, то распределение становилось хуже, то кол-во групп становилось всегда 2. Промучив сетку часа полтора, я решил просто создать новый чат. В нем мне удалось достигнуть своей цели, но тоже не быстро, а с седьмой попытки. Вот список моих запросов, который привел к рабочему результату:

  1. make script that will take in two elements: X and Y, where X is a list that can only consist of numbers, and Y is a number. It will then sort the X list in descending order and reallocate the numbers among Y number of lists, such that the sum of numbers inside each new list is as close as possible to each other.
  2. rewrite code to make sum of each sublists closer to each other
  3. I got IndexError: list index out of range
  4. still big difference between sum sublists reallocate better
  5. difference between the sum of the sublists is not zero is still big. For example if number 4 move to group [2,5,8], result would be better. Make reallocation smarter
  6. I got an empty sublists [[], [], []]
  7. Returned sublists are still empty [[], [], []]

Конечная версия ответа после 7 запроса:

Проверяем на сложном примере:

Идеально

Выводы

В сумме на написание этого кода нейросетью я потратил часа три. Но несмотря на частые ошибки, удивительно, как достаточно сложные вещи описанные словами могут воплотиться в жизнь. Когда-то я решал такую задачку вручную, но это заняло дня два. Использование нейросетей может очень помочь хотя бы тогда, когда не знаешь даже с какого «края» приступить к реализации. А решения задач попроще и вовсе можно делегировать — генерация сниппетов и отдельных функций для скрипта существенно ускоряет его разработку. Это как твой личный «джун», разгребающий рутину для улучшения твоей эффективности. Пользуйтесь, пока бесплатно 🙂

P.S. Пикча в шапке сгенерирована при помощи midjourney + DALL-E 2

  • python
  • автоматизация
  • нейросеть
  • Поиск

    Подпишись

    Теги

    bash git helm python zsh автоматизация нейросеть ооп терминал трекинг

    ©2025 sandzhaj.space