File size: 1,937 Bytes
05ebfc6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Helper: Criar chunks de dados para beeRoot
"""

import json
import tarfile
import os
from pathlib import Path

def create_chunk(documents, chunk_id, output_dir="chunks_dados"):
    """
    Cria um chunk .tar.gz a partir de documentos

    Args:
        documents: Lista de dicts com 'Id' e 'ementa'
        chunk_id: Número do chunk (1, 2, 3...)
        output_dir: Diretório de saída
    """
    # Limita a 500 docs por chunk
    documents = documents[:500]

    # Nomes
    chunk_name = f"chunk_dados_{chunk_id:06d}"
    jsonl_path = f"{chunk_name}.jsonl"
    tar_path = f"{output_dir}/{chunk_name}.tar.gz"

    # Cria output dir
    Path(output_dir).mkdir(exist_ok=True)

    # Cria JSONL
    with open(jsonl_path, 'w', encoding='utf-8') as f:
        for doc in documents:
            # Valida campos obrigatórios
            if 'Id' not in doc or 'ementa' not in doc:
                print(f"⚠️  Documento sem Id ou ementa: {doc}")
                continue

            f.write(json.dumps(doc, ensure_ascii=False) + '\n')

    # Compacta
    with tarfile.open(tar_path, 'w:gz') as tar:
        tar.add(jsonl_path, arcname='jurisprudencias.jsonl')

    # Remove temp
    os.remove(jsonl_path)

    print(f"✅ Criado: {tar_path} ({len(documents)} docs)")
    return tar_path

# Exemplo de uso
if __name__ == '__main__':
    # Seus documentos
    docs = [
        {"Id": "001", "ementa": "Decisão sobre FGTS..."},
        {"Id": "002", "ementa": "Recurso sobre aposentadoria..."},
        # ... até 500 documentos
    ]

    # Cria chunk
    create_chunk(docs, chunk_id=1, output_dir="meus_chunks")

    # Para múltiplos chunks
    all_docs = [...] # Sua lista completa

    chunk_size = 500
    for i in range(0, len(all_docs), chunk_size):
        chunk_docs = all_docs[i:i+chunk_size]
        chunk_id = (i // chunk_size) + 1
        create_chunk(chunk_docs, chunk_id)