Привет, читатели 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 чтобы он нарисовал логотип.
Скрин диалога с ChatGPT
Комментарии (3)
shiryaevam
00.00.0000 00:00Интересно было бы узнать есть такое на ts?
denisxab Автор
00.00.0000 00:00Да, существуют инструменты для автоматической генерации документации TypeScript. Некоторые из них:
Typedoc: это самый популярный инструмент для генерации документации TypeScript. Он может работать со многими форматами документации, включая HTML, Markdown, JSON и другие. Typedoc поддерживает многие функции TypeScript, включая интерфейсы, классы, перечисления и другие.
Compodoc: это инструмент для генерации документации, который поддерживает TypeScript и Angular. Он может генерировать документацию в форматах HTML и Markdown и предоставляет подробные отчеты о структуре проекта.
DocFX: это инструмент для генерации документации, который поддерживает TypeScript и другие языки. Он может генерировать документацию в различных форматах, включая HTML, Markdown, PDF и другие. DocFX поддерживает многие функции TypeScript, включая интерфейсы, классы, перечисления и другие.
JSDoc: это инструмент для генерации документации JavaScript, который может также использоваться для генерации документации TypeScript. JSDoc поддерживает стандартный синтаксис комментариев TypeScript и может генерировать документацию в формате HTML.
TypeDoc Markdown Theme: это тема для Typedoc, которая позволяет генерировать документацию в формате Markdown. Она может быть полезна для разработчиков, которые предпочитают формат Markdown для документации.
Каждый из этих инструментов имеет свои преимущества и недостатки, и выбор зависит от ваших потребностей и предпочтений.
meloAngelo
Статья супер! Никогда не интересовался темой ИИ, но для такой рутины вообще вещь. Спасибо автору, прикольная реализация