Converse com seus documentos usando Inteligência Artificial
Faça upload de PDFs, DOCs ou TXTs e obtenha respostas instantâneas sobre o conteúdo através de um chat inteligente
DocIntel é uma plataforma de análise de documentos com IA que permite você fazer perguntas em linguagem natural sobre o conteúdo dos seus documentos. A aplicação utiliza técnicas avançadas de RAG (Retrieval-Augmented Generation) e reranking semântico para fornecer respostas precisas e contextualizadas.
- Suporte para múltiplos formatos: PDF, DOCX, DOC, TXT
- Interface drag-and-drop intuitiva
- Processamento automático e indexação vetorial
- Armazenamento seguro e persistente
- Conversação natural com IA especializada em seus documentos
- Respostas em streaming (texto aparece progressivamente)
- Comunicação via WebSocket para experiência fluida
- Histórico completo de conversas
- Dupla pontuação de relevância:
- Score de similaridade vetorial (embedding)
- Score de relevância semântica (modelo GPT-4o-mini)
- Filtragem inteligente: apenas respostas com 80%+ de relevância
- Ranqueamento automático: melhores resultados aparecem primeiro
- Transparência: visualize os trechos usados e suas pontuações
- Visualize os trechos do documento utilizados para cada resposta
- Compare scores de embedding vs. relevância semântica
- Identificação de conteúdo filtrado por baixa relevância
- Interface visual com gráficos de pontuação
- Múltiplas conversas simultâneas
- Histórico persistente de mensagens
- Busca e navegação entre chats
- Associação de documentos a conversas específicas
- Design responsivo (desktop e mobile)
- Modo escuro/claro
- Animações suaves e feedback visual
- Componentes acessíveis
Este projeto está configurado para Spec-Driven Development usando Tessl, uma abordagem moderna onde especificações são escritas antes do código.
**📖 Documentação completa**: Veja [SDD.md](./SDD.md) para guia detalhado de Spec-Driven Development com Tessl.
---
## 🚀 Começando
### Pré-requisitos
- **Docker** e **Docker Compose**
- **Java 21+** e **Maven** (via `./mvnw`)
- **Node.js 18+**
- **Chave de API da OpenAI**
### Instalação
#### 1. Clone e suba a infraestrutura
```bash
git clone <repository-url>
cd DocIntel
docker compose up -d
Isso sobe o PostgreSQL (com pgvector) e o Docling na porta 5001. Aguarde o Docling ficar healthy — pode levar ~1 minuto no primeiro start.
cd back
export OPENAI_API_KEY="sk-..."
./mvnw quarkus:devO backend sobe em http://localhost:8080. As migrações de banco rodam automaticamente via Flyway.
cd front
npm install
npm run devPor padrão o reranking semântico está desabilitado. Para ativar, configure em back/src/main/resources/application.properties:
docintel.reranking.enabled=trueE exporte as variáveis do GCP:
export GCP_PROJECT_ID="seu-projeto"
export GCP_PROJECT_NUM="123456789"| Erro | Solução |
|---|---|
Connection refused (PostgreSQL) |
docker compose up -d postgres |
OPENAI_API_KEY not set |
export OPENAI_API_KEY="sk-..." |
Port 8080 already in use |
lsof -i :8080 | kill -9 <PID> |
WebSocket connection failed |
Confirme que o backend está no ar e VITE_WS_URL está correto |
File too large |
Ajuste quarkus.http.limits.max-body-size em application.properties |
Contribuições são bem-vindas! Por favor, siga estas diretrizes:
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/minha-feature) - Commit suas mudanças (
git commit -m 'Adiciona nova funcionalidade X') - Push para a branch (
git push origin feature/minha-feature) - Abra um Pull Request
Padrões de código:
- Backend: Siga as convenções Java/Quarkus
- Frontend: Use ESLint e Prettier
- Testes: Adicione testes para novas funcionalidades
- Documentação: Atualize o README se necessário
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Desenvolvido com ❤️ usando Quarkus, React e OpenAI
⭐ Se este projeto foi útil para você, considere dar uma estrela no GitHub!
