Support-triage workbench

The frame is the official Convai Hugging Face Space. Inference via official Convai HF Space. The article under it is ordinary HTML: what System-1 answers, a sourced Laya vs Jev table, and how to run locally. When the Space is queued or down, the labeled fallback is further down the page. Python, cURL, and the notebook call Router from the upstream package.

Live (HF Space). Inference via official Convai HF Space. The frame is the official Convai Space, so the checkpoint runs on their hardware. This site does not download the weights. If the Space is queued or down, use Offline demo below.

Open live Space

What this System-1 decision model does

Laya AI is an open-source System-1 decision model from Convai Innovations / NandhaKishorM. One forward pass returns typed answers over text. It does not generate a paragraph you have to parse. You define the questions. The checkpoint fills choice, score, and noul. Run it on the official Hugging Face Space or locally with python -m pip install laya.

choice
One label, a probability per option, and a confidence. Routing, intent, topic.
score
Expected level on an ordered rubric. Urgency, frustration, severity.
noul
P(true) from 0 to 1. Phishing, churn, “does this statement hold?”.

Laya vs Jev, from the README

These cells are the upstream README’s routed comparison. This site did not remeasure them. The 0.766 cell is laya-typed-decisions after fine-tuning. On the same 2,000 decisions the English base is 0.362 and the multilingual base is 0.352, under a 0.461 majority baseline. pip install laya does not apply that fine-tune. The full split, including third-party cards, is on Laya vs Jev.

Source: NandhaKishorM/laya README, “Laya (with routing) vs Jev”. Jev latency citations in that README: AbdelStark/jev-benchmarks and nibzard/decision-model-benchmark.
Jev 1.13.0Laya (routed)
typed-decisions, 2,000 decisions0.7270.766
AG News, 4 labels0.9100.950
DAIR Emotion, 6 labels0.4800.595
Banking77 (72 vs 77 labels)0.8700.425
ECE, lower better, post-temperature0.2460.081
p50 latency, 1 question236–276 ms32.8 ms

Run locally

Python 3.10 or newer, then python -m pip install laya. The README does not publish a minimum VRAM. After preload, one multilingual question is 32.8 ms on a Tesla T4 and 193–464 ms on CPU. max_loaded=1 reloads on a language switch (7.4 s median on CPU, 10.3 s on a T4). Details: run locally.

Laya AI is not LayaAir

LayaAir is the Layabox game engine. This page is about the Apache-2.0 decision checkpoint in NandhaKishorM/laya. The site is an unofficial community project and is not affiliated with Convai Innovations. The 中文页面 repeats that distinction.

Offline demo

Offline demo. Local weights are not loaded. This pass is a keyword heuristic with the same JSON shape as Router().predict. It is the fallback when the Space above is queued or down.
Tasks
Routing

Han text routes to the multilingual checkpoint. The browser result is still the keyword demo.

Ctrl+Enter runs live

Run live calls the Space Playground endpoint (run_playground). Inference via official Convai HF Space. The checkpoint menu above applies to Offline demo and the export, not to that call. Han text is routed on the Multilingual routing tab in the frame. The README says act_probability is not a usable gate.

Checks

  • These probabilities are the keyword demo, not convaiinnovations/laya. Python, cURL, and the notebook call the package on your machine.

Run the decision to see the route, probabilities, and schema checks. The button uses the labeled demo.

Export the same ticket

Python, cURL, and the notebook match the editors and call the real package. They do not call /api/demo. Router(preload=True) downloads checkpoints on first use. cURL expects laya-serve already listening on 127.0.0.1:8000.

pip
python -m pip install laya
Python
from laya import Router

router = Router(preload=True)

state = {
    "from": "user@acme.cn",
    "subject": "发票重复扣费",
    "body": "您好,三月的发票今天被扣了两次。请今天退款,否则我们取消套餐。"
}

questions = {
    "department": {
        "type": "choice",
        "instructions": "这张工单应该交给哪个部门?",
        "criteria": {
            "billing": "发票、付款、退款",
            "technical": "故障、崩溃、系统错误",
            "sales": "报价、新合同",
            "other": "其他"
        }
    },
    "urgency": {
        "type": "score",
        "instructions": "这个请求有多紧急?",
        "criteria": [
            "不紧急",
            "尽快",
            "今天必须处理的截止或阻断问题"
        ]
    },
    "churn_risk": {
        "type": "noul",
        "instructions": "用户是否威胁取消或离开?"
    },
    "refund_requested": {
        "type": "noul",
        "instructions": "用户是否明确要求退款?"
    }
}

result = router.predict(state, questions)
print(result["answers"])
print(result["routing"]["model"])
cURL · local laya-serve
# Local laya-serve only. Start it first, then send this body.
#   pip install "laya[serve]" && laya-serve
# Docker: see docs/docker.md (POST /v1/systemone). This URL is not the site demo.
curl -sS http://127.0.0.1:8000/v1/systemone \
  -H 'content-type: application/json' \
  -d '{"state":{"from":"user@acme.cn","subject":"发票重复扣费","body":"您好,三月的发票今天被扣了两次。请今天退款,否则我们取消套餐。"},"questions":{"department":{"type":"choice","instructions":"这张工单应该交给哪个部门?","criteria":{"billing":"发票、付款、退款","technical":"故障、崩溃、系统错误","sales":"报价、新合同","other":"其他"}},"urgency":{"type":"score","instructions":"这个请求有多紧急?","criteria":["不紧急","尽快","今天必须处理的截止或阻断问题"]},"churn_risk":{"type":"noul","instructions":"用户是否威胁取消或离开?"},"refund_requested":{"type":"noul","instructions":"用户是否明确要求退款?"}}}'

The .ipynb is an unofficial export: %pip install laya, then the same Router script. It is not a Convai notebook.

Open the official Colab notebook. The Hugging Face Space runs their weights. Docker is on Serve with Docker. Preload pitfalls are on Get started.

Run Laya AI live · Laya AI