Skip to content

tired-racoon/CodDocAgent

Repository files navigation

RepoAgent logo CodDocAgent - AI-агент для генерации кодовой документации.

RepoAgent

Создано на основе RepoAgent

Список доступных моделей

  1. lite4 (YandexGPT Lite-4)
  2. pro4 (YandexGPT Pro-4)
  3. lite5 (YandexGPT Lite-5)
  4. pro5 (YandexGPT Pro-5)
  5. llama8b
  6. llama70b
  7. gigachat (GigaChat-Lite)

Пакетный тариф (подходит для больших репозиториев)

  1. qwen2.5i-7b (qwen2.5-7b-instruct)
  2. qwen2.5i-72b (qwen2.5-72b-instruct)
  3. deepseek-r1-qwen32b (deepseek-r1-distill-qwen-32b)
  4. gemma12b (gemma-3-12b-it)
  5. gemma27b (gemma-3-27b-it)
  6. qwen3-8b
  7. qwen3-14b
  8. qwen3-32b

Ключевые особенности

В настоящее время агент поддерживает 4 языка:

  • python
  • java
  • kotlin
  • go

Пример сгенерированной документации можно найти в markdown_docs

👾 Краткое описание

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

Раньше создание документации требовало больших усилий, особенно для небольших команд. Однако с появлением LLM (языковых моделей) процесс автоматизировался: ИИ теперь генерирует документацию, а разработчики лишь проверяют и корректируют её, что экономит время и ресурсы.

✨ Функции

  • 🤖 Автоматически обнаруживает изменения в репозиториях Git, отслеживая добавления, удаления и модификации файлов.
  • 📝 Самостоятельно анализирует структуру кода с помощью AST, генерируя документы для отдельных объектов.
  • 🔍 Точная идентификация связей двунаправленного вызова между объектами, расширяющая глобальную перспективу содержимого документа.
  • 📚 Легко заменяет содержимое Markdown на основе изменений, сохраняя согласованность документации.
  • 👭 Предлагает надежный автоматизированный метод обновления документации для совместной работы в команде.

🚀 Начало работы

Способ установки

Для разработчиков

  • Установка PDM: Если еще не установлен, install PDM.

    • Клонирование репозитория
    git clone https://github.com/tired-racoon/CodDocAgent.git
    cd CodDocAgent
  • Настройка окружения PDM

    • Инициализируйте виртуальную среду Python. Запустите приведенную ниже команду в /CodDocAgent директории:

      pdm venv create --name repoagent
    • Активируйте окружение

    • Установка зависимостей

       pdm install

Параметры

Необходимо указать все нужные токены доступа в config.yaml

Запуск

В директории CodDocAgent надо выполнить следующие команды:

pdm run repoagent run # базовая команда
pdm run repoagent run --print-hierarchy # чтобы увидеть, как агент парсит структуру репозитория

Агент поддерживает такие флаги:

  • -m, --model TEXT: Указывает модель, которая будет использоваться для завершения.
  • -t, --temperature FLOAT: Задает температуру генерации для модели. Более низкие значения делают модель более детерминированной. Default: 0.2
  • -r, --request-timeout INTEGER: Определяет время ожидания в секундах для запроса API. По умолчанию: 60
  • -b, --base-url TEXT: Базовый URL-адрес для вызовов API.
  • -tp, --target-repo-path PATH: Путь файловой системы к целевому репозиторию. Используется в качестве корневого каталога для создания документации. По умолчанию: path/to/your/target/repository
  • -hp, --hierarchy-path TEXT: Имя или путь к файлу иерархии проекта, используемому для организации структуры документации. По умолчанию: .project_doc_record
  • -mdp, --markdown-docs-path TEXT: Путь к папке, в которой будет храниться или генерироваться документация Markdown. По умолчанию: markdown_docs
  • -i, --ignore-list TEXT: Список файлов или каталогов, которые следует игнорировать при создании документации, разделенный запятыми.
  • -l, --language TEXT: Код ISO 639 или название языка для документации. По умолчанию: Russian
  • -ll, --log-level [DEBUG|INFO|WARNING|ERROR|CRITICAL]: Устанавливает уровень ведения журнала для приложения. По умолчанию: INFO

Вы также можете воспользоваться следующей функцией

pdm run repoagent clean # Удаление кэша
pdm run repoagent diff # Посмотреть, какие файлы агент удалил или изменил

Если вы впервые создаете документацию для целевого репозитория, CodDocAgent автоматически создаст файл JSON, содержащий информацию о глобальной структуре, и папку с именем Markdown_Docs в корневом каталоге целевого репозитория для хранения документов.

После того, как вы изначально сгенерировали глобальную документацию для целевого репозитория, или если проект, который вы клонировали, уже содержит информацию о глобальной документации, вы можете легко и автоматически поддерживать внутреннюю документацию проекта со своей командой, настроив pre-commit hook в целевом репозитории!

Использование pre-commit-hook (бета-версия)

В настоящее время CodDocAgent поддерживает создание документации для проектов, что требует некоторой настройки в целевом репозитории.

Во-первых, убедитесь, что целевой репозиторий является репозиторием git и был инициализирован.

git init

Установите pre-commit в целевом репозитории, чтобы обнаружить изменения в репозитории git.

pip install pre-commit

Создайте .pre-commit-config.yaml в корневом каталоге целевого репозитория. Пример следующий:

repos:
  - repo: local
    hooks:
    - id: repo-agent
      name: RepoAgent
      entry: repoagent
      language: system
      pass_filenames: false # prevent from passing filenames to the hook
      types: [python]

Для получения информации о конкретных методах настройки крючков, пожалуйста, посмотрите pre-commit. После настройки файла yaml выполните следующую команду для установки перехватчика.

pre-commit install

Таким образом, каждый git-коммит запускает функцию агента репозитория, автоматически обнаруживающую изменения в целевом репозитории и генерирующую соответствующие документы. Далее вы можете внести некоторые изменения в целевой репозиторий, например, добавить новый файл в целевой репозиторий или изменить существующий файл. Вам просто нужно следовать обычному рабочему процессу git: git add, git commit -m "your commit message", git push CodDocAgent автоматически запустится при фиксации git, обнаружит файлы, которые вы добавили на предыдущем шаге, и сгенерирует соответствующие документы.

После выполнения CodDocAgent автоматически изменит промежуточные файлы в целевом репозитории и официально отправит фиксацию. После завершения выполнения будет выведен зеленый индикатор об успешном прохождении.

Сгенерированный документ будет сохранен в указанной папке в корневом каталоге целевого хранилища.

About

A LLM-powered Agent for code documentation generation.

Resources

License

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages