Skip to main content

A configurable, typed AI framework with swappable LLM, classifier, handlers, and optional memory

Project description

StruktX Logo
StruktX

A configurable, typed AI framework with swappable LLM, classifier, handlers, and memory for Natural Language to Action apps

Python 3.8+ License: MIT

Quick Install

Using uv (Recommended)

# Install with core dependencies only
uv pip install struktx-ai

# Install with LLM support (LangChain)
uv pip install struktx-ai[llm]

# Install with vector store support
uv pip install struktx-ai[vector]

# Install with all optional dependencies
uv pip install struktx-ai[all]

# Install for development
uv pip install struktx-ai[dev]

Using pip

# Install with core dependencies only
pip install struktx-ai

# Install with LLM support (LangChain)
pip install struktx-ai[llm]

# Install with vector store support
pip install struktx-ai[vector]

# Install with all optional dependencies
pip install struktx-ai[all]

Source

# Create virtual env
uv venv

# Activate environment
source .venv/bin/activate

# Sync and install pyproject dependencies
uv sync

# Install finall Strukt package
uv pip install struktx-ai[all]

Quick Start with LangChain

from strukt import create, StruktConfig, HandlersConfig, LLMClientConfig, ClassifierConfig
from strukt.classifiers.llm_classifier import DefaultLLMClassifier
from strukt.prompts import DEFAULT_CLASSIFIER_TEMPLATE
from strukt.examples.time_handler import TimeHandler

from langchain_openai import ChatOpenAI
from strukt.langchain_helpers import LangChainLLMClient

# Create LangChain LLM client
langchain_llm = ChatOpenAI(api_key="your-openai-api-key")
llm = LangChainLLMClient(langchain_llm)

app = create(StruktConfig(
    llm=LLMClientConfig(llm),
    classifier=ClassifierConfig(
        factory=DefaultLLMClassifier(
            llm=llm,
            prompt_template=DEFAULT_CLASSIFIER_TEMPLATE,
            allowed_types=["time_service", "weather", "general"],
            max_parts=4,
        )
    ),
    handlers=HandlersConfig(
        registry={"time_service": TimeHandler(llm)},
        default_route="general",
    ),
))

app.invoke("What is the time in Tokyo?")

What is StruktX?

StruktX is a Python framework for building AI applications with focus on natural language -> actions

  • 🔄 Swappable Components: LLM clients, classifiers, handlers, and memory engines
  • 📝 Type Safety: Full type hints and Pydantic models
  • ⚙️ Configurable: Factory-based configuration system
  • 🔌 Extensible: Easy to add custom components
  • 🧠 Memory Support: Optional conversation memory
  • 🔧 Middleware: Pre/post processing hooks

Features

  • LLM Integration: Support for any LLM via the LLMClient interface
  • Query Classification: Route requests to appropriate handlers
  • Structured Outputs: Pydantic model integration
  • Memory Engines: Conversation history and context
  • Middleware System: Pre/post processing hooks
  • LangChain Helpers: Easy integration with LangChain ecosystem

Requirements

  • Python 3.10+
  • Core: pydantic>=2.0.0, python-dotenv>=1.0.0
  • Optional: LangChain packages, vector stores, etc.

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please report any issues, bugs, improvements, or features on GitHub.

Support

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

struktx_ai-0.0.3b1.tar.gz (61.6 kB view details)

Uploaded Source

Built Distribution

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

struktx_ai-0.0.3b1-py3-none-any.whl (81.0 kB view details)

Uploaded Python 3

File details

Details for the file struktx_ai-0.0.3b1.tar.gz.

File metadata

  • Download URL: struktx_ai-0.0.3b1.tar.gz
  • Upload date:
  • Size: 61.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for struktx_ai-0.0.3b1.tar.gz
Algorithm Hash digest
SHA256 a5c43883d4cbd221602f75b732e33584e18eba3e6bcf25ccc7c339929276ef7a
MD5 edee5356d7c528aceaccd2e5f65efe4d
BLAKE2b-256 5efc88199d1a55c26492d3a56a39346b2011ed536810fa9d9457b42f0dd0b459

See more details on using hashes here.

File details

Details for the file struktx_ai-0.0.3b1-py3-none-any.whl.

File metadata

  • Download URL: struktx_ai-0.0.3b1-py3-none-any.whl
  • Upload date:
  • Size: 81.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for struktx_ai-0.0.3b1-py3-none-any.whl
Algorithm Hash digest
SHA256 800be28b713116c1e7c4a995beba3c842286a8f4b606821d58aab6c5ab9bd784
MD5 b93e378e29e8a33fa53c5555e13d8ce5
BLAKE2b-256 68e2cea0bcd0a8c2f561422f1b3e4b8838a0cf1681ec938ab313f8ffd7649dd6

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