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
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 data models only
pip install "get_systems[models]"
# Combine modules as needed
pip install "get_systems[llm,http]"
pip install "get_systems[llm,models]"
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[models]" |
Base + nameparser, gender-guesser, python-stdnum |
pip install "get_systems[all]" |
Base + all extras (llm, http, models) |
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",
base_url="https://api.example.com"
)
# Create HTTP block
http_block = HttpBlock(auth=auth)
@flow
async def my_http_flow():
response = await http_block.request("GET", "/users")
print(response.json())
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.http_block
# 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.models import Address, Debtor, Client, BankAccount
# Direct module imports
from get_systems.llm.gpt_blocks import GptCompletionBlock
from get_systems.http.http_block import HttpAuth
from get_systems.models.address import Address
# Package-level imports
from get_systems import GptCompletionBlock, HttpAuth, Address, Debtor
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
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
Release history Release notifications | RSS feed
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.24.tar.gz
(39.7 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file get_systems-0.2.24.tar.gz.
File metadata
- Download URL: get_systems-0.2.24.tar.gz
- Upload date:
- Size: 39.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ede717de63be7c9a86defa53341e48ae590bd1729fd27abd7639dd325d8b191
|
|
| MD5 |
37f27456e0524bfda3cdf19d0418edb6
|
|
| BLAKE2b-256 |
2f756f32a49062a13dc9a37058237aac08d0b766f36e1820dfb2301428ea9f11
|
File details
Details for the file get_systems-0.2.24-py3-none-any.whl.
File metadata
- Download URL: get_systems-0.2.24-py3-none-any.whl
- Upload date:
- Size: 33.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f2cd551e380810b49b06d920d7c4fbb12a739c37b46c56f9f47b794680e28ec
|
|
| MD5 |
9999cff2a955eb5a832deac6168c19d7
|
|
| BLAKE2b-256 |
5deddbdcc95e96901b91dc9155cf1ff6e13e288c8c0ddf5d53b157637564afb9
|