Skip to main content

EvalKit Python SDK — LLM observability and tracing

Project description

EvalKit Python SDK

LLM observability and tracing for Python apps. One init() call auto-instruments your LLM clients, HTTP calls, database queries, and logging — then streams traces to Syntropy Labs.

Installation

pip install syntropylabs-evalkit

Optional provider extras:

pip install "syntropylabs-evalkit[openai]"      # OpenAI
pip install "syntropylabs-evalkit[anthropic]"   # Anthropic
pip install "syntropylabs-evalkit[all]"         # everything

The PyPI package is syntropylabs-evalkit, but you import it as evalkit.

Quickstart

import evalkit

evalkit.init(
    subscription_key="sk_...",       # your Syntropy Labs key
    service_name="my-service",
)

# That's it — your OpenAI / Anthropic / HTTP / DB calls are now traced automatically.
from openai import OpenAI

client = OpenAI()
resp = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}],
)

init() sets up auto-instrumentation for you. Context (including trace IDs) propagates automatically across threads — no manual wiring required.

Web frameworks

# FastAPI / Starlette
from evalkit import EvalKitMiddleware
app.add_middleware(EvalKitMiddleware)

# Flask
import evalkit
evalkit.instrument_flask(app)

# Django — add to MIDDLEWARE
"evalkit.EvalKitDjangoMiddleware"

Manual spans

import evalkit

end, ctx = evalkit.start_span("my-operation", {"key": "value"})
try:
    ...  # your work
finally:
    end("ok")

# Or as a decorator
@evalkit.trace_function()
def do_work(x):
    return x * 2

SQLAlchemy

import evalkit
evalkit.patch_sqlalchemy_engine(engine)

Flushing

Traces are batched and exported in the background. Flush before exit if needed:

evalkit.flush()

Links

License

Proprietary — © 2026 Syntropy Labs. All rights reserved. See LICENSE.

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

syntropylabs_evalkit-0.1.18.tar.gz (46.2 kB view details)

Uploaded Source

Built Distribution

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

syntropylabs_evalkit-0.1.18-py3-none-any.whl (77.1 kB view details)

Uploaded Python 3

File details

Details for the file syntropylabs_evalkit-0.1.18.tar.gz.

File metadata

  • Download URL: syntropylabs_evalkit-0.1.18.tar.gz
  • Upload date:
  • Size: 46.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for syntropylabs_evalkit-0.1.18.tar.gz
Algorithm Hash digest
SHA256 b6867ad65e6624e5b036ddaba4c25831a3140b7cad016a99b6c96caa40458442
MD5 397f39f441e9dbc81e6c1b59550fc9d7
BLAKE2b-256 390758c3573cda24ee1adddbb77efcd564ae40a0e4790d8959f543cfa5ffb7b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for syntropylabs_evalkit-0.1.18.tar.gz:

Publisher: publish.yml on Syntropylabs-ai/evalkit_sdk_py

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

File details

Details for the file syntropylabs_evalkit-0.1.18-py3-none-any.whl.

File metadata

File hashes

Hashes for syntropylabs_evalkit-0.1.18-py3-none-any.whl
Algorithm Hash digest
SHA256 4a2a55e44c350d2e6929ede3c97a8d1e8c55a6ec8ff0d065edaac1499615528e
MD5 030d6c267a7e408e041dfe3d42e40645
BLAKE2b-256 01da09b55c712fdc1e23b2733449eacb96ca4c19d9208964904a18e695d3c8fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for syntropylabs_evalkit-0.1.18-py3-none-any.whl:

Publisher: publish.yml on Syntropylabs-ai/evalkit_sdk_py

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