/doc-generator-ai

Documentation, manual and process generation implementention with python and google Gemini

Primary LanguagePython

📚 Doc Generator AI 🚀

GitHub repo size GitHub stars GitHub forks GitHub issues GitHub license

🌟 Visão Geral

O Doc Generator AI é uma aplicação avançada que automatiza a geração de manuais técnicos detalhados utilizando inteligência artificial. Todos os manuais presentes nesse repositório foram gerados on cloud usando arquitetura de cloud nativa, prática de CD e remote reployment e remote execution para geração dos artefatos usando Github Actions. Todo código nesse repositório foi gerado de forma 100 % automática usando a Ia do google Gemini em ambiente cloud do proprio github actions. Este projeto faz parte do meu portfólio pessoal de DevOps e exemplifica a implementação completa do ciclo CI/CD e automação de DevOps, integrado com soluções de IA.

Este projeto demonstra um exemplo prático de automação de CI/CD para geração de documentação usando GitHub Actions, destacando minha habilidade em desenvolvimento de automação, integração contínua e entrega contínua (CI/CD), e uso de ferramentas de automação para melhorar eficiência e consistência no ciclo de desenvolvimento de software.

Este repositório exemplifica a automação de documentação para projetos de IA e Python, integrando práticas avançadas de CI/CD e DevOps. Utiliza GitHub Actions para gerar documentação automaticamente a partir do código fonte.

AIops + Devops

