Current collected state Current
Observed since 21 Oct, 10:07 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
ai-catalyst
Production-ready AI components framework with security and resilience
A production-ready AI components framework with enterprise-grade security, resilience, and async performance optimizations.
pip install ai-catalyst
import asyncio
from ai_catalyst import LLMProvider, PIIProcessor, FileProcessor
async def main():
# LLM with automatic failover
llm = LLMProvider()
response = await llm.generate_async("Explain quantum computing")
print(f"Response: {response['content']}")
# PII scrubbing with audit logging
pii = PIIProcessor()
clean_text = await pii.scrub_text_async("Call John at 555-1234")
print(f"Scrubbed: {clean_text}") # "Call <NAME> at <PHONE>"
# Async file processing
processor = FileProcessor()
async for item in processor.process_file_async("data.json"):
print(f"Processed: {item['data']}")
asyncio.run(main())
from ai_catalyst import (
LLMProvider, APIKeyVault, RateLimiter,
AuditLogger, SecureConfigManager
)
# Setup secure environment
key_vault = APIKeyVault()
key_vault.store_key('openai', 'your-api-key')
rate_limiter = RateLimiter()
audit_logger = AuditLogger(log_file='audit.log')
# Initialize with security components
llm = LLMProvider(
key_vault=key_vault,
rate_limiter=rate_limiter,
audit_logger=audit_logger
)
| Operation | Before | After | Improvement |
|---|---|---|---|
| LLM Failover | 45s | 15s | 3x faster |
| Batch PII Processing | 60s | 12s | 5x faster |
| File Processing | Blocking | Streaming | Non-blocking |
| Rate Limiting | N/A | <1ms | Sub-millisecond |
# API Keys
export OPENAI_API_KEY="your-openai-key"
export ANTHROPIC_API_KEY="your-anthropic-key"
# Security
export AI_CATALYST_MASTER_KEY="your-encryption-key"
# config.yaml
llm:
timeout: 30
model: "gpt-4"
security:
rate_limits:
openai: "paid" # or "free"
audit_log: "audit.log"
processing:
batch_size: 100
max_concurrency: 10
# Install with dev dependencies
pip install ai-catalyst[dev]
# Run tests
pytest
# Run with coverage
pytest --cov=ai_catalyst
MIT License - see LICENSE file for details.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
asyncpgEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | asyncpg>=0.28.0 | runtime |
aiohttpEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | aiohttp>=3.8.0 | runtime |
aiofilesEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | aiofiles>=23.0.0 | runtime |
pyyamlEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | pyyaml>=6.0 | runtime |
psutilEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | psutil>=5.9.0 | runtime |
openaiEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | openai>=1.0.0 | runtime |
regexEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | regex>=2023.0.0 | runtime |
pandasEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | pandas>=2.0.0 | runtime |
cryptographyEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | cryptography>=41.0.0 | runtime |
pytestEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | pytest>=7.0.0; extra == "dev" | runtime |
pytest-asyncioEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | pytest-asyncio>=0.21.0; extra == "dev" | runtime |
blackEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | black>=23.0.0; extra == "dev" | runtime |
flake8Environment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | flake8>=6.0.0; extra == "dev" | runtime |
mypyEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | mypy>=1.0.0; extra == "dev" | runtime |
pytestEnvironment{
"extras": "",
"marker": "extra == \"test\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | pytest>=7.0.0; extra == "test" | runtime |
pytest-asyncioEnvironment{
"extras": "",
"marker": "extra == \"test\"",
"requires_python": ">=3.9",
"evaluation": "NOT_EVALUATED"
} | pytest-asyncio>=0.21.0; extra == "test" | runtime |
bdist_wheel · 42.13 KB · Python py3
sdist · 39.44 KB · Python source
Observed since 21 Oct, 10:07 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:6d2e24e6ed4e1d61fb996f9594bbf6e6c7dcdeb25f5e4069eceb732e7dae8f6d