Pular para o conteúdo principal

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:

Imagem 1: exemplo de uso da flag jsonpath na instrução fetch

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:

Imagem 2: exemplo de uso da flag jmespath na instrução fetch

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 se levarmos em consideração que a maioria das APIs traz 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 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: