git clone https://github.com/LOGIC-10/RepoAgent.git
cd RepoAgentConfiguração com PDM
Inicialize o ambiente virtual do Python. Certifique -se de executar o diretório CMD abaixo em /RepoAgent :
pdm venv create --name repoagentAtive o ambiente virtual
Instale dependências usando PDM
pdm installAntes de configurar parâmetros específicos para repoagonte, verifique se a API do OpenAI está configurada como uma variável de ambiente na linha de comando:
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) Digite o diretório raiz da repoagonte e tente o seguinte comando no terminal:
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 repoO comando Run suporta os seguintes sinalizadores opcionais (se definidos, substituirá os padrões de configuração):
-m , --model Texto: Especifica o modelo a ser usado para conclusão. Padrão: gpt-3.5-turbo-t , --temperature Float: define a temperatura de geração para o modelo. Os valores mais baixos tornam o modelo mais determinístico. Padrão: 0.2-r , --request-timeout INTEGER: define o tempo limite em segundos para a solicitação da API. Padrão: 60-b , --base-url Texto: o URL base para as chamadas da API. Padrão: https://api.openai.com/v1-tp , --target-repo-path : o caminho do sistema de arquivos para o repositório de destino. Usado como raiz para geração de documentação. Padrão: path/to/your/target/repository-hp , --hierarchy-path Text: O nome ou caminho para o arquivo de hierarquia do projeto, usado para organizar a estrutura de documentação. Padrão: .project_doc_record-mdp , --markdown-docs-path Text: O caminho da pasta onde a documentação de marcação será armazenada ou gerada. Padrão: markdown_docs-i , --ignore-list Text: Uma lista de arquivos ou diretórios a serem ignorados durante a geração de documentação, separados por vírgulas.-l , -Texto --language : o código ou nome do idioma ISO 639 para a documentação. Padrão: Chinese-ll , --log-level [Debug | Info | Aviso | Erro | Crítico]: Define o nível de log para o aplicativo. Padrão: INFOVocê também pode tentar o seguinte recurso
repoagent clean # Remove repoagent-related cache
repoagent diff # Check what docs will be updated/generated based on current code changeSe for a sua primeira vez que gera documentação para o repositório de destino, a RepoaGent criará automaticamente um arquivo JSON mantendo as informações da estrutura global e uma pasta chamada Markdown_Docs no diretório raiz do repositório de destino para armazenar documentos.
Depois de gerar inicialmente a documentação global para o repositório de destino, ou se o projeto que você clonou já contiver informações globais de documentação, você poderá manter de maneira perfeita e automaticamente a documentação interna do projeto com sua equipe, configurando o gancho de pré-compromisso no repositório de destino!
pre-commitAtualmente, a RepoaGent suporta a geração de documentação para projetos, que requer alguma configuração no repositório de destino.
Primeiro, verifique se o repositório de destino é um repositório Git e foi inicializado.
git initInstale o pré-compromisso no repositório de destino para detectar alterações no repositório Git.
pip install pre-commit Crie um arquivo chamado .pre-commit-config.yaml no diretório raiz do repositório de destino. Um exemplo é o seguinte:
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]Para métodos de configuração específicos de ganchos, consulte o pré-compromisso. Depois de configurar o arquivo YAML, execute o seguinte comando para instalar o gancho.
pre-commit installDessa forma, cada commit Git acionará o gancho do repoagonte, detectando automaticamente alterações no repositório de destino e gerando documentos correspondentes. Em seguida, você pode fazer algumas modificações no repositório de destino, como adicionar um novo arquivo ao repositório de destino ou modificar um arquivo existente. Você só precisa seguir o fluxo de trabalho Git normal: add, git commit -m "sua mensagem de commit", git push O gancho repoagonte acionará automaticamente o GIT Commit, detectará os arquivos adicionados na etapa anterior e gerar documentos correspondentes.
Após a execução, o RepoaGent modificará automaticamente os arquivos encenados no repositório de destino e enviará formalmente o compromisso. Após a conclusão da execução, o verde "aprovado" será exibido, conforme mostrado na figura abaixo:
O documento gerado será armazenado na pasta especificada no diretório raiz do armazém de destino. A renderização do documento gerado é como mostrado abaixo:
Utilizamos o modelo padrão GPT-3.5-Turbo para gerar documentação para o projeto XAGENT , que compreende aproximadamente 270.000 linhas de código. Você pode visualizar os resultados desta geração no diretório Markdown_Docs do projeto XAGENT no GitHub. Para uma qualidade aprimorada da documentação, sugerimos considerar modelos mais avançados como GPT-4-1106 ou GPT-4-0125-PREVIED .
No final, você pode ajustar flexível o formato de saída, o modelo e outros aspectos do documento, personalizando o prompt. Estamos empolgados com a exploração de uma abordagem mais científica para a redação técnica automatizada e suas contribuições para a comunidade.
Conceituamos o bate -papo com o Repo como um gateway unificado para esses aplicativos a jusante, atuando como um conector que vincula repoagonte a usuários humanos e outros agentes de IA. Nossa pesquisa futura se concentrará em adaptar a interface a vários aplicativos a jusante e personalizá -la para atender às suas características e requisitos de implementação exclusivos.
Aqui, demonstramos um protótipo preliminar de uma de nossas tarefas a jusante: perguntas e respostas automáticas para problemas e explicações de código. Você pode iniciar o servidor executando o código a seguir.
pip install repoagent[chat-with-repo]
repoagent chat-with-repoAqui são casos em destaque que adotaram repoagonte.
@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 }
}