Spaces:
Runtime error
Runtime error
File size: 5,156 Bytes
55d4357 1ae5a59 b3b94f2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 |
---
title: PARA.AI
emoji: 🏃
colorFrom: yellow
colorTo: green
sdk: docker
pinned: false
license: agpl-3.0
---
# ⚖️ para.AI - Análise Jurisprudencial com IA
Sistema completo de análise automatizada de acórdãos jurídicos usando **9 especialistas IA** (LLMs).
## 🚀 Funcionalidades
- 📤 **Upload de lotes** (arquivos JSONL)
- 🤖 **9 processadores especializados** para análise completa
- 📦 **Download de resultados** em TAR.GZ
- 🐘 **PostgreSQL embutido** (temporário para testes)
- 🔍 **API completa para debug**
## 📚 Documentação
Acesse a **documentação interativa** em: [/api/docs](/api/docs)
## ⚡ Quick Start
### 1. Testar API
```bash
curl https://seu-space.hf.space/api/v1/health
```
### 2. Upload de acórdãos
```bash
# Criar arquivo JSONL de teste
cat > acordaos.jsonl << 'EOF'
{"acordao_id":"001","tribunal":"TJPR","ementa":"Teste ementa","integra":"Conteúdo completo do acórdão"}
EOF
# Fazer upload
curl -X POST "https://seu-space.hf.space/api/v1/process/upload" \
-F "file=@acordaos.jsonl" \
-F "llm_provider=groq" \
-F "enable_parallel=true"
```
### 3. Consultar status
```bash
curl https://seu-space.hf.space/api/v1/process/status/TASK_ID
```
### 4. Download de resultados
```bash
curl -O https://seu-space.hf.space/api/v1/process/download/TASK_ID
```
## 🗄️ Banco de Dados
### Modo 1: PostgreSQL Temporário (Padrão)
Por padrão, um **PostgreSQL local** é iniciado dentro do container:
- ✅ Pronto para uso imediatamente
- ✅ Sem configuração necessária
- ⚠️ **Dados são perdidos ao reiniciar**
### Modo 2: Banco Externo (Recomendado para produção)
Configure um banco PostgreSQL externo usando **Repository Secrets**:
#### Opção A: Neon (Recomendado - Grátis)
1. Acesse [neon.tech](https://neon.tech)
2. Crie projeto gratuito
3. Copie connection string
4. Em **Settings → Repository Secrets**, adicione:
```
DATABASE_URL=postgresql://usuario:senha@ep-xxx.neon.tech/para_ai?sslmode=require
```
#### Opção B: Supabase (Grátis)
1. Acesse [supabase.com](https://supabase.com)
2. Crie projeto
3. Em Database → Connection string, copie
4. Adicione nas Secrets:
```
DATABASE_URL=postgresql://postgres:[senha]@db.xxx.supabase.co:5432/postgres
```
## 🔑 Configuração de LLM
Configure pelo menos uma **API key de LLM** nas Repository Secrets:
### Groq (Recomendado - Rápido e barato)
```
GROQ_API_KEY=gsk_sua_key_aqui
```
Obtenha em: [console.groq.com](https://console.groq.com/)
### OpenAI (Opcional)
```
OPENAI_API_KEY=sk-sua_key_aqui
```
### Anthropic (Opcional)
```
ANTHROPIC_API_KEY=sk-ant-sua_key_aqui
```
## ⚙️ Repository Secrets
Configure em **Settings → Repository Secrets**:
### Obrigatórios
- `GROQ_API_KEY` - API key do Groq (ou OpenAI/Anthropic)
### Opcionais (para produção)
- `DATABASE_URL` - PostgreSQL externo (recomendado)
- `APP_ENV=production`
- `LOG_LEVEL=INFO`
- `ENABLE_CACHE=true`
- `REDIS_URL` - Se usar cache Redis
## 🧪 Endpoints Principais
| Método | Endpoint | Descrição |
|--------|----------|-----------|
| GET | `/api/v1/health` | Health check |
| POST | `/api/v1/process/upload` | Upload de JSONL |
| GET | `/api/v1/process/status/{id}` | Status da task |
| GET | `/api/v1/process/download/{id}` | Download resultados |
| GET | `/api/v1/debug/info` | Info do sistema |
| GET | `/api/docs` | Documentação Swagger |
## 📋 Formato JSONL
Cada linha deve ser um JSON com a estrutura:
```json
{
"acordao_id": "identificador-unico",
"tribunal": "TJPR",
"numero": "0000001-00.2025.8.16.0000",
"ementa": "Texto da ementa...",
"integra": "Texto completo do acórdão...",
"relator": "Des. Nome do Relator",
"data_julgamento": "2025-01-15"
}
```
**Campos obrigatórios:** `ementa`, `integra`
## 🤖 Especialistas IA
O sistema processa cada acórdão com **9 especialistas**:
1. **Metadados** - Extração de informações estruturadas
2. **Relatório** - Análise do relatório processual
3. **Fundamentação** - Análise da fundamentação legal
4. **Decisão** - Análise do dispositivo decisório
5. **Auditoria** - Verificação de qualidade
6. **Arquivo Relacional** - Estruturação para BD
7. **Segmentação Sintática** - Análise linguística
8. **Análise Contextual** - Contexto jurídico
9. **Transcrição 3-Partite** - Estruturação tripartite
## 📊 Métricas
Veja métricas de processamento em:
- `/api/v1/debug/info` - Info do sistema
- `/api/v1/debug/tasks` - Tasks ativas
## ⚠️ Limitações (Modo PostgreSQL Temporário)
- **Dados não persistem** entre reinicializações
- **Limite de armazenamento** do container
- **Performance reduzida** vs banco dedicado
Para produção, **use banco externo** (Neon/Supabase).
## 🔒 Segurança
Para produção, configure nas Secrets:
```
APP_ENV=production
DEBUG=false
REQUIRE_API_KEY=true
VALID_API_KEYS=sua_key_super_secreta
```
## 📖 Mais Informações
- **Documentação completa:** [/api/docs](/api/docs)
- **Health Check:** [/api/v1/health](/api/v1/health)
- **Repositório:** [GitHub](seu-repo)
---
**Desenvolvido com ❤️ para análise jurisprudencial automatizada**
|