📌 Funcionalidades

  • 📝 Geração de Conteúdo: Utiliza APIs avançadas de linguagem para gerar conteúdo técnico detalhado e estilizado.
  • ⚙️ Automação de Tarefas: Geração automática de manuais baseados em temas fornecidos, com subdivisão em subtemas e criação de títulos específicos.
  • 💾 Armazenamento de Artefatos: Os manuais gerados são salvos como arquivos /manuals/- 💾 **Armazenamento de Artefatos**: Os manuais gerados são salvos como arquivos .md` para fácil acesso e leitura.
  • 🛠️ Pipeline CI/CD Completo: Implementação de workflows GitHub Actions para automação de testes, build e deploy.
  • 📈 Integração Contínua: Verificação automática de dependências e integridade do código.
  • 🚀 Entrega Contínua: Deploy automatizado de atualizações e novas versões dos manuais.

🚀 Tecnologias Utilizadas

  • Python 🐍: Linguagem principal utilizada para desenvolvimento do script de geração de conteúdo.
  • GitHub Actions 🛠️: Ferramenta de CI/CD para automação do ciclo de vida do software.
  • API de Linguagem 🌐: Utilizada para gerar o conteúdo dos manuais.
  • Markdown 📄: Formato utilizado para salvar os manuais gerados.

O fluxo de trabalho está configurado com GitHub Actions para realizar CI/CD, garantindo que a documentação seja atualizada automaticamente a cada alteração no código. A imagem abaixo mostra a Action executando a geração de documentação diretamente neste repositório:

GitHub Action - Geração de Documentação

Entenda:

Diagrama de Árvore: Processo de Geração Automatizada de Manuais 🌳📘🤖

  • Verificação Inicial

    • 📂 Checkout do Repositório
      • Utiliza o actions/checkout@v2 para obter o código do repositório.
  • Configuração do Ambiente

    • 🐍 Setup Python 3.11

      • Usa actions/setup-python@v2 para configurar o ambiente Python 3.11.
    • 📦 Instalação de Dependências

      • Instala a biblioteca requests para comunicação com a API Gemini.
  • Preparação do Script doc-gen.py

    • 🛠️ Verificação e Preparação
      • Verifica a existência do script doc-gen.py e o torna executável, se necessário.
  • Geração de Manuais

    • 📝 Configuração de Tema

      • Define o tema dos manuais através da variável de ambiente TEMA.
    • 🤖 Execução do Script doc-gen.py

      • Utiliza o script para gerar conteúdo textual baseado no tema especificado.

Os manuais são gerados e disponibilizados automaticamente no ambiente de execução do projeto. Abaixo está um exemplo dos manuais gerados no ambiente de execução, antes de serem enviados para o repo do projeto:

Manuais Gerados

  • Processamento Paralelo

    • ⚙️ ThreadPoolExecutor
      • Processa múltiplos manuais em paralelo para otimização de desempenho.
  • Verificação de Artefatos

    • 📂 Verificação de Manuais Gerados
      • Examina o diretório de artefatos para confirmar a geração bem-sucedida dos manuais.
  • Commit e Push Automatizados

    • 🔄 Configuração do Git

      • Define configurações globais de usuário para commits automatizados.
    • 📦 Commit de Alterações

      • Adiciona e commita os manuais gerados de volta ao repositório.
    • 🚀 Push para o Repositório

      • Utiliza o token de acesso GitHub para push automático das alterações para a branch main.

Este diagrama ilustra as etapas detalhadas do processo de automação para a geração de manuais técnicos, mostrando como cada passo contribui para a eficiência e consistência na produção de documentação. 🌟🔧

🤖 Automatização de Geração e Commit de Manuais

Este repositório contém um fluxo de trabalho automatizado para gerar e commitar manuais automaticamente no GitHub. Utiliza GitHub Actions para executar o script doc-gen.py, que gera manuais baseados em temas específicos fornecidos como variáveis de ambiente.

Funcionalidades Principais

  • Automação de Geração de Manuais: Utiliza Python 3.11 para executar o script doc-gen.py, que interage com a API de geração de conteúdo do Google Gemini.

  • CI/CD Automatizado: Configurado para rodar no evento de push para a branch main, garantindo a geração automática de manuais sempre que há atualizações no código.

  • Verificação e Commit: Após a geração dos manuais, verifica se os artefatos foram gerados corretamente e realiza um commit com as alterações no repositório.

  • Configuração do Git: Configura o Git dentro do ambiente de execução para permitir commits automatizados.

Passos Detalhados

  1. Checkout do Repositório:

    • Utiliza actions/checkout para clonar o repositório no ambiente de execução do GitHub Actions.
  2. Configuração do Ambiente Python:

    • Usa actions/setup-python para configurar a versão 3.11 do Python, necessária para executar o script doc-gen.py.
  3. Instalação da Biblioteca Requests:

    • Garante que a biblioteca requests esteja instalada para fazer requisições HTTP necessárias no script.
  4. Verificação e Permissão do Script:

    • Verifica se o script doc-gen.py existe e o torna executável usando chmod +x.
  5. Execução do Script de Geração de Manuais:

    • Define variáveis de ambiente, como GOOGLEAPIKEY e TEMA, necessárias para a execução do script, e executa-o passando o tema como argumento.
  6. Verificação dos Artefatos Gerados:

    • Após a execução do script, lista os artefatos gerados para verificar se foram criados corretamente.
  7. Configuração do Git para Commit Automático:

    • Configura o nome e e-mail do usuário Git para permitir commits automáticos usando o GitHub Actions.
  8. Commit Automático das Alterações:

    • Adiciona as alterações feitas (os manuais gerados) ao índice do Git e realiza um commit com uma mensagem padronizada contendo o tema dos manuais gerados.
  9. Push das Mudanças de Volta para o Repositório:

    • Empurra as alterações com os novos manuais gerados de volta para a branch main do repositório remoto.

Configuração Adicional

Certifique-se de configurar a variável de ambiente GOOGLEAPIKEY como um segredo no GitHub para garantir a segurança da chave de API utilizada na integração com o Google Gemini.

Referência ao Fluxo de Trabalho Completo

Para ver o fluxo de trabalho completo configurado em YAML, consulte .github/workflows/generate-docs.yaml.


Geração Automatizada de Manuais 📘🤖

Este projeto utiliza um script Python chamado doc-gen.py para automatizar a geração de manuais de forma inteligente e eficiente. A seguir, detalhamos como esse script é integrado em um fluxo de trabalho automatizado de CI/CD e DevOps.

Script Python: doc-gen.py

O arquivo doc-gen.py é o núcleo deste projeto, responsável por integrar a lógica de geração de conteúdo utilizando a API Google Gemini para criar manuais detalhados com base em temas específicos.

Funcionalidades Principais:

  • Geração de Nome Único: Utiliza hash SHA-256 para gerar nomes únicos para os manuais, garantindo identificação única.

  • Requisição à API Gemini: Envia requisições à API Google Gemini para gerar conteúdo textual baseado em prompts específicos.

  • Processamento em Paralelo: Utiliza ThreadPoolExecutor para processar múltiplos manuais simultaneamente, otimizando o tempo de geração.

Uso no Fluxo de Trabalho

No fluxo de trabalho de automação CI/CD, o doc-gen.py é acionado por meio de GitHub Actions, configurado para executar as seguintes etapas:

  1. Instalação e Configuração:

    • Configura o ambiente Python 3.11.
    • Instala a biblioteca requests para comunicação com a API.
  2. Verificação e Preparação:

    • Verifica a existência do script doc-gen.py.
    • Torna o script executável caso necessário.
  3. Geração de Manuais:

    • Define o tema dos manuais através de variáveis de ambiente.
    • Utiliza o script para gerar manuais com base no tema especificado.
  4. Verificação de Artefatos:

    • Verifica os manuais gerados no diretório de artefatos para garantir a conclusão bem-sucedida.
  5. Commit e Push Automatizados:

    • Configura o Git para commit e push das alterações feitas pelos manuais gerados de volta para o repositório principal.

Referências Adicionais

Este projeto demonstra minha habilidade em integrar IA com práticas DevOps para automação de processos, proporcionando eficiência e qualidade na entrega de documentação técnica avançada. 🚀✨

🔧 Configuração e Uso

1. Clonar o Repositório

git clone https://github.com/chaos4455/doc-generator-ai.git
cd doc-generator-ai
  1. Configurar Variáveis de Ambiente Certifique-se de definir a chave da API para a geração de conteúdo:
export GOOGLEAPIKEY="sua_chave_api_aqui"
export TEMA="itil v3 e service management no ambiente windows"  # Defina o tema desejado
  1. Executar o Script
python doc-gen.py "$TEMA"
  1. Verificar os Artefatos Gerados Os manuais gerados serão armazenados no diretório artifacts.

🛠️ Estrutura do Projeto

.
├── doc-gen.py          # Script principal de geração de conteúdo
├── README/manuals/├── README.md           # Documentação do projeto
├── .github
│   └── workflows
│       └── generate-manuals.yml  # Workflow do GitHub Actions
└── artifacts           # Diretório para armazenar os manuais gerados

🌍 Ciclo DevOps

Integração Contínua (CI)

GitHub Actions: Workflows configurados para testar, construir e verificar o código automaticamente em cada push para a branch principal.

Entrega Contínua (CD)

Automação de Deploy: Os manuais gerados são automaticamente commitados e pushados para o repositório, garantindo que a documentação esteja sempre atualizada.

Monitoramento e Feedback

Notificações: Alertas e logs configurados para monitorar o sucesso das execuções dos workflows e identificar rapidamente qualquer falha.

🤖 Automatização Inteligente

IA na Geração de Conteúdo: Uso de APIs avançadas de processamento de linguagem natural para criar manuais ricos em detalhes, bem estruturados e visualmente agradáveis.

🏆 Destaques do Projeto

Escalabilidade: Capaz de gerar dezenas de manuais simultaneamente usando processamento paralelo.

Personalização: Fácil configuração para diferentes temas e subtemas.

Eficiência: Reduz o tempo de criação de documentação técnica, permitindo que os profissionais de TI se concentrem em tarefas mais críticas.

🤝 Contribuição

Sinta-se à vontade para contribuir com melhorias, correções ou novas funcionalidades. Basta seguir os passos abaixo:

Faça um fork deste repositório. Crie uma nova branch (git checkout -b feature/nova-funcionalidade). Faça commit das suas alterações (git commit -m 'Adiciona nova funcionalidade'). Faça push para a branch (git push origin feature/nova-funcionalidade). Abra um Pull Request (PR). Configurando o Fork Para executar corretamente o workflow, siga os passos abaixo:

Cadastre a API Key do Google Gemini como um Secret:

Vá para a aba Settings do seu repositório fork. Clique em Secrets e depois em Actions. Adicione um novo secret chamado GOOGLEAPIKEY com sua chave da API do Google Gemini. Dê Permissões para a Action Executar Commits:

Vá para a aba Settings do seu repositório fork. Clique em Actions e depois em General. Em Workflow permissions, selecione Read and write permissions. Aprovando Pull Requests Para aprovar um Pull Request:

Vá para a aba Pull requests do repositório. Clique no PR que deseja revisar. Revise as mudanças propostas e, se estiverem de acordo, clique em Merge pull request.

📄 Licença Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.