rdmgen
é uma ferramenta Python CLI para gerar automaticamente arquivos README.md
de alta qualidade para repositórios de código usando Amazon Bedrock e LangGraph .
Este projeto usa as bibliotecas AWS Amazon Bedrock, LangGraph e LangChain para analisar a estrutura e o conteúdo de um repositório de código e gerar um arquivo README.md abrangente. O README gerado fornece uma visão geral do projeto, instruções de instalação, exemplos de uso e outros detalhes relevantes com base nos arquivos do repositório.
rdmgen
faz o trabalho duro para você. Observação: você precisa python >= 3.9
. Você pode verificar isso com python --version
. Caso seu ambiente base não possua a versão necessária, crie um ambiente virtual com a versão necessária e utilize a “Opção 1” para instalar.
Você pode instalar o pacote com pip após clonar o repositório.
pip install .
Um Makefile com algumas receitas está disponível para Linux/MacOS. Para criar um ambiente Python dedicado e instalar rdmgen
no ambiente virtual, execute:
make all
O ambiente virtual é denominado .venv
por padrão e está localizado no mesmo diretório do repositório.
Agora execute o seguinte comando para ativar o ambiente:
source .venv/bin/activate
Para mais receitas de make, como limpeza e remoção de venv, verifique o resultado de make help
.
Credenciais da AWS : antes de executar os comandos cli para gerar um arquivo README, as credenciais da AWS são necessárias. Se você estiver executando isso em um ambiente AWS (por exemplo, instância do SageMaker Notebook), poderá prosseguir para a etapa 2 para garantir que as permissões corretas sejam concedidas à função IAM anexada.
Permissões do IAM : o usuário ou função do IAM deve ter pelo menos as seguintes permissões no modelo selecionado (substitua o recurso * pelo(s) ID(s) do modelo):
{
"Version" : " 2012-10-17 " ,
"Statement" : [
{
"Sid" : " VisualEditor " ,
"Effect" : " Allow " ,
"Action" : [
" bedrock:InvokeModel " ,
" bedrock:InvokeModelWithResponseStream "
],
"Resource" : " * "
}
]
}
Nota: O projeto usa o soneto de Claude 3: anthropic.claude-3-sonnet-20240229-v1:0
do Amazon Bedrock. Por favor, certifique-se de ter acesso a ele. Se desejar alterar o ID do modelo, atualize-o em src/rdmgen/constants.py
e reinstale o pacote.
Para gerar um arquivo README.md para seu repositório, execute o comando cli:
rdmgen <REPO_PATH> --out <OUTPUT_FOLDER>
<REPO_PATH>
: pode ser um clone/diretório local ou uma URL Git remota.<OUTPUT_FOLDER>
: caminho para salvar o arquivo README.md de saída. Se não for especificado, o arquivo será salvo no mesmo diretório do código-fonte. Você pode passar o sinalizador opcional --diagram
para criar o fluxograma do agente para ver as etapas que ele executou.
Os dois exemplos a seguir estão disponíveis neste repositório para teste:
rdmgen test_data/hello_world
rdmgen test_data/sensor_extraction --out ./output
Exemplo de um pequeno repositório remoto no GitHub:
rdmgen https://github.com/pypa/sampleproject --out output/sampleproject --diagram
O utilitário rdmgen
funciona atualmente para repositórios pequenos e médios. Considere as seguintes limitações ajustáveis para repositórios grandes, que são definidas em src/constants.py
:
read-timeout
, que é passado para o cliente de tempo de execução Bedrock como uma configuração, mais detalhes: https://repost.aws/knowledge-center/bedrock-large-model-read-timeoutsrecursion_limit
, que é passado para a configuração ao invocar o gráfico. Mais detalhes: https://langchain-ai.github.io/langgraph/how-tos/recursion-limit/?h=recursion Para desenvolvimento e extensões, este projeto usa Poetry para gerenciamento de dependências. Para instalar o pacote e as dependências, instale o poet e execute:
poetry lock
poetry install
Consulte CONTRIBUINDO para obter mais informações.
Contribuições são bem-vindas! Abra um problema ou envie uma solicitação pull se tiver alguma melhoria ou correção de bug.
Esta biblioteca está licenciada sob a licença MIT-0. Veja o arquivo LICENÇA.