Introducing CSVAI: Automate Data Enrichment from Any CSV or Excel File with Generative AI

| | 4 min read

At Zyxware Technologies, we constantly look for ways to reduce manual effort, streamline processes, and unlock insights for our clients and the wider community. Today, we are delighted to announce the release of CSVAI, a free and open-source tool we built to automate data enrichment from CSV and Excel files using Generative AI.

What is CSVAI?

CSVAI is a Python library and command-line tool that applies an AI prompt to every row in your CSV or Excel file, enriches the data using the OpenAI Responses API, and writes the results back into a structured output file.

Think of it as a bridge between your raw business data and actionable insights - without needing to build a custom app for every use case.

CSVAI UI

 

 

Why did we build CSVAI?

In our own projects, we frequently deal with large datasets - leads, reviews, support tickets, product catalogs - where every row needs additional intelligence. Doing this manually is slow, error-prone, and expensive. We wanted a crash-safe, and scalable way to enrich these datasets using AI.

Realizing its potential beyond our internal workflows, we decided to make it available to the wider community under a GNU GPL license.

Use Cases

  • Enriching lead databases with missing fields from the available data.
  • Summarizing customer reviews into actionable insights
  • Categorizing support tickets automatically
  • Extracting structured values (e.g., city, state, country from raw address) from unstructured text

Doing this manually is time-consuming and error-prone. Writing custom scripts for every case is overkill. CSVAI solves this gap by providing a reusable, prompt-driven engine.

Key Features

  • Structured Outputs with JSON Schema: enforce consistent, validated results.
  • JSON mode: schema-less, but still ensures each row produces a valid JSON object.
  • Async & concurrent: process thousands of rows in parallel.
  • Resumable: safely restart without reprocessing completed rows.
  • CSV & Excel support: works with .csv, .xlsx, and .xls files.
  • Command-line or Streamlit UI: use it in automation scripts or with a simple UI.

 

 

Examples

Address Standardization: Input: address.csv

Address
"1600 Amphitheatre Parkway, USA"
"221B Baker Street, London, UK"

Prompt:

Extract city, state, and country from the given address and output JSON.
Rules:
- city: city/town/locality (preserve accents, proper case)
- state: ISO-standard name of the state/region/province or "" if none
- country: ISO 3166 English short name of the country; infer if obvious, else ""
- Ignore descriptors like "(EU)"
- Do not guess street-level info
Inputs:
Address: {{Address}}

Output:

Addresscitystatecountry
1600 Amphitheatre Parkway, USAMountain ViewCaliforniaUnited States
221B Baker Street, London, UKLondon United Kingdom

Getting Started

Installation

git clone https://github.com/zyxware/csvai
cd csvai
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install -e .
cp example.env .env
# Add your OpenAI API key in .env

CLI Usage

csvai input.csv --prompt input.prompt.txt --schema input.schema.json

--prompt - text file containing your prompt
--schema - JSON schema for strict structured output (recommended)
--limit  - process only N rows for testing
--model  - choose your preferred OpenAI model

Web UI

CSVAI includes a browser-based UI implemented in streamlit.

streamlit run csvai-ui.py

Prompt Builder for CSVAI

To make prompt and schema creation easier, we’ve built a CSV AI Prompt Builder — a Custom GPT that generates tailored prompts and JSON Schemas for your data.

With this you can create the detailed prompts and schema files required for csvai with simple prompts like

  • I have products.csv with Product Title, Product Description, Category, and Sub Category. Help me enrich with SEO meta fields.
  • I have reviews.csv with Title, Body, and Stars. Help me extract sentiment and generate a short summary.
  • I have address.csv with an Address field. Help me extract City, State, and Country using ISO-standard names.
  • I have tickets.csv with Subject and Description. Help me classify each ticket into predefined support categories.
  • I have posts.csv with Title, Body, URL, Image URL, Brand, and Platform. Help me generate social media captions, hashtags, emojis, CTAs, and alt text.
  • I have jobs.csv with Job Title and Description. Help me categorize jobs into sectors and identify the level of seniority.

Why Free and Open Source?

CSVAI began as an internal Zyxware tool for our own enrichment workflows. Recognizing its potential to help others, we released it under GPL v2. This reflects our philosophy of contributing back to the community while continuing to offer custom AI solutions for businesses.

CSVAI is free, open-source, and production-ready. Whether you are a business user, developer, or researcher, we invite you to explore how it can simplify your data enrichment workflows.

Get Involved

About Zyxware Technologies

At Zyxware Technologies, we help organizations harness AI, automation, and digital platforms to solve real-world problems. Our mission is to empower businesses with tools that reduce manual effort and unlock data-driven insights.

CSVAI is one such tool, freely available to the community, but we also provide commercial support and custom solutions tailored to your needs. If you’re looking to automate a unique business process or build a similar system, we invite you to schedule a free discovery call.