Skip to main content

SchemaForge Python SDK

AI-Powered Data Structuring Tool

GitHub · Documentation · Website

English | 中文

About

This is the official Python SDK for SchemaForge AI, a unified service for AI structured data processing using Pydantic models to define output formats, supporting multiple AI large language models.

Introduction

SchemaForge is a powerful Python SDK for quickly transforming unstructured data into structured formats and generating Pydantic models from text descriptions. It provides an intuitive API for:

  • Structuring text data: Convert unstructured text into structured Pydantic models
  • Generating models from sample data: Create Pydantic models based on sample data
  • Async support: All operations support both synchronous and asynchronous calls

Installation

pip install schemaforge

Quick Start

Initialize Client

from schemaforge import SchemaForge

# Initialize client with API key
client = SchemaForge(api_key="your_secure_api_key_here")

# Or get API key from environment variable
# export SCHEMAFORGE_API_KEY=your_secure_api_key_here
client = SchemaForge()

Structure Text Data

from pydantic import BaseModel

# Define a Pydantic model
class Person(BaseModel):
    name: str
    age: int
    occupation: str

# Structure text using the model
person = client.structure(
    content="John is a 30-year-old software engineer",
    model_class=Person
)
print(person)

Generate Model from Sample Data

# Sample JSON data
json_sample = '''
{
    "product_id": "P12345",
    "name": "Smart Watch",
    "price": 199.99,
    "in_stock": true,
    "specifications": {
        "screen_size": "6.5 inches",
        "processor": "SnapDragon 8",
        "storage": "128GB",
        "camera": "48MP"
    },
    "colors": ["Black", "Silver", "Gold"],
    "release_date": "2024-01-15"
}
'''

# Generate model from sample data
result = client.generate_model(
    sample_data=json_sample,
    model_name="Product",
    description="Product information model with specifications"
)

if result.get("success"):
    # Load the generated model
    Product = client.load_model(result["model_code"])
    print(Product)

Async Support

import asyncio
from schemaforge import SchemaForge

async def main():
    client = SchemaForge(api_key="your_secure_api_key_here")
    
    # Async structure text
    person = await client.astructure(
        content="Jane is a 25-year-old data scientist",
        model_class=Person
    )
    print(person)
    
    # Async generate model
    result = await client.agenerate_model(
        sample_data='{"name": "Laptop", "price": 999.99}',
        model_name="Laptop",
        description="Laptop information model"
    )
    
    if result.get("success"):
        Laptop = client.load_model(result["model_code"])
        print(Laptop)

asyncio.run(main())

Advanced Usage

Custom Configuration

from schemaforge import SchemaForge

# Create client with custom configuration
client = SchemaForge(
    api_key="your_secure_api_key_here",
    api_base="https://custom-endpoint.schemaforge.ai",
    default_model="gpt-4",
    timeout=60.0,
    max_retries=3,
    retry_delay=1.0,
    retry_jitter=True,
    verbose=True
)

Error Handling

from schemaforge import SchemaForge
from schemaforge.exceptions.api_error import SchemaForgeError

client = SchemaForge(api_key="your_secure_api_key_here")

try:
    person = client.structure(
        content="Invalid text",
        model_class=Person
    )
except SchemaForgeError as e:
    print(f"Error: {e}")

Further Reading

For complete API documentation and more examples, visit the SchemaForge Documentation.

Metadata

Release files for schemaforge 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for schemaforge 0.1.1
File Size Uploaded
schemaforge-0.1.1.tar.gz 14.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for schemaforge 0.1.1
File Interpreter ABI Platform
schemaforge-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 31.1 kB

Release files / schemaforge-0.1.1.tar.gz

Download URL schemaforge-0.1.1.tar.gz
Size 14.9 kB
Tags Source
SHA-256 checksum
How to use checksums
3b10184fac4f4fa13ffd3d7e968a56376d2aeffc5615e09d043c97b4f5c0d6fe
BLAKE2b-256 checksum
How to use checksums
16ab2bfdd0137b6f30444e6c49eb7506f28d62871817b253b37c43a5556bb00f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.6

Release files / schemaforge-0.1.1-py3-none-any.whl

Download URL schemaforge-0.1.1-py3-none-any.whl
Size 16.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4d0716c44401f26bb90f27f9eec43dfea69eedd26a846cd6cb7b3ffbd31620c1
BLAKE2b-256 checksum
How to use checksums
cac4bc3da48c6c79eb04852118b8477702116c95815d147512889aabdc94b3d6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.5.6

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page