Skip to content

Um assistente inteligente para jogadores de Clash of Clans, com conhecimento detalhado sobre tropas, defesas, heróis, feitiços, estratégias de ataque e atualizações do jogo. Desenvolvido com LangChain, OpenAI GPT-4o, Streamlit e uma base de dados construída via web scraping

Notifications You must be signed in to change notification settings

skti-dev/coc-insights

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Clash of Clans Assistant

Um assistente inteligente para jogadores de Clash of Clans, com conhecimento detalhado sobre tropas, defesas, heróis, feitiços, estratégias de ataque e atualizações do jogo. Desenvolvido com LangChain, OpenAI GPT-4o, Streamlit e uma base de dados construída via web scraping.


📸 Demonstração

resposta_com_analise_de_imagem resposta_sobre_a_vila resposta_ultimas_noticias resposta_pergunta_sem_relacao tela_avisos_importantes tela_referencias exemplo_db exemplo_langsmith


🧠 Sobre o Projeto

Este projeto tem como objetivo oferecer uma interface interativa para que jogadores possam tirar dúvidas específicas sobre Clash of Clans — seja sobre estratégias de ataque, níveis de tropas por Centro de Vila (CV), eventos/atualizações recentes, ou até mesmo análise de imagens com informações visuais do jogo.

O diferencial do projeto está na combinação de:

  • Classificação automática de perguntas por categoria
  • Roteamento dinâmico de prompts para cadeias especializadas (LangChain)
  • Persistência de histórico em SQLite
  • Interação via chat com streaming de resposta
  • Upload e análise de imagens com GPT-4o
  • Entender o contexto da pergunta do usuário
  • Filtrar dinamicamente as informações relevantes antes de gerar uma resposta
  • Analisar imagens enviadas pelo jogador para entender o tipo de vila ou disposição das defesas
  • Buscar notícias atualizadas na web, quando necessário, usando tools integradas via LangChain

🚀 Destaques Técnicos

🔍 Filtragem de Conhecimento Inteligente

Antes de enviar qualquer prompt ao modelo de linguagem, o sistema realiza uma filtragem prévia da base de dados com base em dois critérios principais:

  1. Conteúdo da pergunta: O texto do usuário é analisado para identificar os tópicos relevantes (ex: tropas, CV, defesas).
  2. Imagem enviada (se houver): Se uma imagem for incluída, ela é processada pelo modelo para identificar elementos visuais (como Torres Inferno, Layouts, etc.), permitindo respostas mais direcionadas ao contexto da vila exibida .

Essa filtragem garante que o modelo tenha acesso somente às informações relevantes, evitando respostas genéricas ou equivocadas.

🌐 Uso de Tools para Notícias Dinâmicas

A chain responsável por perguntas sobre novidades e atualizações do jogo utiliza a funcionalidade de tools do LangChain, que permite:

  • Consultar mecanismos de busca em tempo real
  • Capturar trechos de notícias e artigos relevantes
  • Integrar a resposta com base no conteúdo encontrado na web

Esse recurso é ativado somente quando a base de dados local não possui informações suficientes, o que garante um bom equilíbrio entre precisão e atualidade.

Esses diferenciais tornam o assistente não apenas uma ferramenta útil, mas também uma demonstração prática de boas práticas no uso de LLMs , incluindo roteamento, uso de ferramentas, contexto multimodal e persistência de sessão.


🛠️ Tecnologias Utilizadas

Tecnologia Descrição
Streamlit Interface web interativa, leve e rápida
LangChain Framework de orquestração para LLMs
OpenAI GPT-4o Modelo de linguagem multimodal usado para respostas e classificação
SQLite Banco de dados local para armazenamento do histórico
Pillow Manipulação de imagens (upload, leitura, salvamento)
Web Scraping Coleta dos dados técnicos sobre o jogo diretamente da Wiki e site oficial
LangSmith Logs e entendimento detalhado dos processos das chains

🔍 Funcionalidades

  • 📂 Classificação de perguntas: O modelo determina se o usuário está perguntando sobre ataque, CV, atualizações ou algo genérico.
  • 🧩 Roteamento inteligente: Cada categoria é processada por uma chain específica.
  • 💬 Chat com memória persistente: Cada sessão de usuário é registrada e salva.
  • 📷 Upload de imagem com análise contextual: O usuário pode enviar imagens para análise contextual (ex: layout de vila).
  • 🧽 Limpeza de histórico pela interface.
  • 🧵 Respostas com streaming em tempo real.

⚙️ Como Executar Localmente

# Clone o repositório
git clone https://github.com/skti-dev/coc-insights.git
cd coc-insights

# Crie e ative o ambiente virtual
python -m venv .venv
source .venv/bin/activate  # Linux/macOS
.venv\Scripts\activate     # Windows

# Instale as dependências
pip install -r requirements.txt

# Crie um arquivo .env
touch .env

# Veja o arquivo env-example.txt para preencher o seu próprio .env

# Rode os arquivos dentro da pasta 'scripts' para fazer o web scraping e armazenar dentro de /data
python army_buildings.py
python army.py
python defenses.py

# A aplicação já está pronta e pode ser iniciada pelo comando do streamlit
streamlit run .\Home.py

📎 Referências

💡 Próximos Passos

  • Melhorar a análise de imagem (classificação automática de vilas);
  • Implementar feedback de usuário por resposta;
  • Suporte para múltiplos idiomas;
  • Dashboard de estatísticas de uso;

📬 Contato

Criado por Augusto SeabraLinkedIn

About

Um assistente inteligente para jogadores de Clash of Clans, com conhecimento detalhado sobre tropas, defesas, heróis, feitiços, estratégias de ataque e atualizações do jogo. Desenvolvido com LangChain, OpenAI GPT-4o, Streamlit e uma base de dados construída via web scraping

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages