Both apps use the MKA1 Python SDK. Each app directory is self-contained, so you can copy it into your own repository.
Before you start
You need:- Python 3.12 or later and uv.
- An MKA1 API key and a model enabled in your organization.
- For CSV analyst, sandbox capacity on your cluster.
X-On-Behalf-Of, and each Responses request sets store to false.
Ticket triage
Source:apps/ticket-triage
Paste a telecom support ticket or choose a fictional example. The app suggests a team (billing, technical support, or account services), a priority from P1 to P3, a summary, a rationale, and a next action for a human reviewer. It doesn’t submit tickets, change accounts, or send messages.
The app demonstrates:
- A Responses request with routing instructions and a strict JSON schema in
text.format, so the model returns a structured decision. - Validation of that decision before it’s shown. The app rejects incomplete responses, refusals, invalid JSON, unknown team or priority values, and extra fields.
openai:gpt-4.1-mini; availability depends on your organization.
To run it, install the dependencies and create the configuration file:
.env. Set MKA1_API_KEY to your API key, MKA1_SERVER_URL to your cluster’s gateway URL, and MKA1_MODEL to an enabled model that supports structured output. Then start the app:
http://127.0.0.1:8001, choose Business connectivity outage, and submit the ticket. Expect technical_support and P1. Wording can vary between model runs.
CSV analyst
Source:apps/csv-analyst
Upload a CSV, ask a question, and download an HTML report with computed findings, tables, methods, and limitations. Each analysis runs in its own sandbox.
The app demonstrates:
- The sandbox session lifecycle: it creates a session with the Python feature and a ten-minute lifetime, uploads the CSV, downloads the report, and terminates the session when the analysis ends, including after a failure.
- A Responses request with a
shelltool attached to that session. The model uses Python in the sandbox to analyze the file and write the report. - Validation and sanitization of the generated report before the browser receives it.
openai:gpt-4.1; availability depends on your organization.
To run it, install the dependencies and create the configuration file:
.env with your API key, gateway URL, and model, using the same variables as ticket triage. Then start the app:
http://127.0.0.1:8002, click Use example data, keep the default question, and click Generate report. Download the report when it finishes. In the sample data, monthly revenue totals are $61,000 for July, $64,950 for August, and $69,000 for September; use them to check the report.
The app accepts a CSV of up to 1 MB, 20,000 data rows, and 50 columns, and runs one analysis at a time per server process. Review each report before you rely on it: a completed response doesn’t prove that every calculation is correct.
Before you host an app for other users
Both apps are meant to run locally: they bind to localhost and reject cross-origin browser submissions. Before you host one for other users:- Add application authentication, and map authenticated users to authorized end-user identities.
- Enforce per-user quotas.
- Configure your reverse proxy and allowed hosts.
- Keep API keys on the server.
- For CSV analyst, enforce any network and filesystem restrictions you need through your sandbox infrastructure. Model instructions aren’t an isolation boundary.