🏛️ Arquitetura do Sistema
Diagrama da Arquitetura do Sistema OpenHands (4 de julho de 2024)
Esta é uma visão geral de alto nível da arquitetura do sistema. O sistema é dividido em dois componentes principais: o frontend e o backend. O frontend é responsável por lidar com as interações do usuário e exibir os resultados. O backend é responsável por lidar com a lógica de negócios e executar os agentes.
Arquitetura do Frontend
Esta visão geral é simplificada para mostrar os principais componentes e suas interações. Para uma visão mais detalhada da arquitetura do backend, consulte a seção Arquitetura do Backend abaixo.
Arquitetura do Backend
Aviso: A arquitetura do backend é um trabalho em andamento e está sujeita a alterações. O diagrama a seguir mostra a arquitetura atual do backend com base no commit mostrado no rodapé do diagrama.
Atualizando este Diagrama
A geração do diagrama da arquitetura do backend é parcialmente automatizada. O diagrama é gerado a partir das type hints no código usando a ferramenta py2puml. O diagrama é então revisado manualmente, ajustado e exportado para PNG e SVG.
Pré-requisitos
- Ambiente python em execução no qual o openhands é executável (de acordo com as instruções no arquivo README.md na raiz do repositório)
- py2puml instalado
Passos
-
Gere automaticamente o diagrama executando o seguinte comando na raiz do repositório:
py2puml openhands openhands > docs/architecture/backend_architecture.puml
-
Abra o arquivo gerado em um editor PlantUML, por exemplo, Visual Studio Code com a extensão PlantUML ou PlantText
-
Revise o PUML gerado e faça todos os ajustes necessários no diagrama (adicione partes ausentes, corrija erros, melhore o posicionamento). py2puml cria o diagrama com base nas type hints no código, portanto, type hints ausentes ou incorretas podem resultar em um diagrama incompleto ou incorreto.
-
Revise a diferença entre o novo diagrama e o anterior e verifique manualmente se as alterações estão corretas. Certifique-se de não remover partes que foram adicionadas manualmente ao diagrama no passado e ainda são relevantes.
-
Adicione o hash do commit que foi usado para gerar o diagrama no rodapé do diagrama.
-
Exporte o diagrama como arquivos PNG e SVG e substitua os diagramas existentes no diretório
docs/architecture
. Isso pode ser feito com (por exemplo, PlantText)