Metadata-Version: 2.4
Name: zumah-sdk
Version: 0.1.0
Summary: Zumah-native Python SDK for provider-neutral LLM routing
Author: Zumah
Project-URL: Repository, https://github.com/JeremyBarry03/TRS
Project-URL: Issues, https://github.com/JeremyBarry03/TRS/issues
Keywords: llm,routing,openai,anthropic
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Typing :: Typed
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: httpx<1.0,>=0.27
Provides-Extra: test
Requires-Dist: pytest<9,>=8; extra == "test"

# Zumah Python SDK

TRS is an NLP/ML routing and proxy layer between a Python application and its
LLM providers. It scores the latest user prompt, selects the provider and model,
and forwards the complete request. The application owns its interface, message
history, and tool execution.

## Install

```bash
pip install zumah-sdk
```

Set `ZUMAH_API_KEY` to the API key issued by Zumah before making requests.

## Usage

```python
import os

from zumah import TRS


with TRS(api_key=os.environ["ZUMAH_API_KEY"]) as trs:
    response = trs.responses.create(input="Review this Python function for bugs.")

print(response["outputText"])
```

Async applications can use the same request shape:

```python
import os

from zumah import AsyncZumah


async with AsyncZumah(api_key=os.environ["ZUMAH_API_KEY"]) as zumah:
    response = await zumah.responses.create(input="Summarize this support ticket.")
```

For local API testing, set `base_url` without changing the request:

```python
trs = TRS(
    api_key="dev-key",
    base_url="http://127.0.0.1:8001/sdk/v1",
)
```

The application can pass its existing message history and tools through TRS:

```python
response = trs.responses.create(
    messages=application_messages,
    tools=tools,
    tool_choice="auto",
)
application_messages.append(response["message"])
```

TRS inspects the latest user text for routing. It does not store these messages
or run requested tools.

The current native endpoint is non-streaming. Provider and model overrides are
intentionally not part of the SDK request.
