sintezi
Synthetic data generation that actually doesn't hurt.
A type-safe Python library for generating synthetic data using LLMs. Built with structured outputs, automatic retry policies, and support for multiple response formats (JSON, XML).
Why sintezi? Unlike general-purpose LLM frameworks (LangChain, LlamaIndex), sintezi is focused on bulk synthetic data generation with explicit developer control:
- Bulk generation first — optimized for creating large synthetic datasets, not building chatbots or agents
- Explicit control — you define formats, parsers, and retry logic; no hidden prompt engineering or magic
- Simple by design — no memory systems, RAG pipelines, or high-level abstractions; just clean, predictable data generation
If you need agentic workflows, memory, or RAG, use LangChain. If you need to generate 10,000 structured examples with full control, use sintezi.
Features
- Type-safe — Pydantic models for requests and responses with full type hints
- Multiple formats — JSON, XML, plain text, or custom formatters
- Smart retry — Separate retry policies for network errors and validation failures
- Auto-parsing — Automatic format selection based on Pydantic models
- LLM-agnostic — Works with any OpenAI-compatible API
Installation
pip install sintezi
Requirements: Python 3.11+
Quick start
from pydantic import BaseModel
from openai import AsyncOpenAI
from sintezi.ai.context import ai_context_from_openai
from sintezi.ai.executor import StructuredAiCall, StructuredAiCallConfig, AiCallParameters
from sintezi.ai.formatter import auto_formatter_for_type
from sintezi.ai.parser import auto_parser_for_type
class ProductInfo(BaseModel):
name: str
category: str
class ProductDescription(BaseModel):
description: str
# Setup
client = AsyncOpenAI(api_key="your-api-key")
ctx = ai_context_from_openai(client)
config = StructuredAiCallConfig(
system_message="Generate product descriptions.",
parameters=AiCallParameters(model="gpt-4o-mini"),
)
ai_call = StructuredAiCall(
ctx=ctx,
config=config,
formatter=auto_formatter_for_type(ProductInfo),
parser=auto_parser_for_type(ProductDescription),
)
# Generate
product = ProductInfo(name="Laptop", category="Electronics")
result = await ai_call(product)
print(result.description)
See the quick start guide for a complete walkthrough.
Documentation
Full documentation: https://mrapplexz.github.io/sintezi/
- Quick start guide — complete walkthrough with examples
- Executors — available AI call executors
- Formatters — JSON, XML, custom formats
- Parsers — response parsing and validation
- Retry policies — network and validation retry configuration
- API Reference — complete API documentation
License
Metadata
Release files for sintezi 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| sintezi-0.2.1.tar.gz | 10.3 kB | With provenance | Details for sintezi-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| sintezi-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for sintezi-0.2.1-py3-none-any.whl |
Total release size: 24.1 kB
Release files / sintezi-0.2.1.tar.gz
| Download URL | sintezi-0.2.1.tar.gz |
|---|---|
| Size | 10.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ecbfa91174552ca80f19c4288e27b9aa0814d87c690644ddac1feda407587d61
|
|
BLAKE2b-256 checksum How to use checksums |
95312acf1cfdca6cf26125f2f50dc7a6a517ecd1d703ada4a4e3553be0e9d51b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.
Transparency logRelease files / sintezi-0.2.1-py3-none-any.whl
| Download URL | sintezi-0.2.1-py3-none-any.whl |
|---|---|
| Size | 13.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7dd8141d77615e58c71fa72dbe87352972cdefbca66af4ecdda0c6f4f83cce8f
|
|
BLAKE2b-256 checksum How to use checksums |
bf00d0145a479b094f5a23c5622131c5762f11243176e582bcd6c6fcc82889c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.
Transparency logSecurity for sintezi 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for sintezi-0.2.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.