Skip to content

AI-decision-maker

SignalChain: data-cleaning framework where Jev Choices classify CSV columns and dataset scenes, and local scripts do all the writing.

ProjectprototypeMIT

Overview

SignalChain (repository ai-decision-maker) is a Chinese-language data analysis framework built on the idea that AI decides and programs execute. It has two chains: field recognition for cleaning (is this column gender, age, amount, email?) and categorical-variable analysis (is this variable categorical, and is it ordered?), which then picks statistical methods in R.

Only field names, types and sample values go to the model, never raw data, and outputs are strictly validated. By default a general LLM (DeepSeek) does the judging; with the optional System One path, Jev answers Choice questions mapping columns to a 13-code type vocabulary and each dataset to one of six scenes, collapsing two AI round trips into one with probabilities per field. Results are cached by schema fingerprint. The list summary notes the author measured Jev at 6.6 to 12.7 times an LLM's token cost on this task, because the LLM's output was already one character while Jev's per-question criteria repeat.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich data scene is this dataset?S0-S5 (e.g. medical, finance, user, log, geo)
ChoiceWhich field type is this column?13-code type vocabulary

How it works

  1. Profile the CSV: names, types, sample values
  2. Fingerprint and check the cache
  3. Jev (or the LLM) picks a scene and per-column types
  4. Local scripts clean the data and write output

Strengths

  • Raw data never leaves the machine
  • Cache skips AI calls for known schemas
  • Probabilities and confidence per field on the Jev path

Caveats

  • Author measured Jev as more expensive in tokens than the LLM for this task
  • Docs in Chinese; categorical analysis needs R

Getting started

pip install pandas openai openpyxl, copy config.example.py to config.py, then python run_clean.py (add --system1 for Jev).

At a glance

Type
Project
Status
prototype
Language
Python
Runtime
CLI (optional R)
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • Data cleaning: asks Jev `Choice` questions to classify CSV columns into a 13-code type vocabulary and each dataset into one of six scenes, then executes every write locally; measured Jev at 6.6–12.7× an LLM's token cost on this task because the output is already one character while per-question criteria repeat.

    yibie/awesome-jev

Frequently asked questions

What does Jev decide?

The dataset's scene and each column's type, as Choice questions.

Is Jev cheaper here?

Not on tokens: the author measured 6.6-12.7x an LLM's token cost because per-question criteria repeat.

Is Jev required?

No, it is optional; the default path uses a general LLM.

Related projects

  • dbt package whose macros run Jev Choice, Noul and Score over SQL values in DuckDB and ClickHouse models.

    ProjectbetaSQL (Jinja)
  • DuckDB extension that asks Jev about every row in SQL and returns answers as ENUM, DOUBLE or STRUCT columns.

    PluginbetaC++
  • dbt package and Terraform module adding jev_noul, jev_choice, jev_score and jev_ask SQL functions to Snowflake.

    LibrarybetaSQL
  • Polars library for parallel LLM inference that also asks Jev per-row Noul, Choice and Score questions through a native Rust layer.

    LibrarybetaPython
  • Tabular classifier that learns which slices of labeled rows and columns to send Jev or LAYA, stopping when it has enough.

    ProjectresearchPython
  • Sutro's active-learning CLI that finds rows Jev is least sure about, asks you to label them, and uses GEPA to improve the definition.

    CLIbetaPython