use cases · Synthetic data

Test with data that is not anybody

Staging environments run on a copy of production because writing realistic data by hand is tedious, and that copy is a breach waiting for a misconfiguration. Generate data with the shape of the real thing and none of the people in it.

how it works

How it is built.

Three steps, with the component that does the work in each one.

step 01

Describe the shape

schema + rules

Start from the schema and the constraints that actually hold: valid identifiers, plausible dates, distributions that resemble production. The value is in the edge cases, so name them explicitly rather than hoping they appear.

step 02

Generate at volume

deepseek-v4-flash

Free text is the part no fixture library gives you: complaint narratives, clinical notes, support threads, product descriptions in your own register. That is where a language model beats a random generator, and where volume gets expensive per token.

step 03

Validate, including for leakage

qwen-3.6

Check the distributions against the real set, and check that no generated record reproduces a real one. A generator prompted with real examples can echo them, so this step is a requirement rather than a nicety.

drop-in

Change one line. Keep your code.

Point the OpenAI SDK, or LangChain, LlamaIndex, your own pipeline, at Helmcode. Same calls, same shapes, private models on EU infrastructure.

read_the_docs
generate.py
from openai import OpenAI

client = OpenAI(
    api_key="sk-...",
    base_url="https://api.helmcode.com/v1",  # one line changes
)

# the schema, and the edge cases you want covered
rows = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[{
        "role": "system",
        "content": schema + edge_cases,
    }],
    response_format={"type": "json_object"},
)

# then check the distributions, and that nothing echoes
assert no_overlap(rows, production_sample)

why here

Why on Helmcode.

What changes when you run it on open models, on infrastructure you control.

01

The generator sits next to the real data

To produce data shaped like yours, the model has to see samples of yours. That makes this another case that belongs inside your perimeter, with zero logs, rather than in somebody else API.

02

Millions of rows, one price

A useful synthetic set is not a thousand rows, it is the size of the thing you are testing. Per-token pricing turns that into a budget request; a flat rate turns it into an afternoon.

03

Synthetic is not anonymised

These are two different things and regulators treat them differently. Data invented from a description carries no person; data derived from real records may still carry re-identification risk. Know which one you built, and say which one it is.

industries

Where it is used.

The sectors where this case has traction, each with its own page and its own regulation.

all_industries →

In production at

// faq

Synthetic data, answered.

What platform and data teams ask before staging stops running on a copy of production.

Is synthetic data good enough to train on?

For augmenting a thin class or covering an edge case you barely see, often yes. As a full replacement for real data it tends to flatten exactly the rare patterns you wanted the model to learn. Treat it as a supplement and measure against a real holdout set.

Can we use it to test bias without touching real data?

It is useful for probing: build matched cases that differ in one attribute and see whether the decision changes. It does not replace measuring bias on real outcomes, and under Article 10 of the AI Act processing real protected characteristics for that purpose carries its own conditions.

Does it produce valid Spanish identifiers and formats?

With the check rules in the prompt, yes: NIF and CIF control letters, IBAN checksums, postal codes that match a province. Put the validation in your pipeline as well, because a generator that is right 99% of the time still breaks a test suite.

// get started

START BURNING TOKENS

Skip the AI infra work. Deploy your first private inference endpoint today.

Flat rate. EU data. OpenAI API compatible.