Привет, читатели Habr! Сегодня я хочу поделиться с вами уникальными и полезными советами о том, как за считанные минуты создать качественный README для вашего Python-проекта и стильный логотип, используя возможности ChatGPT и Midjourney.
В эпоху ИИ, документирование проектов становится не только проще, но и значительно быстрее. Многие разработчики часто игнорируют создание документации, поскольку это занимает много времени. Однако с использованием ИИ это проблема больше не актуальна.
Основная цель состоит в том, чтобы ChatGPT мог разобраться в коде нашего проекта и без труда составить для него README. Однако стоит учесть ограничения: GPT-4 может запомнить до 25 000 слов в диалоге, а GPT-3 — до 3 000 слов. Если вы превысите эти лимиты, ChatGPT потеряет контекст. В связи с этим, просто скопировать 100 000 строк кода и попросить ИИ составить README не получится. Вместо этого мы научимся экономить количество слов и максимально эффективно использовать возможности ИИ.
Читайте далее, и вы узнаете самые лучшие практики и секреты создания README и логотипов с помощью ИИ!
Вот проект, который был на 80% написан с помощью ИИ https://github.com/denisxab/speakerpy
Часть 1 - Создаем автоматическую документацию проекта с помощью Sphinx
Оптимальным решением для экономии слов при работе с ChatGPT является использование docstring и аннотаций аргументов в классах и функциях.
Генерируем документацию проекта с помощью Sphinx
Установка
sphinx
pip install sphinx sphinx_rtd_theme;
Создание структуры документации
sphinx
mkdir docs cd docs #Инициализация проекта sphinx-quickstart
Заменить содержимое файла
./docs/source/conf.py
на следующее:import sys import pathlib BASE_DIR = pathlib.Path(__file__).parent.parent.parent.parent project = BASE_DIR.name # Добавляем проект с модулями в путь Python sys.path.insert(0, str(BASE_DIR / project)) extensions = [ "sphinx.ext.autodoc", ] templates_path = ["_templates"] exclude_patterns = [] language = "ru" html_theme = "sphinx_rtd_theme" html_static_path = ["_static"]
Добавить в файл
./docs/source/index.rst
модули, которые должны быть включены в документацию:.. toctree:: :maxdepth: 2 :caption: Contents: .. automodule:: ИмяМодуляИлиФайла :members: :undoc-members: :special-members: __init__ :inherited-members: :private-members:
Собираем
./docs/docs/build/html/index.html
make html
После того как получен файл
./docs/build/html/index.html
, мы можем преобразовать его в простой текст и отправить в ChatGPT.sudo apt install lynx
lynx -dump ./docs/docs/build/html/index.html > /docs/docs/build/html/index.txt
Часть 2 - Обращаемся к ChatGPT для написания README
Начните диалог с следующим промптом:
Запоминай весь текст который я тебе буду отправлять. Когда я напишу команду "Напиши README по тексту который ты запомнил" тебе нужно будет написать README.md в формате Markdwon по тексту который я тебе отправил ранее. Если я тебе не дал команду "Напиши README по тексту который ты запомнил", то ожидай новой части текста, а в текущий ответ напиши мне "...". Ты меня понял ?
После того как ChatGPT подтвердит понимание, отправляйте текст с помощью такой команды:
Запомни этот текст: [ТЕКСТ]
Когда вы отправили всю необходимую информацию, используйте эту команду для создания README:
Напиши README по тексту который ты запомни
Если у вас уже есть README, и вы хотите его оптимизировать на основе предоставленного текста:
Оптимизируй это README на основание текста который ты запоминал: [ТЕКСТ README]
Если вам нужно оптимизировать и дополнить существующую главу документации:
Оптимизируй и допиши эту главу на основание прошлого ответа. В текущий ответ напиши оптимизированную главу: [ТЕКСТ Главы]
Вы можете попросить написать новую главу, основываясь на вашем тексте:
На основание прошлых ответов, напиши главу "ПроЧтоНаписатьГлаву"
Команда для продолжения предыдущего ответа с места остановки:
Продолжи свой прошлый ответ, на том месте где ты остановился
Команда чтобы он придумал краткое описание для текста
На основание текста который ты запомнил, и на основание README, напиши About о программе. Можешь использовать смайлики GitHub. Обязательно не более 350 символов.
Команда чтобы он придумал промт для midjourney, с помощью которого мы создадим логотип проекта.
На основе текста который ты запомнил, и на основании своих ответов - придумай промт(на английском языке) для midjourney чтобы он нарисовал логотип.