git clone https://github.com/LOGIC-10/RepoAgent.git
cd RepoAgentНастройка с PDM
Инициализировать виртуальную среду Python. Обязательно запустите CMD ниже CMD в /RepoAgent каталоге:
pdm venv create --name repoagentАктивировать виртуальную среду
Установите зависимости с помощью PDM
pdm installПеред настройкой конкретных параметров для репоагента, пожалуйста, убедитесь, что API OpenAI настроен в качестве переменной среды в командной строке:
export OPENAI_API_KEY=YOUR_API_KEY # on Linux/Mac
set OPENAI_API_KEY=YOUR_API_KEY # on Windows
$Env :OPENAI_API_KEY = " YOUR_API_KEY " # on Windows (PowerShell) Введите корневой каталог репоагента и попробуйте следующую команду в терминале:
repoagent run # this command will generate doc, or update docs(pre-commit-hook will automatically call this)
repoagent run --print-hierarchy # Print how repo-agent parse the target repoКоманда Run поддерживает следующие необязательные флаги (если установлено, будет переоценить по умолчанию конфигурации):
-m , --model текст: указывает модель для использования для завершения. По умолчанию: gpt-3.5-turbo-t , --temperature плавание: устанавливает температуру генерации для модели. Более низкие значения делают модель более детерминированной. По умолчанию: 0.2-r , --request-timeout Integer: определяет тайм-аут за считанные секунды для запроса API. По умолчанию: 60-b , --base-url Текст: базовый URL для вызовов API. По умолчанию: https://api.openai.com/v1-tp , --target-repo-path Path: путь файловой системы в целевой репозиторий. Используется в качестве корня для генерации документации. По умолчанию: path/to/your/target/repository-hp , --hierarchy-path текст: имя или путь для файла иерархии проекта, используемый для организации структуры документации. По умолчанию: .project_doc_record-mdp , --markdown-docs-path Текст: Путь папки, где документация Markdown будет сохранена или сгенерирована. По умолчанию: markdown_docs-i , --ignore-list : список файлов или каталогов, которые следует игнорировать во время генерации документов, разделенных запятыми.-l , --language текст: ISO 639 Код или имя языка для документации. По умолчанию: Chinese-ll , --log-level [Debug | Info | Warning | Ошибка | Критическая]: Устанавливает уровень журнала для приложения. По умолчанию: INFOВы также можете попробовать следующую функцию
repoagent clean # Remove repoagent-related cache
repoagent diff # Check what docs will be updated/generated based on current code changeЕсли вы впервые создаете документацию для целевого репозитория, репоагент автоматически создаст файл JSON, поддерживающий информацию о глобальной структуре, и папку с именем markdown_docs в корневом каталоге целевого хранилища для хранения документов.
После того, как вы изначально сгенерировали глобальную документацию для целевого репозитория, или если клонированный вами проект уже содержит информацию о глобальной документации, вы можете беспрепятственно и автоматически поддерживать внутреннюю документацию проекта с вашей командой, настраивая крюк перед коммит-крючком в целевом хранилище!
pre-commitРепоагент в настоящее время поддерживает генерацию документации для проектов, которая требует некоторой конфигурации в целевом репозитории.
Во -первых, убедитесь, что целевой репозиторий является хранилищем GIT и инициализирован.
git initУстановите предварительную компанию в целевой репозитории, чтобы обнаружить изменения в репозитории 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
# You can specify the file types that trigger the hook, but currently only python is supported.
types : [python]Для конкретных методов конфигурации крючков, пожалуйста, обратитесь к предварительному Commit. После настройки файла YAML выполните следующую команду для установки крючка.
pre-commit installТаким образом, каждый коммит GIT запустит крюк репоагента, автоматически обнаруживает изменения в целевом репозитории и генерирует соответствующие документы. Затем вы можете внести некоторые изменения в целевой репозиторий, такие как добавление нового файла в целевой репозиторий или изменение существующего файла. Вам просто нужно следовать обычным рабочим процессам GIT: git add, git commit -m «Ваше сообщение о коммите», git push the Repoagent Hook будет автоматически запустить в GIT Commit, обнаружит файлы, которые вы добавили на предыдущем шаге, и генерируют соответствующие документы.
После выполнения репоагент автоматически изменяет поэтапные файлы в целевом хранилище и формально отправит коммит. После завершения выполнения будет отображаться зеленый «пройден», как показано на рисунке ниже:
Сгенерированный документ будет храниться в указанной папке в корневом каталоге целевого склада. Рендеринг сгенерированного документа, как показано ниже:
Мы использовали модель по умолчанию GPT-3.5-Turbo для создания документации для проекта Xagent , которая состоит из примерно 270 000 строк кода. Вы можете просмотреть результаты этого поколения в каталоге Markdown_DOCS проекта Xagent на GitHub. Для повышенного качества документации мы предлагаем рассмотреть более продвинутые модели, такие как GPT-4-1106 или GPT-4-0125-Preview .
В конце концов, вы можете гибко настроить выходной формат, шаблон и другие аспекты документа, настраивая подсказку. Мы рады вашему исследованию более научного подхода к автоматизированному техническому письму и ваш вклад в сообщество.
Мы концептуализируем чат с репо как унифицированным шлюзом для этих нижестоящих приложений, выступая в качестве соединителя, который связывает репоагментированные с человеческими пользователями и другими агентами искусственного интеллекта. Наше будущее исследование будет сосредоточено на адаптации интерфейса к различным приложениям по течению и настройке его для удовлетворения их уникальных характеристик и требований к реализации.
Здесь мы демонстрируем предварительный прототип одной из наших последующих задач: автоматические вопросы и ответы для проблем и объяснения кода. Вы можете запустить сервер, запустив следующий код.
pip install repoagent[chat-with-repo]
repoagent chat-with-repoВот избранные случаи, которые приняли репоагент.
@misc { luo2024repoagent ,
title = { RepoAgent: An LLM-Powered Open-Source Framework for Repository-level Code Documentation Generation } ,
author = { Qinyu Luo and Yining Ye and Shihao Liang and Zhong Zhang and Yujia Qin and Yaxi Lu and Yesai Wu and Xin Cong and Yankai Lin and Yingli Zhang and Xiaoyin Che and Zhiyuan Liu and Maosong Sun } ,
year = { 2024 } ,
eprint = { 2402.16667 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.CL }
}