👨🏽🏫 Professor Wiki, Assistente Virtual Inteligente com IA Avançada
Professor Wiki é uma plataforma de inteligência artificial projetada para ser como uma Wikipedia personalizada para sua empresa. Ela transforma qualquer documento, site ou vídeo em uma fonte de conhecimento conversacional, permitindo que seus colaboradores acessem informações de forma prática e inteligente. Conecte seus arquivos e conteúdos a modelos de IA avançados e obtenha respostas precisas, totalmente baseadas no seu material.
🛠️ Tecnologias Utilizadas
✨ Funcionalidades
🤖 Chat Inteligente
- Suporte a OpenAI GPT (GPT-3.5, GPT-4, GPT-4 Turbo)
- Suporte a Groq (Mixtral, LLaMA, Gemma)
- Conversas contextualizadas com memória
- Respostas baseadas em documentos carregados
📄 Processamento de Documentos
- PDF - Extração de texto com PyPDF2/pdfplumber
- TXT - Arquivos de texto simples
- CSV - Planilhas e dados tabulares
- URLs - Extração de conteúdo de websites
- YouTube - Transcrições de vídeos
🔍 Sistema RAG Avançado
- Busca contextual em documentos
- Embeddings com OpenAI
- Armazenamento vetorial (ChromaDB/FAISS)
- Chunking inteligente de documentos
- Similarity search otimizada
⚙️ Interface Intuitiva
- Interface web responsiva com Streamlit
- Configuração visual de API keys
- Status em tempo real dos sistemas
- Navegação por abas (Chat, Documentos, Configurações, Ajuda)
- Gerenciamento de documentos processados
🔒 Segurança e Privacidade
- API keys criptografadas localmente
- Processamento local de documentos
- Sem envio de dados para terceiros
- Configurações persistentes seguras
🚀 Início Rápido
Instalação Básica
# Clone ou baixe o projeto
git clone <repository-url>
cd mr-magus
# Instale dependências básicas
pip install streamlit
# Execute a aplicação
streamlit run app.py
Instalação Completa
# Instale todas as dependências
pip install streamlit langchain-openai langchain-groq chromadb faiss-cpu PyPDF2 requests beautifulsoup4 youtube-transcript-api
# Execute a aplicação
streamlit run app.py
Configuração Inicial
- Abra a aplicação em http://localhost:8501
- Vá para Configurações (⚙️)
- Configure suas API Keys:
- Salve as configurações
- Comece a usar!
📋 Requisitos
Requisitos Mínimos
- Python 3.8+
- Streamlit
- 2GB RAM
- 1GB espaço em disco
Requisitos Recomendados
- Python 3.10+
- 4GB RAM
- 5GB espaço em disco
- Conexão com internet
Dependências Opcionais
| Funcionalidade | Dependências | Comando de Instalação |
|---|---|---|
| Chat Básico | langchain-openai langchain-groq | pip install langchain-openai langchain-groq |
| Sistema RAG | chromadb faiss-cpu | pip install chromadb faiss-cpu |
PyPDF2 ou pdfplumber | pip install PyPDF2 pdfplumber | |
| URLs | requests beautifulsoup4 | pip install requests beautifulsoup4 |
| YouTube | youtube-transcript-api | pip install youtube-transcript-api |
🎯 Como Usar
1. Chat Inteligente
- Configure suas API keys em Configurações
- Vá para a aba Chat (💬)
- Digite sua pergunta
- Receba respostas inteligentes!
Exemplo:
Usuário: "Explique o que é inteligência artificial"
Professor Wiki: "A inteligência artificial (IA) é um campo da ciência da computação..."
2. Análise de Documentos
- Vá para a aba Documentos (📄)
- Escolha o tipo: Arquivo, URL ou YouTube
- Faça upload ou cole o link
- Clique em Processar
- Volte ao Chat e pergunte sobre o documento
Exemplo:
Usuário: "Resuma o documento que acabei de carregar"
Professor Wiki: "Baseado no documento carregado, os principais pontos são..."
3. Configurações Avançadas
- Provedor de IA: Escolha entre OpenAI ou Groq
- Modelo: Selecione o modelo específico
- Temperatura: Controle a criatividade (0.0 = preciso, 1.0 = criativo)
- Status dos Sistemas: Veja o que está funcionando
📊 Funcionalidades por Nível
Nível 1: Básico (só Streamlit)
pip install streamlit
- ✅ Interface completa
- ✅ Upload de documentos
- ✅ Configurações
- ❌ Chat com IA
Nível 2: Chat (+ LangChain)
pip install langchain-openai langchain-groq
- ✅ Chat com OpenAI/Groq
- ✅ Conversas inteligentes
- ❌ Busca em documentos
Nível 3: RAG (+ ChromaDB)
pip install chromadb faiss-cpu
- ✅ Busca contextual
- ✅ Respostas baseadas em documentos
- ✅ Sistema RAG completo
Nível 4: Completo (+ Processadores)
pip install PyPDF2 requests beautifulsoup4 youtube-transcript-api
- ✅ Processamento de PDF
- ✅ Extração de URLs
- ✅ Transcrições do YouTube
- ✅ Todas as funcionalidades
🔧 Configuração Avançada
Variáveis de Ambiente
# Opcional: Configure USER_AGENT personalizado
export USER_AGENT="MeuApp/1.0"
# Opcional: Configure diretório de dados
export MAGUS_DATA_DIR="/caminho/para/dados"
Estrutura de Diretórios
mr-magus/
├── app.py # Aplicação principal
├── config_manager.py # Gerenciador de configurações
├── crypto_utils.py # Utilitários de criptografia
├── data/ # Dados persistentes
│ ├── vectorstore/ # Base vetorial
│ ├── config/ # Configurações
│ └── logs/ # Logs da aplicação
├── rag/ # Sistema RAG
│ └── rag_system.py # Core do RAG
└── README.md # Este arquivo
Configuração do Sistema RAG
O sistema RAG pode ser configurado editando os parâmetros no código:
rag_config = RAGConfig(
embedding_model="text-embedding-3-small", # Modelo de embedding
chunk_size=1000, # Tamanho dos chunks
chunk_overlap=200, # Sobreposição entre chunks
max_chunks_per_query=5, # Máximo de chunks por consulta
similarity_threshold=0.7, # Limiar de similaridade
vectorstore_type="chromadb", # Tipo de vectorstore
persist_directory="./data/vectorstore" # Diretório de persistência
)
🆘 Solução de Problemas
Problemas Comuns
"USER_AGENT environment variable not set"
✅ Resolvido automaticamente - Esta versão configura o USER_AGENT automaticamente.
"HTTP/1.1 400 Bad Request" no Groq
✅ Corrigido - Parâmetros da API Groq foram corrigidos nesta versão.
Soluções adicionais:
- Verifique se sua API key do Groq está correta
- Teste com um modelo diferente (ex: mixtral-8x7b-32768)
"Nenhum modelo disponível"
Causa: API keys não configuradas Solução:
- Vá em Configurações
- Insira suas API keys
- Salve as configurações
"Sistema RAG não disponível"
Causa: ChromaDB não instalado Solução:
pip install chromadb faiss-cpu
"Erro ao processar PDF"
Causa: PyPDF2 não instalado Solução:
pip install PyPDF2 pdfplumber
"Erro ao processar URL"
Causa: requests/beautifulsoup4 não instalados Solução:
pip install requests beautifulsoup4
Logs e Debug
Os logs da aplicação são exibidos no terminal onde você executou streamlit run app.py.
Níveis de log:
INFO: Informações geraisWARNING: Avisos (dependências faltantes)ERROR: Erros que precisam atenção
Exemplo de logs normais:
INFO:__main__:✅ USER_AGENT configurado automaticamente
INFO:__main__:✅ OpenAI disponível
INFO:__main__:✅ Sistema RAG inicializado
Status Visual
A aplicação mostra o status de cada sistema:
- Header: Status rápido (✅/❌)
- Sidebar: Status detalhado
- Configurações: Dependências instaladas/faltantes
🔐 Segurança
Proteção de API Keys
- API keys são armazenadas apenas no session state do Streamlit
- Não são salvas em arquivos permanentes
- Não são enviadas para servidores externos
- Mascaradas na interface (tipo password)
Privacidade dos Dados
- Documentos processados localmente
- Embeddings criados localmente
- Apenas queries são enviadas para APIs de IA
- Nenhum documento completo é enviado para APIs
Boas Práticas
- Use API keys com permissões mínimas necessárias
- Monitore uso das APIs
- Não compartilhe suas API keys
- Mantenha a aplicação atualizada
🤝 Contribuição
Como Contribuir
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Reportar Bugs
- Use as Issues do GitHub
- Inclua logs de erro
- Descreva passos para reproduzir
- Mencione sua versão do Python e SO
Sugerir Funcionalidades
- Abra uma Issue com label "enhancement"
- Descreva o caso de uso
- Explique o benefício esperado
📄 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
🙏 Agradecimentos
- OpenAI - Pelos modelos GPT e embeddings
- Groq - Pela infraestrutura de IA rápida
- LangChain - Pelo framework de IA
- Streamlit - Pela interface web intuitiva
- ChromaDB - Pelo banco de dados vetorial
- Comunidade Open Source - Por todas as bibliotecas utilizadas
📞 Suporte
Documentação
- README: Este arquivo
- Ajuda na aplicação: Aba ❓ Ajuda
- Status dos sistemas: Página de Configurações
Comunidade
- Issues: Para bugs e sugestões
- Discussions: Para perguntas gerais
- Wiki: Para documentação adicional
Contato
- Email: [seu-email@exemplo.com]
- GitHub: [seu-usuario]
- Website: [seu-website.com]
🎯 Roadmap
Versão Atual (1.0)
- ✅ Chat inteligente com OpenAI/Groq
- ✅ Sistema RAG completo
- ✅ Processamento de múltiplos formatos
- ✅ Interface web responsiva
- ✅ Configuração visual de API keys
Próximas Versões
v1.1 - Melhorias de UX
- 🔄 Histórico persistente de conversas
- 🎨 Temas personalizáveis
- 📱 Otimização mobile
- 🔍 Busca no histórico
v1.2 - Funcionalidades Avançadas
- 👥 Suporte multi-usuário
- 🗄️ Banco de dados persistente
- 📊 Analytics de uso
- 🌍 Suporte a múltiplos idiomas
v2.0 - Recursos Empresariais
- 🔐 Autenticação e autorização
- 🏢 Deploy em nuvem
- 📈 Dashboard administrativo
- 🔌 API REST completa
🎉 Obrigado por usar o Professor Wiki! Esperamos que ele torne seu trabalho com IA mais produtivo e eficiente.