Repositório oficial do https://legisla.tech/ai - Plataforma de IA para análise inteligente da legislação brasileira
O Legislatech AI é uma plataforma de inteligência artificial especializada em análise e busca de legislação brasileira. Utilizando tecnologias avançadas de processamento de linguagem natural e machine learning, oferecemos soluções inteligentes para navegar, compreender e extrair insights da complexa legislação brasileira.
- Democratizar o acesso à legislação brasileira através de IA
- Simplificar a busca e compreensão de leis, decretos e regulamentações
- Fornecer insights inteligentes sobre relações entre diferentes normas
- Automatizar análises legais complexas
- Reduzir tempo de pesquisa jurídica em até 80%
- RAG Avançado: Retrieval-Augmented Generation com reranking inteligente
- Análise de Grafos: Mapeamento automático de relações legais
- Processamento em Português: Otimizado para legislação brasileira
- API RESTful: Interface moderna e bem documentada
- Escalabilidade: Arquitetura preparada para alto volume
O projeto está organizado em módulos especializados com arquitetura moderna:
legislatech-ai/
├── legislatech-ai-api/ # API REST com FastAPI
│ ├── routes/ # Endpoints organizados por versão
│ │ ├── v1.py # RAG Search com reranking
│ │ ├── v2.py # Intent Router
│ │ ├── v3.py # Generic Search
│ │ └── grafo.py # Grafo Crawler
│ ├── utils/ # Utilitários e helpers
│ │ ├── auth.py # Autenticação segura
│ │ ├── prompt_helpers.py # Helpers de prompts
│ │ └── sse.py # Server-Sent Events
│ ├── config.py # Configurações centralizadas
│ ├── main.py # Aplicação principal
│ ├── intent_router.py # Roteamento inteligente
│ ├── requirements.txt # Dependências Python
│ ├── Dockerfile # Containerização
│ └── README.md # Documentação da API
└── README.md # Este arquivo
- Python 3.10+ (recomendado: 3.11)
- PostgreSQL 13+ com extensão
pgvector - Chave de API da OpenAI (GPT-4 ou superior)
- Docker (opcional, para containerização)
- Git para clonagem do repositório
-
Clone o repositório
git clone https://github.com/seu-usuario/legislatech-ai.git cd legislatech-ai -
Configure a API
cd legislatech-ai-api python -m venv venv source venv/bin/activate # Linux/Mac # ou venv\Scripts\activate # Windows pip install -r requirements.txt
-
Configure as variáveis de ambiente
cp .env.example .env # Se existir # Edite o arquivo .env com suas credenciais
-
Execute a aplicação
uvicorn main:app --reload --host 0.0.0.0 --port 8000
git clone https://github.com/seu-usuario/legislatech-ai.git
cd legislatech-ai/legislatech-ai-api
docker build -t legislatech-ai .
docker run -p 8000:8000 --env-file .env legislatech-ai-
Instale o PostgreSQL e pgvector
# Ubuntu/Debian sudo apt-get install postgresql postgresql-contrib sudo apt-get install postgresql-13-pgvector # Ajuste a versão # macOS brew install postgresql brew install pgvector
-
Configure a extensão
CREATE EXTENSION IF NOT EXISTS vector; CREATE DATABASE legislatech;
-
Configure a string de conexão
POSTGRES_CONNECTION_STRING=postgresql://usuario:senha@localhost:5432/legislatech
Após iniciar a aplicação, acesse:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
- OpenAPI JSON: http://localhost:8000/openapi.json
- FastAPI 0.115+: Framework web moderno e rápido
- Python 3.10+: Linguagem principal
- Uvicorn: Servidor ASGI de alta performance
- Pydantic: Validação de dados e serialização
- LangChain 0.3+: Framework para aplicações de IA
- OpenAI GPT-4: Modelo de linguagem avançado
- RAG (Retrieval-Augmented Generation): Busca semântica
- Embeddings: Text-embedding-3-large
- Rerankers: FlashRank para otimização de resultados
- PostgreSQL 13+: Banco relacional robusto
- pgvector: Extensão para busca vetorial
- SQLAlchemy: ORM e pool de conexões
- AsyncPG: Driver assíncrono
- Docker: Containerização
- Environment Variables: Configuração segura
- Git: Controle de versão
- Busca semântica com embeddings avançados
- Reranking automático para relevância
- Contexto inteligente para respostas precisas
- Cache otimizado para performance
curl -X POST "http://localhost:8000/v1/responses" \
-H "Authorization: Basic $(echo -n 'usuario:senha' | base64)" \
-H "Content-Type: application/json" \
-d '{"input": [{"role": "user", "content": [{"type": "text", "text": "Quais são os direitos do trabalhador em caso de acidente de trabalho?"}]}]}'- Classificação automática de intenções
- Roteamento inteligente para endpoints específicos
- Análise de contexto para melhor direcionamento
- Busca flexível em múltiplos formatos
- Filtros avançados por metadados
- Streaming de resultados em tempo real
- Navegação automática de relações legais
- Mapeamento de dependências entre normas
- Análise de impacto cruzado
- Visualização de relacionamentos
curl -X GET "http://localhost:8000/grafo/" \
-H "Authorization: Basic $(echo -n 'usuario:senha' | base64)" \
-H "Content-Type: application/json" \
-d '{
"urls": "https://www.planalto.gov.br/ccivil_03/leis/l8078.htm",
"profundidade": 2,
"top_n": 20
}'- Análise semântica de consultas em português
- Extração de entidades legais
- Classificação de documentos por tipo
- Respostas contextualizadas e precisas
- Citações automáticas de fontes
- Formatação estruturada de resultados
| Versão | Endpoint | Método | Descrição | Autenticação |
|---|---|---|---|---|
| V1 | /v1/responses |
POST | Busca com reranking e streaming | ✅ |
| V2 | /v2/responses |
POST | Busca híbrida com queries expandidas | ✅ |
| V3 | /v3/responses |
POST | Busca genérica simples | ✅ |
| Grafo | /grafo/ |
GET | Navegação de grafos com PageRank | ❌ |
| Root | / |
GET | Health check e informações da API | ❌ |
A API utiliza autenticação HTTP Basic para endpoints sensíveis:
curl -X POST "http://localhost:8000/v1/responses" \
-H "Authorization: Basic $(echo -n 'usuario:senha' | base64)" \
-H "Content-Type: application/json" \
-d '{"input": [{"role": "user", "content": [{"type": "text", "text": "teste"}]}]}'import requests
import base64
# Busca sobre direitos trabalhistas
response = requests.post("http://localhost:8000/v1/responses",
headers={
"Authorization": "Basic " + base64.b64encode(b"admin:senha").decode(),
"Content-Type": "application/json"
},
json={
"input": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Quais são os direitos do trabalhador em caso de acidente de trabalho?"
}
]
}
]
}
)
print(response.text) # Resposta em formato SSE# Análise de grafo de uma lei específica
response = requests.get("http://localhost:8000/grafo/", params={
"urls": "https://www.planalto.gov.br/ccivil_03/leis/l8078.htm",
"profundidade": 2,
"top_n": 20
})
print(response.json())- Latência: < 500ms para buscas simples
- Throughput: 100+ requisições/segundo
- Precisão: > 85% em buscas semânticas
- Disponibilidade: 99.9% uptime
- Cache Redis para resultados frequentes
- Pool de conexões otimizado
- Indexação vetorial para busca rápida
- Streaming para respostas longas
# OpenAI
OPENAI_API_KEY=sk-your-openai-key-here
# Database
POSTGRES_CONNECTION_STRING=postgresql://user:pass@host:5432/db
# Authentication
BASIC_AUTH_USERNAME=admin
BASIC_AUTH_PASSWORD=secure-password
# Environment
ENVIRONMENT=production
LOG_LEVEL=INFOversion: '3.8'
services:
api:
build: ./legislatech-ai-api
ports:
- "8000:8000"
environment:
- POSTGRES_CONNECTION_STRING=postgresql://user:pass@db:5432/legislatech
depends_on:
- db
db:
image: pgvector/pgvector:pg15
environment:
POSTGRES_DB: legislatech
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:Contribuições são muito bem-vindas! Este projeto é mantido pela comunidade.
- 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
- Código limpo: Siga PEP 8 e use type hints
- Testes: Adicione testes para novas funcionalidades
- Documentação: Atualize docs quando necessário
- Commits: Use mensagens descritivas
- 🐛 Bug fixes e melhorias
- ✨ Novas funcionalidades
- 📚 Melhorias na documentação
- 🧪 Testes e cobertura
- 🚀 Otimizações de performance
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
A Licença MIT permite:
- ✅ Uso comercial
- ✅ Modificação
- ✅ Distribuição
- ✅ Uso privado
- ❌ Responsabilidade do autor
- Website: https://legisla.tech/ai
- Email: suporte@legisla.tech
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Q: Como configurar o pgvector? A: Veja a seção "Configuração do Banco de Dados" acima.
Q: Qual versão do Python é suportada? A: Python 3.10 ou superior (recomendado 3.11).
Q: Como obter uma chave da OpenAI? A: Acesse platform.openai.com e crie uma conta.
- Comunidade open source que torna projetos como este possíveis
- Contribuidores que dedicam tempo e expertise
- Usuários que fornecem feedback valioso
- Equipe Legislatech pelo desenvolvimento contínuo
- v2.0: Interface web completa
- v2.1: Análise de sentimento em decisões judiciais
- v2.2: Integração com sistemas jurídicos
- v3.0: IA multimodal (texto + imagens)
- 🔮 Análise preditiva de tendências legais
- 🎯 Recomendações personalizadas por área do direito
- 📊 Dashboards analíticos para advogados
- 🤖 Chatbot especializado em legislação
Desenvolvido com ❤️ pela equipe Legislatech
Transformando a forma como interagimos com a legislação brasileira através da inteligência artificial.