--- 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

Peace Chatbot Logo

Licença customizada para uso educativo Licença: Não Comercial Hugging Face Spaces Python 3.10 Gradio 4.0 Status Ativo

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)
Clique para expandir as demais Interfaces do Peace Chatbot *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)
--- ## ✨ 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
Clique para expandir o guia passo a passo detalhado #### 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.)
--- ## 🛠️ 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.