Skip to main content

Get Systems Prefect Blocks - Enterprise LLM and HTTP operations

Project description

get_systems - Get Systems Prefect Blocks

Enterprise-grade Prefect blocks for LLM operations, HTTP requests, and data models.

🐍 Available on PyPI — install it with pip install get-systems

Features

LLM Module (get_systems.llm)

  • OpenAI & Azure OpenAI Support - Seamlessly switch between providers
  • Environment Variables - Automatic fallback to env vars
  • Retry Logic - Exponential backoff with jitter
  • Caching - Optional in-memory response caching
  • Safe Logging - No API key leaks
  • Flexible Parameters - Pass any OpenAI API parameter via **kwargs
  • Function Calling - Full support for tools

HTTP Module (get_systems.http)

  • Multiple Auth Types - None, Basic, Token, Bearer
  • Async HTTP Client - Built on httpx
  • Prefect Integration - First-class block support

Models Module (get_systems.models)

  • Pydantic Models - Type-safe data models with validation
  • Address Parsing - German address format support with normalization
  • Contact Management - Client, Debtor, and Contact models
  • GDPR Compliance - Data protection and source tracking fields
  • Bank Accounts - IBAN/BIC validation via python-stdnum
  • Event Handling - Case events and interest calculations

Azure Content Understanding Module (get_systems.azure_cu)

  • Async Azure SDK Client - URL analysis through Azure AI Content Understanding
  • Prefect Block Config - Store endpoint, key, and optional API version
  • Usage Metadata - Returns raw analysis data plus token usage metadata when available
  • LangChain Tool Block - Optional separate block for langchain-azure-ai

Installation

Install Everything (Recommended)

pip install "get_systems[all]"

Install Specific Modules

Install only what you need:

# For LLM operations only
pip install "get_systems[llm]"

# For HTTP operations only  
pip install "get_systems[http]"

# For Azure Content Understanding only
pip install "get_systems[azure_cu]"

# For Azure Content Understanding LangChain tools
pip install "get_systems[azure_cu_langchain]"

# Install several modules
pip install "get_systems[llm,http,azure_cu]"

From Azure Artifacts

# All modules
pip install "get_systems[all]" --extra-index-url https://pkget_systems.dev.azure.com/get-systems/_packaging/get-systems/pypi/simple/

# Specific modules
pip install "get_systems[llm]" --extra-index-url https://pkget_systems.dev.azure.com/get-systems/_packaging/get-systems/pypi/simple/
pip install "get_systems[http]" --extra-index-url https://pkget_systems.dev.azure.com/get-systems/_packaging/get-systems/pypi/simple/

What Gets Installed

Installation Dependencies
pip install get_systems prefect, pydantic (base only)
pip install "get_systems[llm]" Base + openai
pip install "get_systems[http]" Base + httpx
pip install "get_systems[azure_cu]" Base + Azure Content Understanding SDK
pip install "get_systems[azure_cu_langchain]" Base + langchain-azure-ai
pip install "get_systems[all]" Base + LLM + HTTP + models + Azure Content Understanding SDK

Quick Start

LLM Operations

from get_systems.llm import GptCompletionBlock, GptAuth, LlmRuntime
from prefect import flow

# Configure auth
auth = GptAuth(
    api_key="sk-...",
    model="gpt-4o-mini",
    is_azure=False
)

# Create completion block
block = GptCompletionBlock(
    auth=auth,
    prompt="What is Prefect?",
    temperature=0.7
)

@flow
async def my_llm_flow():
    result = await block.run()
    print(result.content)

HTTP Operations

from get_systems.http import HttpAuth, HttpBlock
from prefect import flow

# Configure HTTP auth
auth = HttpAuth(
    auth_type="bearer",
    token="your-token"
)

# Create HTTP block
http_block = HttpBlock(
    auth=auth,
    url="https://api.example.com"
)

@flow
async def my_http_flow():
    response = await http_block.request("GET", "/users")
    print(response.json())

Azure Content Understanding

from get_systems.azure_cu import AzureAIContentBlock
from prefect import flow

cu_block = AzureAIContentBlock(
    endpoint="https://your-resource.services.ai.azure.com",
    key="your-key",
)

@flow
async def analyze_document():
    result = await cu_block.analyze_url(
        analyzer_id="auftrag",
        document_url="https://example.com/document.pdf",
    )
    print(result["raw"])
    print(result["usage"])

Azure Content Understanding LangChain Tool

from get_systems.azure_cu import AzureAIContentLangChainBlock

config_block = await AzureAIContentLangChainBlock.load("azure-cu-langchain-config")
tool = config_block.get_tool(analyzer_id="auftrag")

Data Models

