Pular para o conteúdo

Endpoints de Graph

13 endpoints sob /v1/graph/ expondo analytics do knowledge graph Neo4j para raciocinio juridico. Todos os endpoints usam POST e retornam resultados envelopados em { data, meta }.

Todas as consultas de grafo tem um timeout de 15 segundos. Se o Neo4j estiver inacessivel, a API retorna 503 SERVICE_UNAVAILABLE. Erros de programacao propagam como 500 INTERNAL_ERROR.

Detecta divergencias jurisprudenciais ativas — clusters de decisoes com resultados divididos (provido vs improvido) para os mesmos criterios juridicos. O divergence_score e calculado como minority / total, de modo que uma divisao perfeitamente equilibrada 50/50 recebe o score mais alto.

ParametroTipoPadraoDescricao
categoria_idstringnullFiltrar por categoria juridica (ex.: cat-direito-consumidor). Omita para todas as categorias.
limitinteger10Maximo de clusters de divergencia retornados (1-50)
Terminal window
curl -X POST http://localhost:8000/v1/graph/divergencias \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{ "categoria_id": "cat-direito-consumidor", "limit": 5 }'

Analisa como diferentes ministros decidem sobre o mesmo tema juridico. Retorna contagens de resultados por ministro para criterios que correspondem ao tema.

ParametroTipoPadraoDescricao
temastringobrigatorioTema juridico para analise de divergencia (1-500 chars, ex.: dano moral)
Terminal window
curl -X POST http://localhost:8000/v1/graph/divergencias/turma \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{ "tema": "dano moral em relacoes de consumo" }'

Encontra argumentos (criterios, dispositivos legais, precedentes) com a maior taxa de sucesso para uma categoria juridica e resultado desejado.

ParametroTipoPadraoDescricao
categoria_idstringobrigatorioID da categoria juridica (ex.: cat-direito-consumidor)
resultado_desejadostring"provido"Resultado alvo: provido, improvido ou parcialmente provido
tipo_argumentostring"all"Filtrar por tipo: criterio, dispositivo, precedente ou all
min_decisionsinteger2Minimo de decisoes de suporte para relevancia estatistica (2-100, piso interno e 2)
top_kinteger10Maximo de argumentos retornados (1-50)
Terminal window
curl -X POST http://localhost:8000/v1/graph/optimal-argument \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"categoria_id": "cat-direito-consumidor",
"resultado_desejado": "provido",
"tipo_argumento": "criterio",
"min_decisions": 3
}'

Variante por ministro do argumento otimo. Compara as taxas de sucesso de um ministro especifico com a media geral da categoria. O campo delta mostra a diferenca: positivo significa que o argumento performa melhor com esse ministro.

ParametroTipoPadraoDescricao
categoria_idstringobrigatorioID da categoria juridica
ministrostringobrigatorioNome do ministro (normalizado automaticamente para maiusculas)
resultado_desejadostring"provido"Resultado alvo
tipo_argumentostring"all"Filtro de tipo de argumento
min_decisionsinteger1Minimo de decisoes do ministro (1-100)
min_category_decisionsinteger2Minimo de decisoes na categoria (2-100, piso interno e 2)
top_kinteger10Maximo de argumentos retornados (1-50)

A resposta inclui recommended_arguments (delta > 0) e avoid_arguments (delta < -0.1).

Terminal window
curl -X POST http://localhost:8000/v1/graph/optimal-argument-by-ministro \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"categoria_id": "cat-direito-consumidor",
"ministro": "Nancy Andrighi",
"resultado_desejado": "provido"
}'

Perfil abrangente do comportamento judicial de um ministro do STJ: total de decisoes, intervalo de datas, principais criterios, distribuicao de resultados, divergencias com pares e decisoes mais citadas.

ParametroTipoPadraoDescricao
ministrostringobrigatorioNome do ministro (normalizado automaticamente para maiusculas)
include_divergenciasbooleantrueIncluir divergencias com pares nos mesmos criterios
include_precedentesbooleantrueIncluir decisoes mais citadas deste ministro
limit_criteriosinteger10Maximo de criterios no ranking (1-50, limite do store e 10)
Terminal window
curl -X POST http://localhost:8000/v1/graph/ministro-profile \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"ministro": "Nancy Andrighi",
"include_divergencias": true,
"include_precedentes": true,
"limit_criterios": 5
}'

