Aplicação desktop para geração automática de posts de blog utilizando IA (Google Gemini), desenvolvida com PyQt5 e arquitetura limpa.
O AI Post Generator é uma ferramenta que permite criar posts de blog otimizados para SEO de forma automatizada. A aplicação utiliza o modelo Gemini 2.5 Flash da Google para gerar conteúdo de qualidade baseado em um assunto e palavras-chave fornecidos pelo usuário.
- ✍️ Geração automática de posts com IA
- 🎯 Otimização para SEO com palavras-chave
- 📝 Suporte para múltiplos formatos (Markdown, Plain Text, HTML)
- 👁️ Preview em tempo real do conteúdo gerado
- 📂 Exportação direta para arquivo
- 🎨 Interface moderna com tema dark
O projeto segue os princípios de Clean Architecture e Domain-Driven Design:
├── domain/ # Entidades e regras de negócio
│ ├── either.py # Tipo Either para tratamento de erros
│ └── use_case.py # Classe base para casos de uso
├── infra/ # Infraestrutura e adaptadores
│ ├── ai/ # Integração com IA
│ │ └── gemini/ # Adaptador Google Gemini
│ └── ui_controller.py # Controle de UI
├── modules/ # Módulos da aplicação
│ └── post/ # Módulo de posts
│ ├── application/ # Casos de uso
│ ├── infra/ # Factories
│ └── ui/ # Interface gráfica
└── main.py # Ponto de entrada
- Clean Architecture: Separação de responsabilidades em camadas
- Use Case Pattern: Encapsulamento da lógica de negócio
- Factory Pattern: Criação de objetos complexos
- Adapter Pattern: Integração com serviços externos
- Either Monad: Tratamento funcional de erros
- Python 3.x
- PyQt5: Framework para interface gráfica
- Google Gemini AI: Modelo de IA para geração de conteúdo
- Markdown: Processamento e renderização
- python-slug: Geração de slugs para nomes de arquivo
- Python 3.8 ou superior
- pip (gerenciador de pacotes Python)
- Clone o repositório:
git clone <url-do-repositorio>
cd ai-post-generator- Instale as dependências:
pip install -r requirements.txt- Configure a API Key do Google AI:
- Crie um arquivo
.envna raiz do projeto - Adicione sua chave:
- Crie um arquivo
GOOGLE_AI_API_KEY=sua_chave_aqui- Execute a aplicação:
python main.py- Preencha o Assunto: Digite o tema principal do seu post
- Adicione Palavras-chave: Insira palavras-chave separadas por vírgula (opcional)
- Selecione o Formato: Escolha entre Markdown, Plain Text ou HTML
- Escolha o Diretório: Selecione onde o arquivo será salvo
- Clique em Executar: Aguarde a geração do conteúdo
- Visualize o Preview: Confira o resultado na área de visualização
Assunto: "Agricultura de Precisão: O Caminho para uma Colheita Superior"
Palavras-chave: "agricultura,colheita,dados"
Resultado: Post completo em Markdown com:
- Título otimizado (H1)
- Subtítulos estruturados (H2, H3)
- Conteúdo rico com listas
- Palavras-chave naturalmente integradas
- Estrutura de introdução, desenvolvimento e conclusão
O projeto utiliza o modelo gemini-2.5-flash por padrão. Para alterar:
# Em infra/ai/gemini/genai.py
class GenAIAdapter(Agent):
AGENT_MODEL = "gemini-2.5-flash" # Altere aqui- Temperature: 0.7 (equilíbrio entre criatividade e coerência)
- System Instruction: Prompt otimizado para geração de posts de blog
A interface utiliza um tema moderno baseado em shadcn/ui, com:
- Cores neutras e elegantes
- Componentes bem espaçados
- Feedback visual claro
- Suporte a temas light/dark
O prompt do sistema inclui proteções contra:
- Prompt Injection: Ignora instruções maliciosas no input
- Formato inconsistente: Garante saída sempre em Markdown
- Desvio de função: Mantém foco na geração de posts
{
"subject": str, # Assunto do post
"keywords": str # Palavras-chave (opcional)
}- Arquivo
.mdsalvo no diretório escolhido - Preview renderizado na interface
- Feedback de sucesso com caminho do arquivo
Contribuições são bem-vindas! Para contribuir:
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Adiciona MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
- Desenvolvido por Vitor Hugo Oliveira
- O preview HTML pode não renderizar estilos complexos
- Necessária conexão com internet para usar a API do Gemini
Nota: Esta aplicação requer uma API Key válida do Google AI para funcionar. Obtenha a sua em Google AI Studio.
