Filtragem de retorno de API com JSONPath e JMESPath
Last updated
Last updated
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.
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.
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.
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.
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:
- JMESPath: