Skip to main content

Official Python SDK for Kraken document processing API

Project description

Kraken SDK for Python

Official Python SDK for the Kraken document processing API.

Requirements

  • Python 3.9 or higher
  • httpx for HTTP requests
  • pydantic for data validation

Installation

pip install kraken-sdk

Or install from source:

git clone https://github.com/Capt-IA/Kraken-SDK.git
cd Kraken-SDK/kraken-sdk-python
pip install -e .

Quick Start

from kraken_sdk import KrakenClient

# Initialize the client
client = KrakenClient(
    api_key="your-api-key",
    base_url="https://api.kraken.example.com"  # Optional
)

# Check service health
health = client.info.health()
print(health.status)

# Upload a document
source = client.sources.upload("path/to/document.pdf")
print(f"Uploaded: {source.id}")

# Create an extraction job
job = client.jobs.create_single(
    task_type="extraction",
    source_id=source.id,
    ai_provider="openai",
    provider_model="gpt-4o"
)

# Wait for completion and get results
result = client.jobs.wait(job.job_id)
tasks = client.jobs.tasks(job.job_id)
print(tasks.tasks[0].result.content)

Async Support

The SDK provides full async support:

import asyncio
from kraken_sdk import AsyncKrakenClient

async def main():
    async with AsyncKrakenClient(api_key="your-api-key") as client:
        source = await client.sources.upload("document.pdf")
        job = await client.jobs.create_single(
            task_type="extraction",
            source_id=source.id,
            ai_provider="openai",
            provider_model="gpt-4o"
        )
        result = await client.jobs.wait(job.job_id)
        print(result)

asyncio.run(main())

Structured Annotation

Extract structured data using custom schemas:

from kraken_sdk import KrakenClient

client = KrakenClient(api_key="your-api-key")

annotation_schema = {
    "Invoice": {
        "general_prompt": "Invoice information",
        "is_list": False,
        "is_optional": False,
        "table_fields": [
            {"class_name": "invoice_number", "type": "str", "prompt": "The invoice number"},
            {"class_name": "total_amount", "type": "str", "prompt": "The total amount"},
            {"class_name": "date", "type": "str", "prompt": "The invoice date"}
        ]
    }
}

job = client.jobs.create_single(
    task_type="annotation",
    source_id=source.id,
    ai_provider="openai",
    provider_model="gpt-4o",
    annotation_config={
        "annotation_schema": annotation_schema,
        "output_format": "json"
    }
)

result = client.jobs.wait(job.job_id)

Bulk Processing

Process multiple documents with the same configuration:

job = client.jobs.create_bulk(
    task_config={
        "task_type": "extraction",
        "ai_provider": "openai",
        "provider_model": "gpt-4o"
    },
    source_ids=["source-1", "source-2", "source-3"]
)

Error Handling

from kraken_sdk.exceptions import (
    KrakenError,
    KrakenAuthenticationError,
    KrakenValidationError,
    KrakenNotFoundError
)

try:
    result = client.jobs.get("invalid-id")
except KrakenNotFoundError:
    print("Job not found")
except KrakenAuthenticationError:
    print("Invalid API key")
except KrakenError as e:
    print(f"API error: {e}")

API Reference

KrakenClient

Resource Methods
client.info health(), get(), tasks()
client.auth me(), users(), generate_api_key()
client.jobs create(), create_single(), create_bulk(), list(), get(), tasks(), wait()
client.sources upload()
client.provider_api_keys create(), list(), get(), update(), delete()
client.benchmarks create(), list(), get(), report()

Development

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Lint
ruff check src/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kraken_captia-0.1.2.tar.gz (37.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kraken_captia-0.1.2-py3-none-any.whl (24.5 kB view details)

Uploaded Python 3

File details

Details for the file kraken_captia-0.1.2.tar.gz.

File metadata

  • Download URL: kraken_captia-0.1.2.tar.gz
  • Upload date:
  • Size: 37.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kraken_captia-0.1.2.tar.gz
Algorithm Hash digest
SHA256 acd965505dce095375d18633ea44df3139953685bb4bfcf9854ef2a2002f8d70
MD5 c5e3b5260fbb8300324bda4059b91b4d
BLAKE2b-256 194238c5dee03e5fc54619cad643b51015c4163239ae9fb20f54b950b420a2f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for kraken_captia-0.1.2.tar.gz:

Publisher: publish.yml on Capt-IA/Kraken-SDK

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kraken_captia-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: kraken_captia-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 24.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kraken_captia-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 23d6f991e3a406854467f761210078c87df85382a2500709461e1a3a6cdb330b
MD5 039a087267115c660e562fe3787fcee3
BLAKE2b-256 f677741b57e07429e6770c0cd78b4182117806a3ac3ba6b68453df77def43fdd

See more details on using hashes here.

Provenance

The following attestation bundles were made for kraken_captia-0.1.2-py3-none-any.whl:

Publisher: publish.yml on Capt-IA/Kraken-SDK

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page