madewithlaya

Catalog / LLM routing & guardrails

0072GitHub

pydecide: one Python client and fallback chain for Jev, OpenRouter, Laya, cross-encoders

Choice, Score and Noul over any System One backend with a confidence policy: if a backend errors or is unsure, the next is tried. Ships a TypeSafe-compatible server.

gopaljigaur/decideREADME ↗
pydecide</h1>

<p><b>One Python client for typed decisions, with a confidence gate between the cheap model and the good one.</b></p>

<p>
<a href="https://github.com/gopaljigaur/decide/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/gopaljigaur/decide/actions/workflows/ci.yml/badge.svg"></a>
<a href="https://pypi.org/project/pydecide/"><img alt="PyPI" src="https://img.shields.io/pypi/v/pydecide?color=blue"></a>
<a href="https://pypi.org/project/pydecide/"><img alt="Python versions" src="https://img.shields.io/pypi/pyversions/pydecide"></a>
<a href="https://pypi.org/project/pydecide/"><img alt="Downloads" src="https://img.shields.io/pypi/dm/pydecide?color=blue"></a>
<a href="https://github.com/gopaljigaur/decide/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/pypi/l/pydecide?color=blue"></a>
</p>

<picture>
  <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/gopaljigaur/decide/main/docs/chain-dark.svg">
  <img alt="A state and three typed questions enter tier one, a 22M parameter cross-encoder. A confidence gate sends the questions it was not sure about to tier two, Laya. The response carries both the answers and the route." src="https://raw.githubusercontent.com/gopaljigaur/decide/main/docs/chain-light.svg" width="920">
</picture>

</div>

Routing, triage and guardrail calls do not need a chat model. A decision model
takes a state and typed questions (pick one of these, score this, yes or no)
and answers with probabilities, in milliseconds. `pydecide` speaks to all of
them through one API: TypeSafe's hosted Jev, OpenRouter, OpenAI's Decisions
endpoint, the open-weight laya family on PyTorch and MLX, any
sentence-transformers CrossEncoder, and a JSON-prompted LLM as a last resort.

The reason to use i

Also filed under LLM routing & guardrails

  1. 0100

    laya-jev-lab: a local-first cascade that matches Jev's accuracy at 1.8x the speed

    Independent Jev vs Laya measurements plus a cascade: Laya decides first, high confidence executes, low confidence escalates to Jev. At a 0.60 threshold it matched Jev's 78%.

    @yibie · LLM routing & guardrails · lower than pure Jev

  2. 0096

    Laya Ultrafast: browser-use's jev-ultrafast agent ported to local Laya on MLX

    A port of the jev-ultrafast browser agent that decides with laya-mlx instead of the hosted Jev API. DOM snapshot, executor, safety checks and inspector are the originals.

    @ipenywis · LLM routing & guardrails · free, local

  3. 0088

    laya_router: a model router with Laya matches GPT-5 nano's accuracy, 35x faster, free

    Two routers behind one endpoint, measured on 180 labelled requests. Laya answers small/medium/powerful routing in one forward pass, against a GPT-5 nano router.

    @glukicov · LLM routing & guardrails · free, local

  4. 0076

    laya-browser-agent: browser decisions on Laya, drop-in for jev-ultrafast tooling

    Local decider for the browser-agent loop: hand it a numbered table of page controls and it picks the operation and element. Playwright/CDP driver, speaks /v1/systemone.

    @ChenneyZhuang · LLM routing & guardrails · free, local, no screenshots