brizz


Namebrizz JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryOfficial Python SDK for Brizz platform
upload_time2025-08-24 07:26:55
maintainerNone
docs_urlNone
authorNone
requires_python<3.14,>=3.10
licenseApache-2.0
keywords ai api brizz brizzai instrumentation llm monitoring observability opentelemetry sdk telemetry tracing
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Brizz SDK

[![Python Version](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)

Brizz observability SDK for AI applications.

## Installation

```bash
pip install brizz
# or
uv add brizz
# or
poetry add brizz
```

## Quick Start

```python
from brizz import Brizz

# Initialize
Brizz.initialize(
    api_key='your-brizzai-api-key',
    app_name='my-app',
)
```

> **Important**: Initialize Brizz before importing any libraries you want to instrument (e.g.,
> OpenAI). If using `dotenv`, use `from dotenv import load_dotenv; load_dotenv()` before importing `brizz`.

## PII Masking

Automatically protects sensitive data in traces:

```python
# Option 1: Enable default masking (simple)
Brizz.initialize(
    api_key='your-api-key',
    masking=True,  # Enables all built-in PII patterns
)

# Option 2: Custom masking configuration
from brizz import Brizz, MaskingConfig, SpanMaskingConfig, AttributesMaskingRule

Brizz.initialize(
    api_key='your-api-key',
    masking=MaskingConfig(
        span_masking=SpanMaskingConfig(
            rules=[
                AttributesMaskingRule(
                    attribute_pattern=r'gen_ai\.(prompt|completion)',
                    mode='partial',  # 'partial' or 'full'
                    patterns=[r'sk-[a-zA-Z0-9]{32}'],  # Custom regex patterns
                ),
            ],
        ),
    ),
)
```

**Built-in patterns**: emails, phone numbers, SSNs, credit cards, API keys, crypto addresses, and
more. Use `masking=True` for defaults or `MaskingConfig` for custom rules.

## Session Tracking

Group related operations and traces under a session context. All telemetry within the wrapped
function will include the session ID:

```python
import uuid
from brizz import with_session_id, awith_session_id


async def process_user_workflow():
    # All traces, events, and spans within this function
    # will be tagged with session-123
    response = await awith_session_id(uuid.UUID().hex, openai.chat.completions.create,
        model='gpt-4',
        messages=[{'role': 'user', 'content': 'Hello'}],
    )

    return response


# For synchronous functions
def sync_workflow(data: dict):
    # Process data with session context
    return with_session_id(uuid.UUID().hex, processed_data, data)
```

## Event Examples

```python
from brizz import emit_event

emit_event('user.signup', {'user_id': '123', 'plan': 'pro'})
emit_event('user.payment', {'amount': 99, 'currency': 'USD'})
```

## Environment Variables

```bash
BRIZZ_API_KEY=your-api-key          # Required
BRIZZ_BASE_URL=https://telemetry.brizz.dev  # Optional
BRIZZ_APP_NAME=my-app                       # Optional
```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "brizz",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.14,>=3.10",
    "maintainer_email": null,
    "keywords": "ai, api, brizz, brizzai, instrumentation, llm, monitoring, observability, opentelemetry, sdk, telemetry, tracing",
    "author": null,
    "author_email": "Brizz Team <contact@brizz.ai>",
    "download_url": "https://files.pythonhosted.org/packages/bb/ab/40bed57a30f7f7a2309e5ed18c305d2086dc62125acd9b40437e32ff5f80/brizz-0.1.0.tar.gz",
    "platform": null,
    "description": "# Brizz SDK\n\n[![Python Version](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n\nBrizz observability SDK for AI applications.\n\n## Installation\n\n```bash\npip install brizz\n# or\nuv add brizz\n# or\npoetry add brizz\n```\n\n## Quick Start\n\n```python\nfrom brizz import Brizz\n\n# Initialize\nBrizz.initialize(\n    api_key='your-brizzai-api-key',\n    app_name='my-app',\n)\n```\n\n> **Important**: Initialize Brizz before importing any libraries you want to instrument (e.g.,\n> OpenAI). If using `dotenv`, use `from dotenv import load_dotenv; load_dotenv()` before importing `brizz`.\n\n## PII Masking\n\nAutomatically protects sensitive data in traces:\n\n```python\n# Option 1: Enable default masking (simple)\nBrizz.initialize(\n    api_key='your-api-key',\n    masking=True,  # Enables all built-in PII patterns\n)\n\n# Option 2: Custom masking configuration\nfrom brizz import Brizz, MaskingConfig, SpanMaskingConfig, AttributesMaskingRule\n\nBrizz.initialize(\n    api_key='your-api-key',\n    masking=MaskingConfig(\n        span_masking=SpanMaskingConfig(\n            rules=[\n                AttributesMaskingRule(\n                    attribute_pattern=r'gen_ai\\.(prompt|completion)',\n                    mode='partial',  # 'partial' or 'full'\n                    patterns=[r'sk-[a-zA-Z0-9]{32}'],  # Custom regex patterns\n                ),\n            ],\n        ),\n    ),\n)\n```\n\n**Built-in patterns**: emails, phone numbers, SSNs, credit cards, API keys, crypto addresses, and\nmore. Use `masking=True` for defaults or `MaskingConfig` for custom rules.\n\n## Session Tracking\n\nGroup related operations and traces under a session context. All telemetry within the wrapped\nfunction will include the session ID:\n\n```python\nimport uuid\nfrom brizz import with_session_id, awith_session_id\n\n\nasync def process_user_workflow():\n    # All traces, events, and spans within this function\n    # will be tagged with session-123\n    response = await awith_session_id(uuid.UUID().hex, openai.chat.completions.create,\n        model='gpt-4',\n        messages=[{'role': 'user', 'content': 'Hello'}],\n    )\n\n    return response\n\n\n# For synchronous functions\ndef sync_workflow(data: dict):\n    # Process data with session context\n    return with_session_id(uuid.UUID().hex, processed_data, data)\n```\n\n## Event Examples\n\n```python\nfrom brizz import emit_event\n\nemit_event('user.signup', {'user_id': '123', 'plan': 'pro'})\nemit_event('user.payment', {'amount': 99, 'currency': 'USD'})\n```\n\n## Environment Variables\n\n```bash\nBRIZZ_API_KEY=your-api-key          # Required\nBRIZZ_BASE_URL=https://telemetry.brizz.dev  # Optional\nBRIZZ_APP_NAME=my-app                       # Optional\n```\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "Official Python SDK for Brizz platform",
    "version": "0.1.0",
    "project_urls": null,
    "split_keywords": [
        "ai",
        " api",
        " brizz",
        " brizzai",
        " instrumentation",
        " llm",
        " monitoring",
        " observability",
        " opentelemetry",
        " sdk",
        " telemetry",
        " tracing"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d9c0565fcbbccdc9d17ca57408dfb00f5608a44bdea8e10226e15fa07c4b45f3",
                "md5": "c476f99b84460408770b9b7654d819d9",
                "sha256": "f1b739e9c00835f105e766bdf2c552e8735bf4b3c4f61650c245fc2a7f8e6229"
            },
            "downloads": -1,
            "filename": "brizz-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c476f99b84460408770b9b7654d819d9",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.14,>=3.10",
            "size": 39241,
            "upload_time": "2025-08-24T07:26:53",
            "upload_time_iso_8601": "2025-08-24T07:26:53.623439Z",
            "url": "https://files.pythonhosted.org/packages/d9/c0/565fcbbccdc9d17ca57408dfb00f5608a44bdea8e10226e15fa07c4b45f3/brizz-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bbab40bed57a30f7f7a2309e5ed18c305d2086dc62125acd9b40437e32ff5f80",
                "md5": "566d1c7835fc8985df9d1f1c76a72652",
                "sha256": "79e1018f9e5e6822769a1432af236e2cd61c13630161105a57cf65a33193b26b"
            },
            "downloads": -1,
            "filename": "brizz-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "566d1c7835fc8985df9d1f1c76a72652",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.14,>=3.10",
            "size": 34705,
            "upload_time": "2025-08-24T07:26:55",
            "upload_time_iso_8601": "2025-08-24T07:26:55.202174Z",
            "url": "https://files.pythonhosted.org/packages/bb/ab/40bed57a30f7f7a2309e5ed18c305d2086dc62125acd9b40437e32ff5f80/brizz-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-24 07:26:55",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "brizz"
}
        
Elapsed time: 1.75558s