Files
store/data/tools/csv-column-ai-combinator.json
zeekay 8fd4fd4bd9 Drop the catalog's expired artwork urls; artwork is served from our own origin
All 457 icon and screenshot urls across all 202 apps were presigned links to a
single bucket, signed 2025-11-05 with X-Amz-Expires=86400. They have answered
403 ExpiredRequest since the day after, and a presigned url cannot be re-signed
by whoever holds it, so the images are unrecoverable through the only address
anyone had for them and no copy exists elsewhere. There is nothing to re-host.

A url that cannot resolve is not artwork, it is an outbound request that always
fails, so the fields are removed rather than repointed. AppIcon already renders
the initial when icon is absent and the Screenshots panel already hides on an
empty list, so the page looks the same and loses 202 failing requests and 245 KB
of catalog per visit: store.json goes 494 KB to 249 KB.

Artwork is served from this site's own origin as a root-relative path. data/ is
the one source both generate-store.js and the hanzoai/cdn market build copy from
verbatim, so the rule holds in one place.
2026-08-19 22:52:10 -07:00

38 lines
2.8 KiB
JSON

{
"id": "csv-column-ai-combinator",
"name": "CSV column AI combinator",
"description": "This tool reads an input CSV file, processes specified columns and combine them according to a user-defined prompt using an LLM, and adds the results to a new column in the output CSV. It supports error handling, retries, skips rows with empty cells, and provides detailed processing statistics. The output can either override the input file, or be saved to a new CSV file with a timestamp (e.g., \"input_processed_20250421_143022.csv\") and placed in the same folder as the input CSV.\n\nHow to Use :\n\n1. Configure Defaults : Set default CSV parameters : delimiter (e.g., ';'), encoding (e.g., 'utf-8'), quotechar (e.g., '\"'), max LLM retries (e.g., 2), and default output behavior ('new_file' or 'override').\n\n2. Prepare Input CSV file : Use an existing CSV file with the data to process.\n\n3. Provide a prompt with {} placeholders matching CSV column names (e.g., \"Summarize this product description in one sentence : {Description}.\", \"Population of {City} in {Date}, just write the number\").\n\n4. Specify New Column Name : Set the name for the new column to store LLM results (e.g., \"Summary\", \"Population_Size\").\n\n5. Provide Optional Data Description : Include a brief context about the data to guide the LLM (e.g., \"Product descriptions from a retail dataset.\").\n\n6. Set Custom CSV Parameters (Optional) : Customize delimiter, encoding, or quotechar to match the input CSV ; defaults from configuration apply if not specified.\n\n7. Choose Output Behavior (Optional) : Select 'new_file' for a new output file or 'override' to replace the input file; defaults to configuration if not set.\n\n8. Run the Tool : Execute with the provided inputs.\n\n9. Review Summary : Check the output message for stats (e.g., total rows, processed rows, empty cell errors, LLM errors) and the output CSV path.\n\n10. Verify Output CSV file : Inspect the resulting CSV with the new column containing LLM-processed data.\n\nHigh LLM Usage Warning : This tool makes an LLM call for each processed row, which may result in significant usage.",
"version": "1.0.0",
"author": "hanzo.ai",
"homepage": "local:::__gilles_test2_sep_hanzo:::csv_column_ai_combinator",
"license": "MIT",
"category": "Utilities",
"tags": [
"CSV",
"processing",
"data",
"column",
"combine"
],
"installCommand": "",
"mcpConfig": {
"command": "any",
"args": [
"local:::__gilles_test2_sep_hanzo:::csv_column_ai_combinator"
],
"env": {}
},
"downloads": 6,
"createdAt": "2025-04-30T15:50:54.259Z",
"updatedAt": "2025-04-30T15:50:54.259Z",
"type": "Tool",
"toolLanguage": "Python",
"operatingSystem": [
"linux",
"macos",
"windows"
],
"runner": "any",
"featured": true,
"price": 0
}