Json response parsing
Skill HolobiomicsLab/asb-skill-collections/collections/metabolomics/v2/skills/json-response-parsing
Curated, evidence-grounded skill and software-tool collections for scientific AI agents, generated by the AgenticScienceBuilder
npx -y skills add HolobiomicsLab/asb-skill-collections --skill json-response-parsingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when when querying a TensorFlow Serving metadata endpoint or similar REST API that returns JSON-formatted model metadata, and you need to programmatically extract and validate input/output layer names against known specifications (e.
The file declares its own license as CC-BY-4.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.6 KB, as published. Nobody here has run it
JSON Response Parsing
License: restricted — no clear open-source license detected for the underlying tool; verify licensing before commercial use or redistribution. <!-- asb-license-banner -->
Summary
Extract and validate structured metadata from JSON responses returned by service endpoints (e.g., TensorFlow Serving /model/metadata). This skill is essential when deploying machine learning models through containerized services and need to verify that model layer names and signatures match expected specifications.
When to use
When querying a TensorFlow Serving metadata endpoint or similar REST API that returns JSON-formatted model metadata, and you need to programmatically extract and validate input/output layer names against known specifications (e.g., confirming 'input_2048', 'input_4096', and 'output' layer names before sending inference requests).
When NOT to use
- The service endpoint is not available or the network request fails before receiving a JSON response
- The response is not valid JSON (e.g., plain text error message, HTML error page, malformed XML)
- Layer names are already known and pre-validated from a prior successful query in the same deployment session
Inputs
- JSON HTTP response body from TensorFlow Serving /model/metadata endpoint
- Expected layer name specifications (e.g., input_2048, input_4096, output)
Outputs
- Parsed Python dictionary/object containing model metadata
- List of extracted input layer names
- Extracted output layer name
- Verification report documenting validation outcome (pass/fail)
How to apply
Send a GET request to the service metadata endpoint (e.g., http://localhost:8501/v1/models/<model_name>/metadata via TensorFlow Serving). Parse the returned JSON response using a JSON parser (Python's json library or equivalent). Extract the input layer names and output layer name from the parsed object. Compare the extracted names against the expected specification ('input_2048', 'input_4096' for inputs, 'output' for output). Document any mismatches in a verification report. If names differ from specification, flag this as requiring code updates before inference can proceed.
Related tools
- TensorFlow Serving (REST API service exposing /model/metadata endpoint that returns model metadata as JSON)
- Python (Language used to send HTTP GET requests and parse JSON response using standard library (json module, requests library))
- docker-compose (Brings up TensorFlow Serving container exposing the metadata endpoint)
Examples
import requests, json; resp = requests.get('http://localhost:8501/v1/models/np_classifier/metadata'); metadata = resp.json(); inputs = metadata.get('inputs', []); outputs = metadata.get('outputs', []); print(f"Input layers: {inputs}, Output layers: {outputs}")
Evaluation signals
- JSON response parses without error (no malformed JSON exception)
- Extracted input layer names match exactly the expected values 'input_2048' and 'input_4096'
- Extracted output layer name matches exactly the expected value 'output'
- Verification report is generated documenting the metadata query result and layer name validation outcome
- If layer names do not match specification, a warning or error flag is set indicating code updates are required
Limitations
- The skill assumes the TensorFlow Serving endpoint is running and accessible at the specified URL; network timeouts or service unavailability will cause the query to fail
- The skill depends on the JSON response structure remaining consistent with TensorFlow Serving's metadata endpoint schema; changes to that schema would require adaptation
- Layer names must be validated exactly as strings; no fuzzy matching or partial name validation is performed
Evidence
- [other] Send a GET request to the TensorFlow Serving /model/metadata endpoint (typically http://localhost:8501/v1/models/<model_name>/metadata). Parse the JSON response to extract input layer names and output layer name.: "Send a GET request to the TensorFlow Serving /model/metadata endpoint (typically http://localhost:8501/v1/models/<model_name>/metadata). Parse the JSON response to extract input layer names and"
- [other] Validate that the input layers are exactly 'input_2048' and 'input_4096' and output layer is exactly 'output'. Generate a verification report documenting the metadata query result and layer name validation outcome.: "Validate that the input layers are exactly 'input_2048' and 'input_4096' and output layer is exactly 'output'. Generate a verification report documenting the metadata query result and layer name"
- [readme] We pass through tensorflow serving at this url: /model/metadata. If the model input names change, then we need to change it in the code: "We pass through tensorflow serving at this url: /model/metadata. If the model input names change, then we need to change it in the code"
- [readme] Input layers' names should be "input_2048" and "input_4096". Output layer's name should be "output": "Input layers' names should be "input_2048" and "input_4096". Output layer's name should be "output""