Data Ingestion Skill
This skill is responsible for fetching and converting time-series data from different sources into a standardized JSON format for other skills to consume.
Inputs:
source_type: String indicating the data source (e.g., "csv", "cloud_monitoring").source_details: A dictionary or list containing the necessary information to access the data source.- For
source_type: "csv": A list of file paths.
- For
Output:
A JSON string in the standardized format (see README.md for details).
Workflow:
- Validate Inputs: Check if
source_typeandsource_detailsare provided. - Route to Parser: Based on
source_type:- If
source_typeis "csv":- Ensure
source_detailsis a list of file paths. - Create a list of temporary file names for intermediate JSON outputs (e.g.,
~/.gemini/tmp/user/parsed_0.json, ...). - Parse Each CSV: Iterate through the input file paths:
- Execute
python ./skills/data-ingestion/parse_csv.py <input_csv_path> > <temp_json_path>usingrun_shell_command(with venv activation). - Check for errors.
- Execute
- Merge JSONs: Execute
python ./skills/data-ingestion/merge_timeseries.py <temp_json_path_1> <temp_json_path_2> ...usingrun_shell_command(with venv activation). - Capture the stdout from
merge_timeseries.pyas the final result. - Clean up: Remove the temporary JSON files.
- Handle any errors during script executions.
- Ensure
- If
source_typeis not supported, return an error message.
- If
- Return JSON: Output the standardized JSON string.