rdmgen
— это инструмент CLI Python для автоматического создания высококачественных файлов README.md
для репозиториев кода с использованием Amazon Bedrock и LangGraph .
В этом проекте используются библиотеки AWS Amazon Bedrock, LangGraph и LangChain для анализа структуры и содержимого репозитория кода и создания комплексного файла README.md. Сгенерированный файл README содержит обзор проекта, инструкции по установке, примеры использования и другие важные сведения на основе файлов в репозитории.
rdmgen
сделает всю тяжелую работу за вас. Обратите внимание: вам нужен python >= 3.9
. Вы можете проверить это с помощью python --version
. Если в вашей базовой среде нет необходимой версии, создайте виртуальную среду с необходимой версией и используйте «Вариант 1» для установки.
Вы можете установить пакет с помощью pip после клонирования репозитория.
pip install .
Makefile с некоторыми рецептами доступен для Linux/MacOS. Чтобы создать выделенный venv Python и установить rdmgen
в виртуальной среде, запустите:
make all
По умолчанию виртуальная среда называется .venv
и расположена в том же каталоге, что и репозиторий.
Теперь выполните следующую команду, чтобы активировать среду:
source .venv/bin/activate
Дополнительные рецепты make, такие как очистка и удаление venv, можно найти в выводе команды make help
.
Учетные данные AWS : перед запуском команд cli для создания файла README необходимы учетные данные AWS. Если вы запускаете это из среды AWS (например, экземпляра SageMaker Notebook), вы можете перейти к шагу 2, чтобы убедиться, что прикрепленной роли IAM предоставлены правильные разрешения.
Разрешения IAM . Пользователь или роль IAM должны иметь как минимум следующие разрешения для выбранной модели (замените ресурс * на идентификатор(ы) модели):
{
"Version" : " 2012-10-17 " ,
"Statement" : [
{
"Sid" : " VisualEditor " ,
"Effect" : " Allow " ,
"Action" : [
" bedrock:InvokeModel " ,
" bedrock:InvokeModelWithResponseStream "
],
"Resource" : " * "
}
]
}
Примечание. В проекте используется сонет Клода 3: anthropic.claude-3-sonnet-20240229-v1:0
из Amazon Bedrock. Пожалуйста, убедитесь, что у вас есть к нему доступ. Если вы хотите изменить идентификатор модели, обновите его в src/rdmgen/constants.py
и переустановите пакет.
Чтобы создать файл README.md для вашего репозитория, выполните команду cli:
rdmgen <REPO_PATH> --out <OUTPUT_FOLDER>
<REPO_PATH>
: может быть локальным клоном/каталогом или удаленным URL-адресом Git.<OUTPUT_FOLDER>
: путь для сохранения выходного файла README.md. Если не указано, файл сохраняется в том же каталоге исходного кода. Вы можете передать необязательный флаг --diagram
, чтобы создать блок-схему агента и просмотреть шаги, которые он выполнил.
Следующие два примера доступны в этом репозитории для тестирования:
rdmgen test_data/hello_world
rdmgen test_data/sensor_extraction --out ./output
Пример небольшого удаленного репозитория на GitHub:
rdmgen https://github.com/pypa/sampleproject --out output/sampleproject --diagram
Утилита rdmgen
в настоящее время работает для репозиториев малого и среднего размера. Примите во внимание следующие настраиваемые ограничения для больших репозиториев, которые определены в src/constants.py
:
read-timeout
Amazon Bedrock, который передается клиенту среды выполнения Bedrock в виде конфигурации, подробнее: https://repost.aws/knowledge-center/bedrock-large-model-read-timeoutsrecursion_limit
, который передается в конфигурацию при вызове графа. Более подробная информация: https://langchain-ai.github.io/langgraph/how-tos/recursion-limit/?h=recursion. Для разработки и расширений этот проект использует Poetry для управления зависимостями. Чтобы установить пакет и зависимости, установите поэтику и затем запустите:
poetry lock
poetry install
См. ВКЛАД для получения дополнительной информации.
Вклады приветствуются! Пожалуйста, откройте проблему или отправьте запрос на включение, если у вас есть какие-либо улучшения или исправления ошибок.
Эта библиотека лицензируется по лицензии MIT-0. См. файл ЛИЦЕНЗИИ.