Projeto •
Proposta •
Protótipo •
Backlog do Produto •
Sprints •
Equipe
Status do Projeto: Em andamento
- O projeto consiste no desenvolvimento de um chatbot baseado em Inteligência Artificial generativa, voltado para a análise de dados comerciais e feedbacks de clientes. O principal objetivo é facilitar a interpretação dos dados qualitativos (comentários e depoimentos de consumidores) sem a necessidade de utilizar dashboards complexos ou gráficos. O chatbot será capaz de responder perguntas específicas sobre o desempenho de produtos e a opinião dos consumidores, oferecendo respostas em linguagem natural e de forma clara, objetiva e direta.
Requisitos Funcionais
- RF1: Consulta de descrições de produtos:
- Permitir que os usuários consultem descrições detalhadas dos produtos disponíveis.
- RF2: Análise de sentimento dos produtos:
- Realizar análise de sentimento nas avaliações dos produtos para identificar percepções positivas, negativas e neutras.
- RF3: Análise de avaliações dos produtos:
- Oferecer insights sobre as avaliações dos produtos, incluindo médias e tendências ao longo do tempo.
- RF4: Análise de perfis de consumo por Idade e por Sexo:
- Examinar padrões de consumo e preferências de produtos com base na faixa etária dos usuários e com o sexo dos usuários.
- RF5: Análise de Preferências por Região e por Categoria:
- Consultar a variação nas escolhas de produtos com base na localização dos usuários e explorar as melhores opções em categorias específicas, com informações sobre os produtos mais vendidos e avaliações, auxiliando os clientes na tomada de decisões informadas na hora da compra.
Requisitos Não Funcionais
- RNF1 - BD Vetorial ChromaDB
- RNF2 - Modelos LLM: llama3-8b-8192 - LLM de geração de texto, sentence-transformers/all-MiniLM-L6-v2 - LLM para geração de embeddings
- RNF3 - Framework Langchain
- RNF4 - Vídeo-tutorial
🔗 Clique no link abaixo para visualizar o modelo do projeto.
| Rank | Prioridade | User Story | Estimativa (Planning Poker) | Sprint | Requisito do Parceiro |
|---|---|---|---|---|---|
| 1 | Alta | Como gerente de analytics, quero que o chatbot organize os dados de avaliações, associando-os a produtos específicos, para que eu possa ter uma visão estruturada das opiniões dos consumidores e assim possa criar estratégias sobre quais produtos devo investir. | 5 | 1 | RF3 |
| 2 | Alta | Como gerente de analytics, quero interagir com o chatbot com perguntas relacionadas a avaliações de produtos e receber respostas claras e diretas, baseadas nas reviews dos clientes, para diminuir o tempo gasto com análises manuais. | 3 | 1 | RF3, RNF2 |
| 3 | Alta | Como gerente de analytics, quero que o chatbot seja treinado com base nos dados de reviews armazenados para fornecer insights precisos sobre o desempenho dos produtos, para que eu tenha uma visão estratégica de quais medidas tomar com base nas opiniões dos consumidores. | 2 | 1 | RF3, RNF1 |
| 4 | Média | Como gerente de analytics, quero que o chatbot entenda e processe os comentários dos clientes para gerar análises relevantes, para que eu possa avaliar a opinião geral sobre um produto e tomar decisões administrativas sobre eles. | 5 | 2 | RF2 |
| 5 | Média | Como gerente de analytics, quero que o chatbot seja ágil e preciso na hora de fornecer respostas para que eu receba resultados confiáveis sobre os produtos avaliados. | 3 | 2 | RNF1, RNF2 |
| 6 | Baixa | Como gerente de analytics, quero acessar o chatbot através de uma interface web amigável, onde posso digitar perguntas sobre produtos de forma simples e receber respostas naturais relacionadas às avaliações. | 8 | 3 | RF3, RNF3 |
| 7 | Baixa | Como gerente de analytics, quero que o chatbot examine padrões de consumo e preferências de produtos com base na faixa etária e sexo dos usuários. | 2 | 3 | RF4 |
| 8 | Baixa | Como gerente de analytics, quero consultar a variação nas escolhas de produtos por região e categoria, fornecendo informações sobre os produtos mais vendidos e avaliados para ajudar na tomada de decisões. | 5 | 3 | RF5 |
Ferramenta usada para gestão: https://www.atlassian.com/br/software/jira
Sprint 1
Nesta sprint, focamos em entregar o MVP do nosso chatbot, permitindo consultas diretas sobre as avaliações de produtos da base de dados do Hugging Face. Clique aqui e acesse a base de dados usada
USER STORY 1
- Descrição: Como gerente de analytics, quero que o chatbot organize os dados de avaliações, associando-os a produtos específicos, para que eu possa ter uma visão estruturada das opiniões dos consumidores e assim possa criar estratégias sobre quais produtos devo investir.
- Critérios de Aceitação:
- O chatbot deve conseguir associar cada avaliação ao produto correspondente, garantindo que as opiniões sejam classificadas corretamente.
- O chatbot deve apresentar as informações de forma estruturada e organizada, facilitando a visualização dos dados por produto.
- As associações feitas pelo chatbot devem ser precisas, com uma taxa de erro inferior a 5%.
USER STORY 2
- Descrição: Como gerente de analytics, quero interagir com o chatbot com perguntas relacionadas a avaliações de produtos e receber respostas claras e diretas, baseadas nas reviews dos clientes, para diminuir o tempo gasto com análises manuais.
- Critérios de Aceitação:
- O chatbot deve ser capaz de responder perguntas relacionadas a avaliações de produtos com clareza e objetividade, sem necessidade de ajustes adicionais.
- As respostas devem ser baseadas exclusivamente nos dados de reviews armazenados, sem interpretações que distorçam as opiniões dos consumidores.
- O tempo de resposta do chatbot deve ser inferior a 3 segundos por pergunta, garantindo agilidade no processo de análise.
USER STORY 3
- Descrição: Como gerente de analytics, quero que o chatbot seja treinado com base nos dados de reviews armazenados para fornecer insights precisos sobre o desempenho dos produtos, para que eu tenha uma visão estratégica de quais medidas tomar com base nas opiniões dos consumidores.
- Critérios de Aceitação:
- O chatbot deve ser treinado com uma base de dados de reviews que permita fornecer insights detalhados e precisos sobre o desempenho de produtos.
- Os insights gerados devem incluir análises de tendências e pontos críticos dos produtos, baseados nas avaliações dos consumidores.
- A precisão dos insights gerados pelo chatbot deve ser de, no mínimo, 90%, conforme verificado em um conjunto de dados de teste.
Clique aqui e assista ao vídeo da entrega no YouTube
Review Chatbot: https://github.com/user-attachments/assets/2e83f628-fa21-4108-9493-0c18388f0e2a
Sprint 2
Realizar a análise de sentimentos dos produtos de forma mais eficiente, utilizando o ChromaDB e LangChain, gerando descrições de produtos mais coesas com o uso do modelo LLaMA. Clique aqui e acesse a base de dados usada
USER STORY 4
- Descrição: Como gerente de analytics, quero que o chatbot entenda e processe os comentários dos clientes para gerar análises relevantes, para que eu possa avaliar a opinião geral sobre um produto e tomar decisões administrativas sobre eles.
- Critérios de Aceitação:
- O chatbot deve ser capaz de interpretar e analisar os comentários dos clientes, identificando sentimentos positivos, negativos e neutros.
- As análises geradas devem incluir uma visão geral do sentimento sobre cada produto, permitindo uma avaliação rápida das opiniões.
- O sistema deve fornecer métricas que resumam a opinião geral dos consumidores, auxiliando na tomada de decisão administrativa.
USER STORY 5
- Descrição: Como gerente de analytics, quero que o chatbot seja ágil e preciso na hora de fornecer respostas para que eu receba resultados confiáveis sobre os produtos avaliados.
- Critérios de Aceitação:
- O chatbot deve ser capaz de processar consultas e fornecer respostas em menos de 5 segundos.
- A precisão das respostas do chatbot deve ser de, no mínimo, 90%, garantindo que as informações retornadas sejam confiáveis e baseadas nos dados de reviews.
- O chatbot deve manter consistência nas respostas, apresentando resultados idênticos para consultas semelhantes ou repetidas.
Clique aqui e assista ao vídeo da entrega no YouTube
Review Interface navegável: https://github.com/user-attachments/assets/118f449f-61f3-41b5-963e-4142675729ce
Review Chatbot: https://github.com/user-attachments/assets/8410b7cd-e990-49e4-8a72-b67102cdbc53
Sprint 3
Realizar a análise detalhada de perfis de consumo por faixa etária e sexo, examinando padrões de compra e preferências de produtos, enquanto também investigamos as variações regionais nas escolhas de produtos e categorias, oferecendo dados sobre os itens mais vendidos e avaliações. Essas análises serão integradas a uma interface funcional. Clique aqui e acesse a base de dados usada
USER STORY 6
-
Descrição: Como gerente de analytics, quero acessar o chatbot através de uma interface web amigável, onde posso digitar perguntas sobre produtos de forma simples e receber respostas naturais relacionadas às avaliações.
-
Critérios de Aceitação:
- A interface deve ser intuitiva e acessível, permitindo interação sem necessidade de conhecimento técnico.
- O chatbot deve responder com clareza e relevância, utilizando linguagem natural.
- O sistema deve garantir respostas consistentes e baseadas nos dados de avaliações armazenados.
- O tempo de resposta para as consultas deve ser inferior a 5 segundos.
USER STORY 7
- Descrição: Como gerente de analytics, quero que o chatbot examine padrões de consumo e preferências de produtos com base na faixa etária e sexo dos usuários, para que eu tenha insights sobre os comportamentos de compra dos consumidores.
- Critérios de Aceitação:
- O chatbot deve identificar padrões de consumo com base na faixa etária e sexo dos consumidores.
- A análise deve incluir categorias de produtos preferidos e itens mais comprados para cada grupo.
- As informações geradas devem ser apresentadas de forma clara e visual, como gráficos ou tabelas.
USER STORY 8
-
Descrição: Como gerente de analytics, quero consultar a variação nas escolhas de produtos por região e categoria, fornecendo informações sobre os produtos mais vendidos e avaliados para ajudar na tomada de decisões.
-
Critérios de Aceitação:
- O chatbot deve segmentar os dados de consumo por regiões, exibindo variações entre categorias de produtos.
- Deve ser possível identificar os itens mais vendidos e mais avaliados em cada região.
- O sistema deve gerar insights visuais (como mapas ou gráficos) que facilitem a interpretação dos dados regionais.
Clique aqui e assista ao vídeo da entrega no YouTube
Membros
| Nome | Função | GitHub |
|---|---|---|
| Thiago Bueno | Scrum Master | |
| Elisa Carvalho | Product Owner | |
| Rebeca Gama | Developer Team | |
| João Gabriel | Developer Team | |
| Diane Alves | Developer Team | |
| Rita Hecht | Developer Team |
📄 Estrutura do Código
Introdução ao Gitflow
O Gitflow é um modelo escalável de gerenciamento de branches para projetos Git. Ele é amplamente utilizado em desenvolvimento de software para gerenciar diferentes linhas de desenvolvimento, tornando os processos de release mais claros e gerenciáveis.
Branches Principais
- Master: A branch master armazena o código oficial de release do projeto. Toda nova versão consolidada e testada é mergeada nessa branch e, posteriormente, taggeada com uma versão.
- Develop: A branch develop serve como uma branch de integração para features. Ela contém o estado mais recente das mudanças destinadas à próxima release.
Branches de Suporte
- Feature: Branches feature são criadas a partir da branch develop. Cada branch feature é destinada ao desenvolvimento de uma funcionalidade específica ou correções e são mergeadas de volta à develop quando a funcionalidade está completa.
- Release: Branches release são criadas a partir da branch develop. Estas branches são preparações para uma nova release de produção. Permitem ajustes finais e correções de bugs que não são enviadas à branch develop durante esse período. Quando a release está pronta para ser lançada, ela é mergeada em master e develop.
- Hotfix: Branches hotfix são criadas a partir da branch master. São usadas para correções rápidas em releases de produção. Uma vez completadas, elas são mergeadas tanto em master quanto em develop para garantir que as correções sejam integradas em futuras releases.
Fluxo de Trabalho
- Desenvolvimento de Features: Inicia-se criando uma branch feature a partir de develop. Após a conclusão da feature, realiza-se um pull request para a develop.
- Preparação de Release: Cria-se uma branch release a partir de develop. Realizam-se testes e ajustes necessários. Conclui-se mergeando a release em master e também de volta à develop com incremento de versão.
- Correções de Hotfix: Identificado um bug em produção, cria-se uma branch hotfix a partir de master. Após a correção, o hotfix é mergeado em master e em develop.
Tags
Após uma release ser mergeada em master, uma tag de versão é criada para documentar o ponto de release no histórico do projeto.
Todas as branches que introduzem novas funcionalidades ao projeto devem seguir a estrutura:
feature/[descricao-da-feature (nome da task)]
Componentes:
Prefixo "feature/": Indica que a branch está relacionada ao desenvolvimento de uma nova funcionalidade.
Descrição da Feature: Um nome curto e descritivo, com palavras separadas por traços ("-"). A descrição deve ser clara e indicar a finalidade da branch.
Exemplos:
feature/criacao-dashboard
feature/integracao-api-pagamento
feature/melhoria-performance
OBS: A nomeação do pull request terá que seguir o mesmo padrão da criação da branch.
Estrutura do Commit:
<Sprint X> <tipo>: <descrição curta da mudança>
<Sprint X>: Refere-se ao número da sprint em que a mudança foi implementada.
Exemplos: <Sprint I>, <Sprint II>.
<tipo>: Indica o tipo de mudança realizada.
Exemplos:
feat: Adição de uma nova funcionalidade.
fix: Correção de bugs ou erros.
chore: Tarefas de manutenção (como atualizações de dependências).
refactor: Refatoração de código sem alteração de funcionalidade.
<descrição>: Uma breve descrição da mudança realizada.
Exemplos:
<Sprint I> feat: adicionar funcionalidade de pesquisa
<Sprint II> fix: corrigir erro no cálculo de frete
<Sprint III> chore: atualizar dependências do projeto
📄 DoR
Para que uma tarefa seja considerada pronta para ser desenvolvida, ela deve atender aos seguintes critérios:
- Documentação Completa:
- Requisitos funcionais e não-funcionais devem estar documentados e acessíveis.
- Especificações técnicas e de design devem estar detalhadas.
- História de Usuário Validada:
- Cada tarefa deve estar vinculada a uma história de usuário específica (exemplo: backlog do produto), com a descrição do problema que resolve e o benefício para o usuário final.
- Dependências Identificadas:
- Todas as dependências com outras tarefas, ferramentas ou recursos devem estar mapeadas e resolvidas.
- Design e Layout Definidos:
- Para tarefas relacionadas à interface, o design deve estar aprovado e disponível.
- Alinhamento com a Sprint:
- A tarefa deve estar dentro do escopo da sprint e estar de acordo com as prioridades estabelecidas (urgente, alta, normal, baixa).
- Estimativa de Tempo:
- A tarefa deve ter uma estimativa de tempo de desenvolvimento e testes definida pela equipe.