Acompanha como a aplicacao de um criterio juridico muda ao longo do tempo. Retorna buckets por periodo com divisao provido/improvido e um label heuristico de tendencia (crescente, decrescente ou estavel).

ParametroTipoPadraoDescricao
criteriostringobrigatorioCriterio juridico a analisar (1-500 chars, ex.: dano moral)
granularitystring"year"Granularidade temporal: year ou month
periodo_iniciostringnullInicio do periodo. O formato deve corresponder a granularidade: YYYY para year, YYYY-MM para month.
periodo_fimstringnullFim do periodo. Mesmo requisito de formato.
Terminal window
curl -X POST http://localhost:8000/v1/graph/temporal-evolution \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"criterio": "boa-fe objetiva",
"granularity": "year",
"periodo_inicio": "2018",
"periodo_fim": "2024"
}'

Rastreia a cadeia de citacao de saida a partir de uma decisao raiz atraves de relacionamentos CITA_PRECEDENTE ate a profundidade especificada.

ParametroTipoPadraoDescricao
decisao_idstringobrigatorioID da decisao raiz
max_depthinteger3Maximo de saltos de citacao (1-5)
Terminal window
curl -X POST http://localhost:8000/v1/graph/citation-chain \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{ "decisao_id": "doc-stj-resp-1234567", "max_depth": 3 }'

Classifica as decisoes mais influentes no grafo de citacoes usando um score simplificado de PageRank: in_citations * 10 + second_order * 3.

ParametroTipoPadraoDescricao
limitinteger20Top-N decisoes mais influentes (1-100)
min_citationsinteger0Minimo de citacoes diretas pos-filtro (0 = sem filtro)
Terminal window
curl -X POST http://localhost:8000/v1/graph/pagerank \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{ "limit": 10, "min_citations": 5 }'

Identifica comunidades tematicas de decisoes que compartilham criterios juridicos. Retorna pares de decisoes agrupados por contagem de criterios compartilhados (co-ocorrencia par a par).

ParametroTipoPadraoDescricao
min_sharedinteger3Minimo de criterios compartilhados para formar um par de comunidade (1-20)
limitinteger20Maximo de comunidades retornadas (1-100)
Terminal window
curl -X POST http://localhost:8000/v1/graph/communities \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{ "min_shared": 4, "limit": 10 }'

Compara duas decisoes em cinco dimensoes do grafo (criterios, fatos, provas, dispositivos, precedentes) usando scoring Jaccard ponderado. Retorna estatisticas por dimensao e um weighted_score combinado em [0, 1].

ParametroTipoPadraoDescricao
source_idstringobrigatorioID da primeira decisao
target_idstringobrigatorioID da segunda decisao
Terminal window
curl -X POST http://localhost:8000/v1/graph/structural-similarity \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_id": "doc-stj-resp-1234567",
"target_id": "doc-stj-resp-7654321"
}'

Encontra o caminho mais curto bidirecional entre duas decisoes no knowledge graph, usando todos os tipos de relacionamento.

ParametroTipoPadraoDescricao
source_idstringobrigatorioID da decisao de origem
target_idstringobrigatorioID da decisao de destino
max_depthinteger10Profundidade maxima do caminho em saltos (1-20)

Retorna nodes e edges com tipos de relacionamento reais, ou found: false quando nenhum caminho existe dentro do limite de profundidade.

Terminal window
curl -X POST http://localhost:8000/v1/graph/shortest-path \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"source_id": "doc-stj-resp-1234567",
"target_id": "doc-stj-resp-7654321",
"max_depth": 5
}'

Computa vetores de features estruturais de 7 dimensoes para decisoes com base na topologia do grafo: contagem de criterios, contagem de fatos, contagem de provas, contagem de dispositivos, citacoes de entrada, citacoes de saida e resultado codificado.

ParametroTipoPadraoDescricao
decisao_idsstring[]nullIDs especificos de decisoes. Omita para modo de amostragem aleatoria. Maximo 500 IDs por request.
limitinteger100Limite de tamanho da amostra quando decisao_ids e omitido (1-500)

Os resultados sao cacheados no Redis por 1 hora.

Terminal window
curl -X POST http://localhost:8000/v1/graph/embeddings \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"decisao_ids": ["doc-stj-resp-1234567", "doc-stj-resp-7654321"]
}'