Metadata-Version: 2.4
Name: banking-agent-runtime
Version: 0.2.0
Summary: A lightweight agent runtime for banking NLU applications
Author: Ye Wont Aung
License-Expression: MIT
Project-URL: Homepage, https://github.com/yewontaung/atcm-banking-runtime
Project-URL: Repository, https://github.com/yewontaung/atcm-banking-runtime
Project-URL: Issues, https://github.com/yewontaung/atcm-banking-runtime/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pydantic<3.0,>=2.13
Requires-Dist: httpx<1.0,>=0.28
Dynamic: license-file

# Banking NLU agentic rutime

The runtime interface that provides tool calling using the backbone of Banking Classification Model through the API.

## How to use the runtime

Using the runtime is very easy.
1. Create the runtime object
2. Call prompt method of runtime object
3. Miracle happens

*Not that simple actually*

### Examples

```python
import asyncio

from agentic_runtime.mappers import mappers
from agentic_runtime.model.api import HTTPModelApi
from agentic_runtime.runtime.runtime import ToolCallingRuntime
from agentic_runtime.schemas.intent import TransferMoney
from agentic_runtime.tools.registry import ToolRegistry


model_api = HTTPModelApi(
    api_key="your_api_key",
    api_url="url_to_model", #not deploy to public yet
)

tool_registry = ToolRegistry()

runtime = ToolCallingRuntime(
    api=model_api,
    tool_registry=tool_registry,
    mapper_registry=mappers.registry
)

@tool_registry.register(TransferMoney)
def my_tool(intent:TransferMoney, context):
    print(f"Transferring {intent.amount} to {intent.receiver}")

async def test():
    print("start")
    await runtime.prompt("ကိုကိုကို ၈ထောင်လွှဲပါ")
    print("end")

if __name__ == "__main__":
    asyncio.run(test())
```
