Aplicação em Python + Streamlit para analisar avaliações de aplicativos, identificar idioma, traduzir para português, classificar sentimento e gerar uma síntese geral das reviews.
- Upload de arquivo
.txtcom reviews no formatoID$Usuario$Texto - Identificação do idioma da review
- Tradução da review para português
- Classificação de sentimento:
Positiva,NegativaouNeutra - Síntese geral das avaliações com sentimento predominante
- Gráficos de pizza por sentimento e por idioma
- Filtro por sentimento e por idioma
- Fallback local automático quando o provedor online falha ou a cota é atingida
app.py: interface Streamlitllm_review_client.py: integração com LLM e fallback localreview_analysis_pipeline.py: pipeline de leitura e agregação das reviewsapp_reviews.txt: arquivo de exemplorequirements.txt: dependências
- Python 3.12+
- Ambiente virtual recomendado
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtCrie ou ajuste o arquivo .env.
Exemplo usando Groq:
GROQ_API_KEY=sua_chave_groq
GROQ_BASE_URL=https://api.groq.com/openai/v1
GROQ_MODEL=llama-3.1-8b-instant
DEMO_MODE=false
DEMO_MODE_FALLBACK=trueGROQ_API_KEY: chave da API do GroqGROQ_BASE_URL: endpoint OpenAI-compatible do GroqGROQ_MODEL: modelo usado na análiseDEMO_MODE=true: força o uso do fallback localDEMO_MODE_FALLBACK=true: usa fallback local quando o provedor online falha
Use o Streamlit:
source .venv/bin/activate
python -m streamlit run app.pyImportante: não execute python app.py. O arquivo deve ser iniciado com streamlit run.
source .venv/bin/activate
python review_analysis_pipeline.pyCada linha do arquivo deve seguir este formato:
879485937$Pedro Silva$This is a positive review for the app
74398793$John Myers$Je n'aime pas cette application
Quando DEMO_MODE=false e o provedor está configurado corretamente, o sistema usa o LLM online para:
- detectar idioma
- traduzir para português
- classificar sentimento
- gerar síntese geral
Quando o provedor online falha, a aplicação cai automaticamente para o modo local se DEMO_MODE_FALLBACK=true.
Nesse modo:
- a aplicação continua funcionando
- a tradução pode não ser ideal
- a classificação de sentimento pode ser menos precisa
- a interface mostra um aviso quando houve fallback
Se a cota do provedor online for atingida, a aplicação mostra um aviso na interface informando que parte dos resultados pode não refletir o resultado ideal.
- Suba o repositório para o GitHub
- Conecte o repositório no Streamlit Cloud
- Defina
app.pycomo arquivo principal - Adicione as variáveis de ambiente em
Secrets
Exemplo de secrets:
GROQ_API_KEY = "sua_chave_groq"
GROQ_BASE_URL = "https://api.groq.com/openai/v1"
GROQ_MODEL = "llama-3.1-8b-instant"
DEMO_MODE = "false"
DEMO_MODE_FALLBACK = "true"- O arquivo
.envestá no.gitignoree não deve ser commitado - Se quiser uma demo estável sem depender de API, use
DEMO_MODE=true - Para melhor qualidade de tradução e sentimento, use um provedor online com cota disponível