{"id":19530242,"url":"https://github.com/chaos4455/doc-generator-ai","last_synced_at":"2026-05-16T09:01:38.477Z","repository":{"id":245057372,"uuid":"817130943","full_name":"chaos4455/doc-generator-ai","owner":"chaos4455","description":"Documentation, manual and process generation implementention with python and google Gemini","archived":false,"fork":false,"pushed_at":"2024-10-01T18:04:38.000Z","size":889,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-08T16:29:00.489Z","etag":null,"topics":["ai","aiops","automacao","automation","devops","documentation","manual","python"],"latest_commit_sha":null,"homepage":"https://www.evolucaoit.com.br/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chaos4455.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-19T05:00:57.000Z","updated_at":"2024-11-24T21:09:41.000Z","dependencies_parsed_at":"2024-06-19T12:44:59.215Z","dependency_job_id":"d225299c-f1f3-4356-ab97-c42952fa928b","html_url":"https://github.com/chaos4455/doc-generator-ai","commit_stats":null,"previous_names":["chaos4455/doc-generator-ai"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaos4455%2Fdoc-generator-ai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaos4455%2Fdoc-generator-ai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaos4455%2Fdoc-generator-ai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaos4455%2Fdoc-generator-ai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chaos4455","download_url":"https://codeload.github.com/chaos4455/doc-generator-ai/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240783108,"owners_count":19856776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","aiops","automacao","automation","devops","documentation","manual","python"],"created_at":"2024-11-11T01:29:49.890Z","updated_at":"2025-11-20T09:03:35.259Z","avatar_url":"https://github.com/chaos4455.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📚 Doc Generator AI 🚀\n\n![GitHub repo size](https://img.shields.io/github/repo-size/chaos4455/doc-generator-ai)\n![GitHub stars](https://img.shields.io/github/stars/chaos4455/doc-generator-ai?style=social)\n![GitHub forks](https://img.shields.io/github/forks/chaos4455/doc-generator-ai?style=social)\n![GitHub issues](https://img.shields.io/github/issues/chaos4455/doc-generator-ai)\n![GitHub license](https://img.shields.io/github/license/chaos4455/doc-generator-ai)\n\n## 🌟 Visão Geral\n\nO **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.\n\nEste 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.\n\n\u003c!-- 🤖📚 Repositório de Automação de Documentação de IA e Python --\u003e\n\nEste 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.\n\n![AIops + Devops](https://raw.githubusercontent.com/chaos4455/doc-generator-ai/main/_f80113f3-64a9-469e-9204-2f370d1dead9.jpeg)\n\n```mermaid\ngraph TD\n  A[Inicio] --\u003e B{Obtem Tema}\n  B --\u003e|Tema definido| C[Executa create_manuals]\n  B --\u003e|Tema nao definido| D[Tema padrao]\n  D --\u003e C[Executa create_manuals]\n  C --\u003e E[Gerar Subtemas]\n  E --\u003e|Subtemas gerados| F[Iterar sobre Subtemas]\n  E --\u003e|Falha| G[Erro ao Gerar Subtemas]\n  F --\u003e H[Gerar Títulos de Manuais]\n  H --\u003e|Titulos Gerados| I[Processar Manuais]\n  H --\u003e|Falha| J[Erro ao Gerar Titulos]\n  I --\u003e K[Gerar Conteudo do Manual]\n  K --\u003e L[Salvar Conteudo em Arquivo]\n  I --\u003e|Falha| M[Erro ao Processar Manuais]\n  L --\u003e N[Fim]\n```\n\n\n### Comentários sobre o Código\n\n- **Objetivo Geral**: O script foi projetado para automatizar a criação de manuais a partir de um tema central, utilizando uma API de geração de conteúdo. A lógica permite gerar subtemas, títulos de manuais e, finalmente, o conteúdo de cada manual.\n- **Uso de Funções Específicas**:\n  - `generate_unique_name()`: Cria um nome único para o manual baseado em uma hash SHA-256 do texto.\n  - `generate_content()`: Faz uma requisição à API para gerar o conteúdo.\n  - `generate_subthemes()`: Gera subtemas a partir de um tema principal.\n  - `generate_manual_titles()`: Gera títulos de manuais para cada subtema.\n  - `process_manuals()`: Processa os manuais em paralelo para melhorar o desempenho usando `ThreadPoolExecutor`.\n  - `generate_manual_content()`: Gera o conteúdo de cada manual, seguindo um formato detalhado e estilizado.\n  - `create_manuals()`: Função principal que coordena todas as etapas de geração de manuais.\n\nEste diagrama ajuda a visualizar o fluxo do script e entender como as diferentes partes do código interagem para atingir o objetivo final de criar manuais estilizados.\n\n# 📝 **Projeto: Gerador de Manuais de Conteúdo Automatizado** 🚀\n\nEste projeto tem como objetivo criar manuais de conteúdo detalhados e estilizados com base em temas específicos, utilizando uma **API de geração de conteúdo**. O código é escrito em Python e faz uso de várias bibliotecas para manipulação de dados, requisições HTTP, processamento em paralelo e geração de hashes únicas.\n\n## 🌟 **Principais Funcionalidades**\n\n1. **Geração de Nomes Únicos** 🔑  \n   A função `generate_unique_name` cria um identificador único para cada manual gerado. Utiliza a biblioteca `hashlib` para gerar uma **hash SHA-256** baseada no texto do prompt, garantindo que cada manual tenha um nome exclusivo.\n\n    ```python\n    def generate_unique_name(prompt_text):\n        # Remove caracteres especiais e espaços\n        clean_text = re.sub(r'[^\\w\\s]', '', prompt_text)\n        hash_object = hashlib.sha256(clean_text.encode())\n        hash_digest = hash_object.hexdigest()\n        unique_name = f\"{clean_text[:50].replace(' ', '_')}_{hash_digest[:8]}\"\n        return unique_name\n    ```\n\n2. **Requisições à API de Geração de Conteúdo** 🌐  \n   A função `generate_content` envia um prompt de texto para a **API de geração de conteúdo** do Google, utilizando a biblioteca `requests`. A função trata possíveis erros de conexão e verifica o status da resposta, retornando o conteúdo gerado.\n\n    ```python\n    def generate_content(prompt_text):\n        # Define o corpo da requisição\n        content = {\n            \"contents\": [{\"parts\": [{\"text\": prompt_text}]}]\n        }\n        # URL da API\n        url = f'https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key={API_KEY}'\n        \n        response = requests.post(url, json=content)\n\n        # Verifica o status da resposta\n        if response.status_code == 200:\n            json_response = response.json()\n            response_text = json_response['candidates'][0]['content']['parts'][0]['text']\n            return response_text\n        else:\n            print(f\"Erro ao enviar requisição: {response.status_code} - {response.text}\")\n            return None\n    ```\n\n3. **Geração de Subtemas e Títulos de Manuais** 📝  \n   A lógica de geração de subtemas (`generate_subthemes`) e títulos (`generate_manual_titles`) é baseada em prompts dinâmicos. A cada chamada, a função gera novos subtemas ou títulos que são utilizados na criação de conteúdos mais específicos e detalhados.\n\n    ```python\n    def generate_subthemes(theme):\n        # Prompt dinâmico para subtemas\n        prompt_text = f\"Gere 2 subtemas baseados no tema '{theme}'.\"\n        subthemes_text = generate_content(prompt_text)\n        if subthemes_text:\n            return [subtheme.strip() for subtheme in subthemes_text.split('\\n') if subtheme.strip()]\n        else:\n            print(\"Falha ao gerar a lista de subtemas.\")\n            return []\n    ```\n\n4. **Processamento Paralelo de Manuais** ⚙️  \n   Utilizando o `ThreadPoolExecutor` da biblioteca `concurrent.futures`, a função `process_manuals` permite o processamento de múltiplos manuais de maneira assíncrona, maximizando a eficiência e reduzindo o tempo de espera.\n\n    ```python\n    def process_manuals(subtheme, manual_titles):\n        # Processa em paralelo com até 4 threads\n        with ThreadPoolExecutor(max_workers=4) as executor:\n            future_to_title = {executor.submit(generate_manual_content, subtheme, title): title for title in manual_titles}\n            for future in as_completed(future_to_title):\n                title = future_to_title[future]\n                try:\n                    generated_content = future.result()\n                    if generated_content:\n                        unique_name = generate_unique_name(f\"{title}_{subtheme}\")\n                        with open(f\"{unique_name}.md\", \"w\", encoding=\"utf-8\") as md_file:\n                            md_file.write(generated_content)\n                        print(f\"Manual gerado com sucesso para o subtema '{subtheme}': {unique_name}.md\")\n                    else:\n                        print(f\"Falha ao gerar o Manual para o título: {title} no subtema '{subtheme}'\")\n                except Exception as exc:\n                    print(f\"Erro ao processar o Manual para o título: {title} no subtema '{subtheme}': {exc}\")\n    ```\n\n5. **Criação Automática de Manuais** 📚  \n   A função `create_manuals` é o ponto de entrada principal para o script, gerenciando o fluxo de criação de manuais com base em um tema específico. Ela utiliza variáveis de ambiente para personalizar o tema e chama todas as funções auxiliares para concluir o processo.\n\n    ```python\n    def create_manuals(theme):\n        # Gera subtemas e títulos de manuais\n        subthemes = generate_subthemes(theme)\n        if subthemes:\n            for subtheme in subthemes:\n                manual_titles = generate_manual_titles(subtheme)\n                if manual_titles:\n                    process_manuals(subtheme, manual_titles)\n                else:\n                    print(f\"Falha ao gerar a lista de títulos dos manuais para o subtema '{subtheme}'.\")\n        else:\n            print(\"Falha ao gerar a lista de subtemas.\")\n    ```\n\n## 🔍 **Considerações Técnicas**\n\n- **Uso de API**: A comunicação com a API do Google é realizada de forma robusta, tratando erros e validando as respostas, garantindo a integridade e sucesso da operação.\n- **Eficiência**: O uso de processamento paralelo melhora significativamente o desempenho, permitindo a geração de vários conteúdos simultaneamente.\n- **Modularidade**: O código é altamente modular, com funções bem definidas, facilitando a manutenção, testes e futuras expansões.\n- **Segurança**: Utilização de variáveis de ambiente para proteger informações sensíveis, como a chave da API.\n\n\n# 🚀 **Implementando GitOps com GitHub Actions para Geração Automática de Manuais** 📚\n\nPara automatizar o processo de geração e commit de manuais diretamente no repositório do GitHub, utilizamos um **GitHub Action** que adota princípios de **GitOps**. Esta abordagem permite que toda a infraestrutura e automação sejam gerenciadas como código, garantindo rastreabilidade, segurança e fácil manutenção.\n\n## 🔧 **Descrição Técnica da GitHub Action**\n\nA **Action** definida abaixo é acionada a cada **push** na branch `main`, executando um pipeline que gera os manuais com base em um script Python (`doc-gen.py`), e em seguida faz commit das alterações diretamente no repositório.\n\n### 💻 **Passos Detalhados da GitHub Action**\n\n1. **Configuração do Ambiente** 🛠️  \n   A action começa fazendo o **checkout** do repositório e configurando a versão correta do Python (3.11), além de instalar a biblioteca `requests` necessária para realizar as requisições à API.\n\n2. **Execução do Script Python** 🐍  \n   Verificamos a existência do script `doc-gen.py` e garantimos que ele seja executável. O script é então executado utilizando variáveis de ambiente (secrets) para garantir que a chave da API (`GOOGLEAPIKEY`) e o tema (`TEMA`) sejam protegidos.\n\n3. **Verificação e Configuração do Git** 🔍  \n   Após gerar os manuais, a Action verifica os artefatos criados e configura o Git para preparar o commit das mudanças.\n\n4. **Commit e Push das Alterações** 🚀  \n   A Action adiciona todas as mudanças ao repositório, faz o commit com uma mensagem descritiva e, finalmente, faz o **push** das alterações para a branch `main`.\n\n### 🛠️ **Código da GitHub Action**\n\n```yaml\nname: Generate and Commit Manuals\n\non:\n  push:\n    branches:\n      - main\n\njobs:\n  generate-manuals:\n    runs-on: ubuntu-latest\n    steps:\n      # 1️⃣ Checkout do Repositório\n      - name: Checkout repository\n        uses: actions/checkout@v2\n\n      # 2️⃣ Configuração do Ambiente Python\n      - name: Set up Python 3.11\n        uses: actions/setup-python@v2\n        with:\n          python-version: '3.11'\n\n      # 3️⃣ Instalação das Dependências\n      - name: Install requests library\n        run: |\n          python -m pip install requests\n\n      # 4️⃣ Verificação do Script e Permissões\n      - name: Verify doc-gen.py and make executable\n        run: |\n          if [ ! -f \"doc-gen.py\" ]; then\n            echo \"Error: doc-gen.py not found.\"\n            exit 1\n          fi\n          chmod +x doc-gen.py\n\n      # 5️⃣ Execução do Script para Geração dos Manuais\n      - name: Run doc-gen.py to generate manuals\n        env:\n          GOOGLEAPIKEY: ${{ secrets.GOOGLEAPIKEY }}\n          TEMA: \"criação de apis restful com asp net core\"  # Defina o tema aqui ou como uma variável de ambiente no GitHub\n        run: |\n          python doc-gen.py \"$TEMA\"\n\n      # 6️⃣ Verificação dos Artefatos Gerados\n      - name: Verify generated artifacts\n        run: |\n          ls -R\n\n      # 7️⃣ Configuração do Git\n      - name: Configure Git\n        run: |\n          git config --global user.email \"github-actions@github.com\"\n          git config --global user.name \"GitHub Actions\"\n\n      # 8️⃣ Commit das Alterações\n      - name: Commit changes\n        run: |\n          git add .\n          git commit -m \"Generated manuals for $TEMA\"\n\n      # 9️⃣ Push das Alterações de Volta ao Repositório\n      - name: Push changes back to repository\n        run: |\n          git push origin main\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n\n```\n## 📌 Funcionalidades\n\n- 📝 **Geração de Conteúdo**: Utiliza APIs avançadas de linguagem para gerar conteúdo técnico detalhado e estilizado.\n- ⚙️ **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.\n- 💾 **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.\n- 🛠️ **Pipeline CI/CD Completo**: Implementação de workflows GitHub Actions para automação de testes, build e deploy.\n- 📈 **Integração Contínua**: Verificação automática de dependências e integridade do código.\n- 🚀 **Entrega Contínua**: Deploy automatizado de atualizações e novas versões dos manuais.\n\n## 🚀 Tecnologias Utilizadas\n\n- **Python** 🐍: Linguagem principal utilizada para desenvolvimento do script de geração de conteúdo.\n- **GitHub Actions** 🛠️: Ferramenta de CI/CD para automação do ciclo de vida do software.\n- **API de Linguagem** 🌐: Utilizada para gerar o conteúdo dos manuais.\n- **Markdown** 📄: Formato utilizado para salvar os manuais gerados.\n\n\u003c!-- 🛠️🔄 Integração Contínua e Entrega Contínua (CI/CD) --\u003e\n\nO 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:\n\n![GitHub Action - Geração de Documentação](https://raw.githubusercontent.com/chaos4455/doc-generator-ai/main/chrome_RsADlRQT5j.png)\n\n\n## Entenda: \n\n### Diagrama de Árvore: Processo de Geração Automatizada de Manuais 🌳📘🤖\n\n- **Verificação Inicial**\n  - 📂 **Checkout do Repositório**\n    - Utiliza o `actions/checkout@v2` para obter o código do repositório.\n\n- **Configuração do Ambiente**\n  - 🐍 **Setup Python 3.11**\n    - Usa `actions/setup-python@v2` para configurar o ambiente Python 3.11.\n  \n  - 📦 **Instalação de Dependências**\n    - Instala a biblioteca `requests` para comunicação com a API Gemini.\n\n- **Preparação do Script `doc-gen.py`**\n  - 🛠️ **Verificação e Preparação**\n    - Verifica a existência do script `doc-gen.py` e o torna executável, se necessário.\n\n- **Geração de Manuais**\n  - 📝 **Configuração de Tema**\n    - Define o tema dos manuais através da variável de ambiente `TEMA`.\n\n  - 🤖 **Execução do Script `doc-gen.py`**\n    - Utiliza o script para gerar conteúdo textual baseado no tema especificado.\n\n\u003c!-- 📘🖥️ Manuais Gerados --\u003e\n\nOs 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:\n\n![Manuais Gerados](https://raw.githubusercontent.com/chaos4455/doc-generator-ai/main/chrome_Wh9AfzmWfC.png)\n\n\n- **Processamento Paralelo**\n  - ⚙️ **ThreadPoolExecutor**\n    - Processa múltiplos manuais em paralelo para otimização de desempenho.\n\n- **Verificação de Artefatos**\n  - 📂 **Verificação de Manuais Gerados**\n    - Examina o diretório de artefatos para confirmar a geração bem-sucedida dos manuais.\n\n- **Commit e Push Automatizados**\n  - 🔄 **Configuração do Git**\n    - Define configurações globais de usuário para commits automatizados.\n\n  - 📦 **Commit de Alterações**\n    - Adiciona e commita os manuais gerados de volta ao repositório.\n\n  - 🚀 **Push para o Repositório**\n    - Utiliza o token de acesso GitHub para push automático das alterações para a branch `main`.\n\n---\n\nEste 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. 🌟🔧\n\n## 🤖 Automatização de Geração e Commit de Manuais\n\nEste 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.\n\n### Funcionalidades Principais\n\n- **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.\n  \n- **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.\n\n- **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.\n\n- **Configuração do Git**: Configura o Git dentro do ambiente de execução para permitir commits automatizados.\n\n### Passos Detalhados\n\n1. **Checkout do Repositório**:\n   - Utiliza `actions/checkout` para clonar o repositório no ambiente de execução do GitHub Actions.\n\n2. **Configuração do Ambiente Python**:\n   - Usa `actions/setup-python` para configurar a versão 3.11 do Python, necessária para executar o script `doc-gen.py`.\n\n3. **Instalação da Biblioteca Requests**:\n   - Garante que a biblioteca `requests` esteja instalada para fazer requisições HTTP necessárias no script.\n\n4. **Verificação e Permissão do Script**:\n   - Verifica se o script `doc-gen.py` existe e o torna executável usando `chmod +x`.\n\n5. **Execução do Script de Geração de Manuais**:\n   - 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.\n\n6. **Verificação dos Artefatos Gerados**:\n   - Após a execução do script, lista os artefatos gerados para verificar se foram criados corretamente.\n\n7. **Configuração do Git para Commit Automático**:\n   - Configura o nome e e-mail do usuário Git para permitir commits automáticos usando o GitHub Actions.\n\n8. **Commit Automático das Alterações**:\n   - 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.\n\n9. **Push das Mudanças de Volta para o Repositório**:\n   - Empurra as alterações com os novos manuais gerados de volta para a branch `main` do repositório remoto.\n\n### Configuração Adicional\n\nCertifique-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.\n\n### Referência ao Fluxo de Trabalho Completo\n\nPara ver o fluxo de trabalho completo configurado em YAML, consulte [`.github/workflows/generate-docs.yaml`](https://github.com/chaos4455/doc-generator-ai/blob/main/.github/workflows/generate-docs.yaml).\n\n---\n\n### Geração Automatizada de Manuais 📘🤖\n\nEste 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.\n\n#### **Script Python: `doc-gen.py`**\n\nO 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.\n\n**Funcionalidades Principais:**\n\n- **Geração de Nome Único:** Utiliza hash SHA-256 para gerar nomes únicos para os manuais, garantindo identificação única.\n  \n- **Requisição à API Gemini:** Envia requisições à API Google Gemini para gerar conteúdo textual baseado em prompts específicos.\n\n- **Processamento em Paralelo:** Utiliza `ThreadPoolExecutor` para processar múltiplos manuais simultaneamente, otimizando o tempo de geração.\n\n#### **Uso no Fluxo de Trabalho**\n\nNo fluxo de trabalho de automação CI/CD, o `doc-gen.py` é acionado por meio de GitHub Actions, configurado para executar as seguintes etapas:\n\n1. **Instalação e Configuração:**\n   - Configura o ambiente Python 3.11.\n   - Instala a biblioteca `requests` para comunicação com a API.\n\n2. **Verificação e Preparação:**\n   - Verifica a existência do script `doc-gen.py`.\n   - Torna o script executável caso necessário.\n\n3. **Geração de Manuais:**\n   - Define o tema dos manuais através de variáveis de ambiente.\n   - Utiliza o script para gerar manuais com base no tema especificado.\n\n4. **Verificação de Artefatos:**\n   - Verifica os manuais gerados no diretório de artefatos para garantir a conclusão bem-sucedida.\n\n5. **Commit e Push Automatizados:**\n   - Configura o Git para commit e push das alterações feitas pelos manuais gerados de volta para o repositório principal.\n\n#### **Referências Adicionais**\n\n- [Código Python `doc-gen.py` no repositório](https://github.com/chaos4455/doc-generator-ai/blob/main/doc-gen.py)\n- [Arquivo YAML de configuração no GitHub Actions](https://github.com/chaos4455/doc-generator-ai/blob/main/.github/workflows/generate-docs.yaml)\n\nEste 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. 🚀✨\n\n\n## 🔧 Configuração e Uso\n\n### 1. Clonar o Repositório\n\n```bash\ngit clone https://github.com/chaos4455/doc-generator-ai.git\ncd doc-generator-ai\n```\n\n2. Configurar Variáveis de Ambiente\nCertifique-se de definir a chave da API para a geração de conteúdo:\n\n```bash\n\nexport GOOGLEAPIKEY=\"sua_chave_api_aqui\"\nexport TEMA=\"itil v3 e service management no ambiente windows\"  # Defina o tema desejado\n\n```\n3. Executar o Script\n\n```bash\n\npython doc-gen.py \"$TEMA\"\n```\n4. Verificar os Artefatos Gerados\nOs manuais gerados serão armazenados no diretório artifacts.\n\n🛠️ Estrutura do Projeto\n\n```bash\n\n.\n├── doc-gen.py          # Script principal de geração de conteúdo\n├── README/manuals/├── README.md           # Documentação do projeto\n├── .github\n│   └── workflows\n│       └── generate-manuals.yml  # Workflow do GitHub Actions\n└── artifacts           # Diretório para armazenar os manuais gerados\n```\n\n🌍 Ciclo DevOps\n\nIntegração Contínua (CI)\n\nGitHub Actions: Workflows configurados para testar, construir e verificar o código automaticamente em cada push para a branch principal.\n\nEntrega Contínua (CD)\n\nAutomação de Deploy: Os manuais gerados são automaticamente commitados e pushados para o repositório, garantindo que a documentação esteja sempre atualizada.\n\nMonitoramento e Feedback\n\nNotificações: Alertas e logs configurados para monitorar o sucesso das execuções dos workflows e identificar rapidamente qualquer falha.\n\n🤖 Automatização Inteligente\n\nIA 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.\n\n🏆 Destaques do Projeto\n\nEscalabilidade: Capaz de gerar dezenas de manuais simultaneamente usando processamento paralelo.\n\nPersonalização: Fácil configuração para diferentes temas e subtemas.\n\nEficiê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.\n\n🤝 Contribuição\n\nSinta-se à vontade para contribuir com melhorias, correções ou novas funcionalidades. Basta seguir os passos abaixo:\n\nFaça um fork deste repositório.\nCrie uma nova branch (git checkout -b feature/nova-funcionalidade).\nFaça commit das suas alterações (git commit -m 'Adiciona nova funcionalidade').\nFaça push para a branch (git push origin feature/nova-funcionalidade).\nAbra um Pull Request (PR).\nConfigurando o Fork\nPara executar corretamente o workflow, siga os passos abaixo:\n\nCadastre a API Key do Google Gemini como um Secret:\n\nVá para a aba Settings do seu repositório fork.\nClique em Secrets e depois em Actions.\nAdicione um novo secret chamado GOOGLEAPIKEY com sua chave da API do Google Gemini.\nDê Permissões para a Action Executar Commits:\n\nVá para a aba Settings do seu repositório fork.\nClique em Actions e depois em General.\nEm Workflow permissions, selecione Read and write permissions.\nAprovando Pull Requests\nPara aprovar um Pull Request:\n\nVá para a aba Pull requests do repositório.\nClique no PR que deseja revisar.\nRevise as mudanças propostas e, se estiverem de acordo, clique em Merge pull request.\n\n📄 Licença\nEste projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaos4455%2Fdoc-generator-ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchaos4455%2Fdoc-generator-ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaos4455%2Fdoc-generator-ai/lists"}