-
Notifications
You must be signed in to change notification settings - Fork 0
/
indenizacao.r
98 lines (83 loc) · 2.59 KB
/
indenizacao.r
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
assunto <- 6226
varas <- "405-6498,405-5024,405-3788,405-7,405-5758,405-2,405-6503"
tjsp::baixar_cjpg(
assunto = assunto,
vara = varas,
diretorio = "cjpg"
)
resultados <- fs::dir_ls("cjpg") |>
tjsp::tjsp_ler_cjpg()
juizes <- c(
"WILSON LISBOA RIBEIRO",
"MARIO SERGIO LEITE",
"Liege Gueldini de Moraes"
)
dados_tjsp <- resultados |>
dplyr::filter(classe == "Procedimento Comum Cível") |>
dplyr::mutate(
ano_processo = stringr::str_sub(processo, 10, 13),
ano_processo = as.numeric(ano_processo)
) |>
dplyr::filter(
disponibilizacao > "2019-01-01",
magistrado %in% juizes
) |>
dplyr::select(processo, magistrado, disponibilizacao, vara, julgado)
readr::write_rds(dados_tjsp, "dados_tjsp.rds")
# vamos trabalhar com uma amostra
set.seed(1)
dados_tjsp <- readr::read_rds("dados_tjsp.rds") |>
dplyr::mutate(antes_depois = disponibilizacao > "2022-05-01") |>
dplyr::group_by(antes_depois, magistrado) |>
dplyr::slice_sample(n = 100) |>
dplyr::ungroup() |>
dplyr::select(-antes_depois)
analisar_caso <- function(julg) {
r <- httr::POST(
url = "https://api.openai.com/v1/chat/completions",
httr::add_headers(
"Authorization" = paste("Bearer", Sys.getenv("OPENAI_API_KEY"))
),
body = list(
model = "gpt-4-turbo",
response_format = list(type = "json_object"),
messages = list(
list(
role = "system",
content = readr::read_file("prompt.md")
),
list(
role = "user",
content = stringr::str_sub(julg, -3000, -1)
)
)
),
encode = "json"
)
r |>
httr::content() |>
purrr::pluck("choices", 1, "message", "content") |>
jsonlite::fromJSON(simplifyDataFrame = TRUE) |>
tibble::as_tibble()
}
safe <- purrr::possibly(analisar_caso, tibble::tibble())
dados_tjsp_result <- dados_tjsp |>
dplyr::mutate(julgado = purrr::map(
julgado, safe, .progress = TRUE
))
readr::write_rds(dados_tjsp_result, "dados_tjsp_result.rds")
set.seed(1)
da_did <- dados_tjsp_result |>
dplyr::filter(purrr::map_lgl(julgado, \(x) nrow(x) > 0)) |>
dplyr::mutate(julgado = purrr::map(
julgado, \(x) dplyr::mutate(
x,
valor_danos_materiais = as.character(valor_danos_materiais)
)
)) |>
tidyr::unnest(julgado) |>
dplyr::mutate(danos_morais = danos_morais + rgamma(dplyr::n(), 15, 1/100)) |>
dplyr::select(processo, magistrado, disponibilizacao, vara, danos_morais) |>
dplyr::mutate(processo = abjutils::build_id(processo))
readr::write_csv(da_did, "da_did.csv")
piggyback::pb_upload("da_did.csv", repo = "c-eoe/tidydata", tag = "data", overwrite = TRUE)