Filtragem de retorno de API com JSONPath e JMESPath

O que são JSONPath e JMESPath?

JSONPath e JMESPath são linguagens de consulta usadas para extrair dados de estruturas JSON. JSONPath é inspirada em XPath (para XML) e permite navegar e selecionar elementos JSON com uma sintaxe similar, usando expressões para acessar e filtrar dados. JMESPath, por outro lado, oferece uma sintaxe própria, mais funcional, que permite a transformação e filtragem de dados JSON de forma declarativa, facilitando a manipulação de dados complexos com expressões compactas e eficientes.

Utilizando JSONPath

Para utilizar o JSONPath dentro da habilidade no EvaGPT, é preciso passar a flag “jsonpath” junto com a instrução fetch, como demonstrado abaixo:

O que é passado é, de fato, o termo de consulta que filtrará ou extrairá os itens desejados. Nesse caso, ele seleciona todas as cidades listadas na propriedade “endereço” de cada objeto desse JSON.

Utilizando JMESPath

O uso da flag “jmespath” ocorre da mesma maneira que a de “jsonpath”, porém a grande diferença é o universo expandido de possibilidades que o JMESPath torna palpável em relação ao JSONPath, que é uma linguagem de consulta mais simples. Seu uso é como demonstrado abaixo:

No caso acima, JMESPath vai filtrar os objetos verificando qual tem surfe como hobby e trará apenas as informações nome, idade e endereço completo dos usuários que passarem pela filtragem.

Por que utilizar JSONPath e JMESPath?

Dependendo do modelo de linguagem que você utiliza, ele pode ter uma janela de contexto menor. Por exemplo, o INTELLI-3.5-Turbo tem uma janela de contexto de 4000 tokens. É uma janela muito pequena de contexto se levarmos em consideração que a maioria das APIs procura trazer resultados muito detalhados e com riqueza de informações. Filtrando os resultados, podemos prevenir que haja um estouro da janela de contexto do modelo de linguagem.

As duas funcionalidades também beneficiam chamadas a modelos de linguagem com grande capacidade de tokens, já que são menos dados que influenciarão a geração da resposta final. De forma complementar, ressalta-se que quanto menos tokens gastos por chamada, menos créditos são gastos no plano mensal, permitindo, assim, que mais interações mensais ocorram.

Conclusão

As funcionalidades de JSONPath e JMESPath são extremamente úteis para filtragem e encurtamento de respostas extensas de APIs, o que garante melhores respostas e com custos mais baixos ao fazer suas requisições.

Ambas as linguagens estão extensamente documentadas online. Recomendamos os seguintes sites para avaliar seus termos de pesquisa:

- JSONPath: JSONPath Online Evaluator

- JMESPath: JMESPath Playground

Last updated