Spaces:
Sleeping
Sleeping
| 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 | |
|  | |
| *5 cliques: nicho → estilo → tema → formato → gerar post!* | |
| ### 📸 Interface | |
| *Interface limpa e profissional* | |
|  | |
| <details> | |
| <summary><b>Clique para expandir as demais Interfaces do Peace Chatbot</b></summary> | |
| *Interface aproximada da funcionalidade *Gerar Post** | |
|  | |
| *Interface aproximada do texto e imagem gerados* | |
|  | |
| *Exemplos para experimentar de posts gerados* | |
|  | |
| *Interface do Histórico de Posts* | |
|  | |
| *Interface do Analytics com estatísticas básicas da aplicação* | |
|  | |
| </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 | |
|  | |
| 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 | |
|  | |
| Defina o tom do texto: | |
| * ✨ **Inspirador** - Motivacional | |
| * 📚 **Educativo** - Informativo | |
| * 😄 **Divertido** - Descontraído | |
| * 👔 **Profissional** - Técnico | |
| #### 3️⃣ Defina um Tema para o Post | |
|  | |
| 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 | |
|  | |
| Esolha um Formato de Saída desejado, conforme desejado. | |
| *Exemplo: "Instagram (Post)", "Twitter/X (Curto)", "LinkedIn (Artigo)" ou "WhatsApp"* | |
| #### 5️⃣ Configure a Imagem (Opcional) | |
|  | |
| * ☑️ 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 | |
|  | |
| Clique no botão grande: **"✨ Gerar Post Completo"** | |
| *⏳ Aguarde 10-30 segundos...* | |
| #### 7️⃣ Use o Resultado! | |
|  | |
| 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) | |
| [](./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. |