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**