from get_systems.models import Address, Contact, Debtor, BankAccount

# Parse German address from string
address = Address.from_raw("Zimmerstraße 456 c/o Amtsgericht, 63225 Langen, DE")
print(address.street)  # "Zimmerstraße 456 c/o Amtsgericht"
print(address.zip_code)  # "63225"
print(address.city)  # "Langen"

# Create address with validation
address = Address(
    street="Musterstraße 321a",
    zip_code="12345",
    city="Berlin",
    country_code="DE",
    validity="G"  # Gültig (Valid)
)

# GDPR-compliant data tracking
address_with_source = Address(
    street="Hauptstraße 10",
    zip_code="10115",
    city="Berlin",
    country_code="DE",
    source_contact_designation="Auskunftei",
    source_contact_id="12345",
    source_date="2026-06-01"
)

# Create debtor with contact info
debtor = Debtor(
    first_name="Max",
    last_name="Mustermann",
    addresses=[address],
    person_type="NP"  # Natural Person
)

Register Blocks in Prefect

# Register all blocks
prefect block register -m get_systems.llm.gpt_blocks
prefect block register -m get_systems.http
prefect block register -m get_systems.azure_cu

# View registered blocks
prefect block ls

Import Styles

All import styles are supported:

# Submodule imports (recommended)
from get_systems.llm import GptCompletionBlock, GptAuth
from get_systems.http import HttpAuth, HttpBlock
from get_systems.azure_cu import AzureAIContentBlock, AzureAIContentLangChainBlock

# Direct module imports
from get_systems.llm.gpt_blocks import GptCompletionBlock
from get_systems.http.http_block import HttpAuth
from get_systems.azure_cu.blocks import AzureAIContentBlock

# Package-level imports
from get_systems import GptCompletionBlock, HttpAuth, AzureAIContentBlock

Environment Variables

OpenAI Configuration:

OPENAI_API_KEY=sk-...
OPENAI_MODEL=gpt-4o-mini
OPENAI_BASE_URL=https://api.openai.com/v1  # optional

Azure OpenAI Configuration:

OPENAI_API_KEY=your-azure-key
OPENAI_BASE_URL=https://your-resource.openai.azure.com
OPENAI_MODEL=your-deployment-name
OPENAI_API_VERSION=2024-02-15-preview
OPENAI_IS_AZURE=true

Azure Content Understanding Configuration:

CONTENT_UNDERSTANDING_ENDPOINT=https://your-resource.services.ai.azure.com
CONTENT_UNDERSTANDING_KEY=your-key
CONTENT_UNDERSTANDING_API_VERSION=2025-11-01  # optional; SDK default is used when omitted

Documentation

  • docs/QUICKSTART-GS.md - Quick start and usage examples
  • docs/MODELS.md - Complete models documentation (Address, Contact, BankAccount, etc.)
  • docs/MIGRATION.md - Migration guide from old packages
  • LLM Module: Full OpenAI/Azure OpenAI integration with enterprise features
  • HTTP Module: Flexible HTTP client with multiple authentication types
  • Models Module: Pydantic models for addresses, contacts, bank accounts with validation
  • Prefect Integration: Native Prefect block support for LLM and HTTP modules

License

Proprietary - Get Systems

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

get_systems-0.2.27.tar.gz (44.9 kB view details)

Uploaded Source

Built Distribution

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

get_systems-0.2.27-py3-none-any.whl (37.6 kB view details)

Uploaded Python 3

File details

Details for the file get_systems-0.2.27.tar.gz.

File metadata

  • Download URL: get_systems-0.2.27.tar.gz
  • Upload date:
  • Size: 44.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for get_systems-0.2.27.tar.gz
Algorithm Hash digest
SHA256 215e178c607a846e232ea089ec9a793f9c1776d75a6fc524025c416b90935b50
MD5 5de02d0dc672566feebc25d240590c38
BLAKE2b-256 e55c1e5e22a0217715f0c626e0b9e8d5efd425f871531e74ea2480e4dfd57b85

See more details on using hashes here.

File details

Details for the file get_systems-0.2.27-py3-none-any.whl.

File metadata

  • Download URL: get_systems-0.2.27-py3-none-any.whl
  • Upload date:
  • Size: 37.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for get_systems-0.2.27-py3-none-any.whl
Algorithm Hash digest
SHA256 b172eb046940fa406773cc5fc6c2eddeb8d391aa35c02af50c9b0f503db3243f
MD5 e2761920c7bfb3587b3fde82c1ebd1cc
BLAKE2b-256 7f92d023990bf1a493bc2dea1d768bdfeb47bb11726452fd8980ac2f368e05d3

See more details on using hashes here.

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