peace-chatbot / README.md
wpbcpaz's picture
Update README.md
b29c045 verified
---
title: Peace Chatbot
emoji: 📚
colorFrom: blue
colorTo: gray
sdk: gradio
sdk_version: 5.49.1
app_file: app.py
pinned: true
hf_oauth: true
hf_oauth_scopes:
- inference-api
thumbnail: >-
https://cdn-uploads.huggingface.co/production/uploads/68d5789accf464a96aad3811/XvUZJReyjnkQteBk82VEG.png
short_description: Peace Chatbot Gerador de Posts com Inteligência Artificial
---
# 🕊️ Peace Chatbot – Gerador de Posts com Inteligência Artificial
<p align="center">
<img src="https://cdn-uploads.huggingface.co/production/uploads/68d5789accf464a96aad3811/XvUZJReyjnkQteBk82VEG.png" alt="Peace Chatbot Logo" width="250"/>
</p>
<p align="center">
<a href="./LICENSE">
<img src="https://img.shields.io/badge/license-Custom-blue.svg" alt="Licença customizada para uso educativo">
</a>
<a href="./LICENSE">
<img src="https://img.shields.io/badge/uso-não%20comercial-important" alt="Licença: Não Comercial">
</a>
<a href="https://huggingface.co/spaces/wpbcpaz/peace-chatbot">
<img src="https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Spaces-yellow" alt="Hugging Face Spaces">
</a>
<a href="https://www.python.org/downloads/release/python-3100/">
<img src="https://img.shields.io/badge/Python-3.10-blue?logo=python" alt="Python 3.10">
</a>
<a href="https://www.gradio.app/">
<img src="https://img.shields.io/badge/Gradio-4.0-orange" alt="Gradio 4.0">
</a>
<a href="https://huggingface.co/spaces/wpbcpaz/peace-chatbot">
<img src="https://img.shields.io/badge/Status-Ativo-success" alt="Status Ativo">
</a>
</p>
Um assistente de mídias sociais inovador que utiliza inteligência artificial generativa para desenvolver posts, legendas e imagens, maximizando sua presença digital. Perfeito para criadores de conteúdo, profissionais de mídia social e qualquer pessoa interessada em transmitir narrativas de paz, ancestralidade e transformação.
> **Inspiração:** Este projeto nasce da vontade de aprender sobre tecnologia através do curso de Hugging Face e IA. A inteligência artificial aqui é usada como ferramenta para fortalecer narrativas de paz, ancestralidade, sabedoria e transformação pessoal — com liberdade para explorar nichos diversos.
---
## 🚀 Demonstração Interativa
### 🔗 Experimente Agora
**Acesse e teste o chatbot diretamente no Hugging Face Spaces:**
**[➡️ Abrir no Hugging Face Spaces](https://huggingface.co/spaces/wpbcpaz/peace-chatbot)**
### 🎬 Veja Funcionando
![Demo Animado](https://i.imgur.com/6ivsMup.gif)
*5 cliques: nicho → estilo → tema → formato → gerar post!*
### 📸 Interface
*Interface limpa e profissional*
![Interface Principal](https://i.imgur.com/JUfWstq.jpeg)
<details>
<summary><b>Clique para expandir as demais Interfaces do Peace Chatbot</b></summary>
*Interface aproximada da funcionalidade *Gerar Post**
![Gerar Post](https://i.imgur.com/Ld57qQ5.jpeg)
*Interface aproximada do texto e imagem gerados*
![Resultado](https://i.imgur.com/Gk7cDtR.jpeg)
*Exemplos para experimentar de posts gerados*
![Exempos Posts gerados](https://i.imgur.com/8Vquq9f.jpeg)
*Interface do Histórico de Posts*
![Histórico de Posts](https://i.imgur.com/p9NbNeE.jpeg)
*Interface do Analytics com estatísticas básicas da aplicação*
![Analytics](https://i.imgur.com/ZTRyYul.jpeg)
</details>
---
## ✨ Funcionalidades Principais
* 📝 **Geração de Texto Personalizada:** Crie posts com estilos variados (informal, poético, educativo, etc.).
* 🎨 **Criação de Imagens com IA:** Gere uma imagem ilustrativa opcional para acompanhar seu texto.
* 🎯 **Suporte a Nichos Diversos:** Explore temas como cultura, espiritualidade, educação, motivação, autoconhecimento e muito mais.
* 📋 **Cópia Fácil:** Um botão dedicado para copiar o texto gerado com um único clique.
* 🎨 **Interface Intuitiva:** Um design limpo e agradável construído com o tema `Glass` do Gradio.
---
## 💻 Como Utilizar
<details>
<summary><b>Clique para expandir o guia passo a passo detalhado</b></summary>
#### 1️⃣ Escolha o Nicho
![Passo 1](https://i.imgur.com/zTOOJ4r.gif)
Escolha uma categoria que será o nicho do seu post.
* 💪 Fitness e Vida Saudável
* 🥗 Alimentação
* 🧠 Motivação e Desenvolvimento Pessoal
* 💼 Negócios
* ✈️ Viagens
* 💻 Tecnologia
#### 2️⃣ Selecione o Estilo
![Passo 2](https://i.imgur.com/CY90HzL.gif)
Defina o tom do texto:
***Inspirador** - Motivacional
* 📚 **Educativo** - Informativo
* 😄 **Divertido** - Descontraído
* 👔 **Profissional** - Técnico
#### 3️⃣ Defina um Tema para o Post
![Passo 3](https://i.imgur.com/CY90HzL.gif)
Seja específico sobre o que você quer falar.
*Exemplo: "Frases marcantes de pessoas importantes", "Empreender informalmente no Brasil", "Gratidão", "Axé".*
#### 4️⃣ Defina um Formato de saída para o Post
![Passo 4](https://i.imgur.com/H9NWWPq.gif)
Esolha um Formato de Saída desejado, conforme desejado.
*Exemplo: "Instagram (Post)", "Twitter/X (Curto)", "LinkedIn (Artigo)" ou "WhatsApp"*
#### 5️⃣ Configure a Imagem (Opcional)
![Passo 5](https://i.imgur.com/65RzVrY.gif)
* ☑️ Marque "Gerar imagem"
* 📝 Descreva a imagem (ex: "pessoa fazendo uma atividade na frente do computador")
* 🖼️ Escolha o estilo: Pixar / Quente / Fotografia Vintage / Arte digital
* ⏱️ Escolha a qualidade da imagem entre "Rápida", "Balanceada" ou "Alta"
* 🌈 Escolha o filtro da Imagem: (ex: Quente / Preto e Branco / Sépia)
#### 6️⃣ Clique em Gerar Post
![Passo 6](https://i.imgur.com/qPAop0d.gif)
Clique no botão grande: **"✨ Gerar Post Completo"**
*⏳ Aguarde 10-30 segundos...*
#### 7️⃣ Use o Resultado!
![Passo 7](https://i.imgur.com/jG9uVhO.gif)
Você recebe:
* ✅ Legenda completa
* ✅ Imagem profissional
* ✅ Botão de download
* ✅ Estatísticas
**Próximos passos:**
1. 📋 **Copie** o texto (use o botão de cópia).
2. 💾 **Baixe** a imagem.
3. 📱 **Publique!** (Instagram, Facebook, LinkedIn, etc.)
</details>
---
## 🛠️ Pilha Tecnológica (Tech Stack)
* **Interface:** 🎨 `Gradio 4.x` - Para a interface web interativa.
* **Linguagem:** 🐍 `Python 3.10`
* **Bibliotecas:** 🖼️ `Pillow` (para imagens), 📡 `Requests` (para APIs).
* **Hospedagem:** ☁️ `Hugging Face Spaces` (com Docker).
* **Armazenamento:** 💾 `JSON` (para dados locais e cache).
### Modelos de IA (via Inference API)
* **Geração de Texto:** 📝 `meta-llama/Llama-3.1-8B-Instruct`
* **Geração de Imagem:** 🎨 `black-forest-labs/FLUX.1-schnell`
* **Tradução (para prompt de imagem):** 🌍 `Opus-mt-pt-en` (Helsinki-NLP)
---
## 🔮 Roadmap (Próximos Passos)
O projeto está em constante evolução!
### ✅ v1.0
- [x] Geração de texto com IA
- [x] Geração de imagem com IA
- [x] Sistema de cache simples
- [x] Histórico de posts gerados
- [x] Analytics (visualizações)
### ✅ v2.0
- [x] Exportar histórico para CSV
- [x] Persistência em Nuvem via Firebase
- [x] Adicionar mais 10+ nichos e estilos
- [x] Editor de texto inline (para refinar o post)
- [x] Tradução do Português para o inglês, a fim de melhorar o prompt de imagem
### ✅ v3.0
- [x] Download do Post (ZIP)
- [x] Editor de Texto Inline
- [x] Download Apenas da Imagem
- [x] Filtros de Imagem
### 🔮 v4.1 (Atual)
- [x] Seleção de Modelo de Imagem
- [x] Parâmetros de Qualidade da Imagem
- [x] Estilos de Imagem por Nicho
- [x] Cálculo de Metadados
- [x] Visualização do Histórico (Markdown)
- [x] Correções de Bugs e Tarefas Técnicas
- [x] Codificação CSV (UTF-8)
- [x] Nomes de Arquivo para Download Padrão
### 🚧 v5.0 (Planejado)
- [ ] Preview de como o post ficará no Instagram
- [ ] Integração com API do Instagram (agendamento)
- [ ] Suporte multi-idioma (tradução automática)
- [ ] Sistema de templates (ex: "Post de TBT", "Dica Rápida")
- [ ] Sugestões de Hashtags e análise de engajamento
## 🤝 Como Contribuir
Contribuições são muito bem-vindas! Você pode colaborar de duas formas:
### 1. Via Hugging Face (Recomendado para sugestões)
1. **Acesse o Space:** [https://huggingface.co/spaces/wpbcpaz/peace-chatbot](https://huggingface.co/spaces/wpbcpaz/peace-chatbot)
2. Clique em **“⋮”** (menu de opções) e selecione **“Duplicate this Space”**.
3. Edite o código no seu Space duplicado (na aba "Files").
4. Teste suas alterações e envie o link do seu Space para mim com a descrição da melhoria.
### 2. Via GitHub (Para contribuições de código)
```bash
# 1. Clone o repositório
git clone [https://github.com/wilderpaz/peace-chatbot.git](https://github.com/wilderpaz/peace-chatbot.git)
# 2. Crie sua branch
git checkout -b feature/minha-feature
# 3. Faça commit das suas mudanças
git commit -m "feat: Adiciona nova funcionalidade incrível"
# 4. Envie para o GitHub
git push origin feature/minha-feature
# 5. Abra um Pull Request
````
-----
## 💻 Configuração Local
Para rodar o projeto na sua máquina:
### 🖥️ Instalação
```bash
# 1. Clone o repositório
git clone [https://github.com/wilderpaz/peace-chatbot.git](https://github.com/wilderpaz/peace-chatbot.git)
# 2. Navegue até o diretório
cd peace-chatbot
# 3. Instale as dependências
pip install -r requirements.txt
# 4. Execute a aplicação
python app.py
```
### 🐞 Erros Comuns e Soluções
***`NameError: name 'custom_theme' is not defined`**
* **Solução:** Defina a variável `custom_theme` *antes* de usá-la no `gr.Blocks`.
* ❌ **`TypeError: Textbox.__init__() got an unexpected keyword argument 'copyable'`**
* **Solução:** Este argumento requer Gradio 4.x. Atualize sua versão: `pip install --upgrade gradio`.
***`TypeError: event_trigger() got an unexpected keyword argument '_js'`**
* **Solução:** O argumento `_js` foi depreciado no Gradio 4.x. Use `copyable=True` no `gr.Textbox` ou implemente um botão de cópia com `gr.Button` e `gr.Clipboard`.
-----
## 👤 Sobre o Autor
Olá, sou **Wilder Paz**, desenvolvedor e entusiasta de IA apaixonado por criar soluções que unem tecnologia e marketing digital.
* **GitHub:** [@wilderpaz](https://github.com/wilderpaz)
* **LinkedIn:** [Wilder Paz](https://www.linkedin.com/in/wilderpaz)
* **Hugging Face:** [@wpbcpaz](https://huggingface.co/wpbcpaz)
Criado em 📍 Salvador, Bahia, Brasil.
-----
## ❓ FAQ (Perguntas Frequentes)
**O chatbot funciona em português?**
* Sim! Ele foi otimizado para interagir em português, com foco em redes sociais brasileiras.
**Posso usar para criar posts de qualquer nicho?**
* Sim! Embora tenhamos pré-seleções (como Fitness, Tecnologia, etc.), você pode definir qualquer assunto no campo **"Tema do Post"** para gerar conteúdo especializado.
**Quanto tempo demora para gerar um post?**
* Geralmente, um post completo (texto e imagem) é gerado em **10 a 30 segundos**. O tempo pode variar dependendo da complexidade do pedido e da carga atual nos modelos de IA.
**Preciso gerar uma imagem com todo post?**
* Não. A geração de imagem é **totalmente opcional**. Para gerar apenas o texto, simplesmente deixe a caixa "Gerar imagem" desmarcada.
**Qual a diferença entre "Nicho", "Estilo" e "Tema"?**
* **Nicho:** É a categoria geral do seu conteúdo (ex: "Negócios").
* **Estilo:** É o tom de voz do texto (ex: "Profissional").
* **Tema:** É a sua instrução específica sobre o que escrever (ex: "A importância do networking para pequenas empresas"). Um tema bem detalhado gera resultados melhores.
**A imagem gerada não tem a ver com meu texto. Por quê?**
* A IA que gera a imagem se baseia **apenas** no que você escreve no campo **"Descrição da imagem"**, e não no texto do post. Para melhores resultados, seja descritivo nesse campo (ex: "Um aperto de mão fechando um negócio em um escritório moderno").
**Posso editar o texto depois que ele é gerado?**
* Ainda não diretamente na aplicação. A funcionalidade **"Editor de Texto Inline"** está planejada (conforme o Roadmap v1.1). Por enquanto, você pode usar o botão "📋 Copiar Texto" e colar o conteúdo em qualquer editor de sua preferência (como Bloco de Notas, Google Docs, etc.) para fazer ajustes.
**Como faço para baixar o texto e a imagem juntos?**
* Atualmente, você precisa copiar o texto e baixar a imagem separadamente. A funcionalidade de **"Download do Post (.zip)"**, que unirá os dois arquivos, é uma melhoria futura que está em nossa lista de tarefas.
**O chatbot pode agendar ou postar diretamente no meu Instagram?**
* Ainda não. Essa funcionalidade ("Integração com API do Instagram") é um recurso avançado planejado para a **versão 3.0** do projeto.
**O uso do Peace Chatbot é gratuito?**
* Sim. Este projeto é disponibilizado para **uso pessoal, educacional e de pesquisa** na plataforma Hugging Face Spaces.
**Apareceu um "Erro 402". O que isso significa?**
* Isso geralmente indica que a aplicação atingiu um limite de uso (rate limit) na plataforma Hugging Face, talvez por um número muito alto de acessos simultâneos. Por favor, **aguarde alguns minutos e tente gerar seu post novamente**.
-----
## 📜 Licença
[![License: Custom](https://img.shields.io/badge/license-Custom-blue.svg)](./LICENSE)
[![Status](https://img.shields.io/badge/uso-não%20comercial-important)](./LICENSE)
Este projeto é disponibilizado para **uso pessoal, educacional e de pesquisa**.
O **uso comercial é proibido sem autorização prévia e por escrito do autor**.
Consulte o arquivo [LICENSE](./LICENSE) para mais detalhes.
-----
## 📝 Lista de Tarefas e Melhorias - Peace Chatbot
### 🚀 Novas Funcionalidades Principais
* **Download do Post (ZIP):** Implementar um botão "Baixar Post (.zip)" que crie um arquivo ZIP contendo o `post.txt` (codificado em UTF-8) e a `imagem.png`.
* **Editor de Texto Inline:** Adicionar um botão "✏️ Refinar Post" que torne a caixa de texto de saída (`output_post`) interativa (`interactive=True`) para permitir edições rápidas.
* **Download Apenas da Imagem:** Adicionar um botão dedicado para fazer o download somente da imagem gerada (ex: `imagem.png`).
* **Filtros de Imagem:** Criar uma nova opção para que o usuário possa aplicar filtros na imagem gerada (ex: preto e branco, escala de cinza, azul, rosa, etc.).
---
### 🖼️ Melhorias na Geração de Imagem
* **Seleção de Modelo de Imagem:** Permitir que o usuário escolha qual modelo de IA usar para a geração da imagem (ex: FLUX.1-schnell, FLUX.1-dev, Stable Diffusion XL).
* **Parâmetros de Qualidade da Imagem:** Implementar uma configuração de qualidade (ex: "rápida", "balanceada", "alta") que ajuste os parâmetros de geração (como `steps` e quais modelos tentar).
* **Estilos de Imagem por Nicho:** Expandir a funcionalidade `estilos_por_nicho` para cobrir os demais nichos, mantendo a tradução interna para o inglês para otimizar o prompt.
---
### 📊 Refatoração do Histórico e Estatísticas
* **Cálculo de Metadados:** Na função principal de geração, calcular e salvar estatísticas para cada post:
* Quantidade de palavras
* Quantidade de caracteres
* Quantidade de hashtags (`#`)
* **Visualização do Histórico (Markdown):** Substituir a exibição do histórico de `gr.DataFrame` para `gr.Markdown`, formatando cada entrada com os novos metadados (Tema, Data/Hora, Nicho, Estilo, Formato, Estatísticas).
* **Cores Dinâmicas no Histórico:** Na função `_formatar_historico_para_html`, adicionar parâmetros de `background` baseados no nicho, usando cores escuras e texto claro para garantir o contraste.
* **Formato de Saída "WhatsApp":** Adicionar "WhatsApp" como opção no `gr.Dropdown` de 'Formato', instruindo o LLM a usar a formatação nativa (ex: `*negrito*`, `_itálico_`).
* **Exportação para CSV:** Adicionar um botão "Exportar Histórico para CSV" que converta os dados do histórico (`gr.State`) em um arquivo CSV para download.
* **Emojis nas Estatísticas:** Adicionar emojis aos rótulos do componente de Estatísticas do Texto (ex: 📝 Palavras, 📏 Caracteres, #️⃣ Hashtags).
---
### 🎨 Melhorias de UI/UX e Textos
* **`gr.Examples` Avançado:** Atualizar os `gr.Examples` para que um clique preencha não apenas o Tema e Nicho, mas também todas as configurações de imagem relacionadas (checkboxes, dropdowns, rádios, etc.).
* **Botão "Limpar Tudo":** Implementar um botão para limpar o campo "Tema do Post" e resetar os demais campos para seus valores padrão.
* **Emojis na Interface:** Inserir um emoji que combine com o rótulo de cada campo/componente da aplicação para melhorar a identificação visual.
* **Estilização de Títulos:** Aplicar um `background` destacado (mas dentro da paleta de cores do tema) para cada título de seção/grupo no app.
* **Organização da Interface (Layout):** Melhorar o UX/UI separando os componentes em `gr.Group` e usando `gr.Markdown("")` como espaçadores visuais.
* **Limpeza de Textos (UI):**
* Na área de exemplos, remover "(Velocidade vs Qualidade)".
* Alterar "Gerar imagem para o post?" para "Gerar imagem".
* Simplificar "⚡ Usar Cache? (Acelera posts repetidos)" para "⚡ Usar Cache?".
* **Limpeza de Emojis (Input):** Retirar os emojis da lista de `nichos_diponiveis`.
* **Limpeza de Botões (Gradio):** Remover os botões `clear_btn`, `retry_btn`, e `undo_btn` (que não estão funcionando ou não são necessários).
---
### 🔧 Correções de Bugs e Tarefas Técnicas
* **Correção do Botão "Copiar Texto":** O botão para copiar o texto gerado não está funcionando e precisa ser retificado.
* **Persistência em Nuvem (Firebase):** Implementar o `firebase-admin` para salvar os dados (como o histórico de posts) na nuvem.
* **Corrigir Data/Hora (Fuso Horário):** Implementar `ZoneInfo` para garantir que as datas/horas sejam salvas no fuso horário local correto.
* **Implementar "Limpar Cache":** Adicionar o botão "🗑️ Limpar Cache" e conectar as funções `limpar_cache` e `limpar_cache_feedback`.
* **Formatação de Saída .txt:** Ao implementar o download ZIP, garantir que o arquivo `post.txt` seja salvo com codificação **UTF-8** para preservar acentos, emojis e caracteres especiais.
* **Remover Parâmetro de Chat:** Retirar o parâmetro `bubble_full_width`.
* **Investigar Erro 402:** Registrar que o uso intensivo do Space está gerando um erro 402 (Payment Required / Rate Limit), o que pode exigir monitoramento ou otimização.
* **Codificação CSV (UTF-8):** Modificada a função exportar_historico_csv para escrever o arquivo CSV diretamente com encoding='utf-8' e newline='', o que garante a formatação correta de todos os caracteres especiais e emojis.
* **Nomes de Arquivo Padrão:** Os arquivos de download agora são salvos com os nomes postpeacechatbot001.zip e posthistpeacechatbot001.csv no diretório de cache antes de serem oferecidos para download, garantindo nomes consistentes.
---
### 📚 Expansão de Conteúdo (Novos Nichos)
* **Educação:** Tutor interativo (matemática, ciências, idiomas), quizzes.
* **Produtividade:** Organizador de tarefas, técnicas de foco (Pomodoro), listas.
* **Entretenimento:** Histórias curtas, jogos de perguntas e respostas, poemas/piadas.
* **Relacionamentos & Comunicação:** Simulação de entrevistas, treino de conversação, dicas de comunicação não violenta.
* **Espiritualidade & Filosofia:** Frases inspiradoras, reflexões diárias, guia de *journaling*.
* **Dicas Jurídicas e de Segurança Pública:** Dicas sobre ilícitos (baseadas nas leis brasileiras), sugestão de consultas e lembrete de atualização.