Example apps built on open models served by SIE, the Superlinked Inference Engine. Each recipe is one job a team does every week, such as redacting chats or triaging phishing, built from SIE model calls plus rules in plain Python and YAML that you can read and change. The code runs on your machine and uses models on SIE Serverless, SIE Cluster or SIE Local.
Every recipe is its own folder with its own pyproject.toml and uv.lock, so you install only
what that recipe needs. Copy a folder into your own project and it still runs.
Run a recipe using SIE Serverless, SIE Cluster or SIE Local. The code runs on your machine either way. With SIE Serverless you pay for what each call uses and there are no GPUs to manage yourself: get an SIE API key and read the API docs. To run the models yourself, start from the SIE repo.
You need uv (it installs Python 3.12 for you) and, for SIE Serverless, an SIE API key (create one).
cp .env.example .env # then set SIE_API_KEY; every recipe reads this root .env
cd security/screen_assistant_prompts
uv run recipe.pyOr open the repo in GitHub Codespaces with the badge above and add SIE_API_KEY as a Codespaces
secret; the recipes read it from the environment.
A .env inside a recipe folder works too, if you copy one recipe out on its own. Each run writes
its outputs to runs/<timestamp>/ in the recipe folder.
All the data in these recipes is synthetic or comes from public datasets named in each README.
- MODELS.md lists the open models the recipes use, with licenses, and what happened when we swapped each one for another model.
- Every recipe README has a Try another model section. Each model is one line in that
recipe's
rules.yaml, so trying one that answers in the same format is a one-line change. - SELF_HOSTING.md runs the recipes using SIE Cluster or SIE Local, with
pip install, adocker runcommand or a Helm cluster. SetSIE_BASE_URLin.env; nothing else changes. - CHOOSING_WHERE_MODELS_RUN.md helps you pick between SIE Serverless, SIE Cluster and SIE Local, and says what you agree to when several models share one GPU.
Most recipes here are workflows: Python picks every step and calls a small model where a step needs one, so the same input takes the same steps, the cost per item is known up front, and a batch of thousands runs overnight with nobody watching. An agent is different: a large model picks its next step in a loop, calling tools as it goes. We use one only where a workflow can't do the job:
- Someone is at the screen, asking and replying. Each question depends on the last answer, and the person checks every answer before anything is sent.
- Nobody can write the steps down, but code can check the result. The agent works out the steps; a verifier it can't argue with, often the workflow itself, checks what it found.
- The workflow gets an input it wasn't built for. It hands that case to an agent overnight, code checks the agent's work, and the result goes to a person's queue in the morning.
If you can write the steps down and the job repeats, build a workflow. If you can do neither, a person keeps the job.
Four workflows also have an agent.py beside recipe.py for the jobs they can't do, each calling
the workflow as a tool: KYC checks (the analyst's
follow-up questions, and a one-off request from the regulator),
counterparty news (the articles the workflow sends to review,
overnight), the contract playbook (a lawyer's questions
mid-negotiation) and repair invoices (a one-off look at one
shop's claims). They need an ANTHROPIC_API_KEY too, and run with uv run --group agent agent.py.
Run time is a warm live run using SIE Serverless, on the date in each recipe's README (2 to 4 Nov 2026 for most). A run that has to start a cold model can take several minutes longer. Calls counts the recipe's SIE requests (one request can carry many items).
| Recipe | Models | SIE calls | Run time |
|---|---|---|---|
| Check contracts for the clauses a regulation requires | docling, LightOnOCR-3-4B, Qwen3-Reranker-4B, Qwen3.8-27B-FP8 | 96 | 90 s |
| Review a contract against your playbook | docling, gliner2-large-v1 | 141 | 34 s |
| Index and check a batch of documents you received | LightOnOCR-3-4B, docling, gliner2-large-v1, GLiNER2.5-Decide | 39 | 23 s |
| Redact documents to the agreed rules and log every redaction | pii-redact | 6 | 2 s |
| Check citations against the documents they cite | Qwen3-Reranker-4B, Qwen3.8-27B-FP8 | 22 | 19 s |
| Recipe | Models | SIE calls | Run time |
|---|---|---|---|
| Turn a faxed referral into a draft intake record | LightOnOCR-3-4B, gliner2-large-v1 | 48 | 68 s |
| Add outside visit notes to your chart, marked new, matching or different | gliner2-large-v1, Qwen3-Reranker-4B | 48 | 16 s |
| Pseudonymize clinical notes and log every replacement | pii-redact | 4 | 1 s |
| Search clinical guidance and put the passage that answers first | Qwen3-Reranker-4B | 16 | 6 s |
| Draft a short internal paper from a scientist's outline, citing your own study reports and PubMed | Qwen3.8-27B-FP8, Qwen3-Embedding-4B, Qwen3-Reranker-4B | 22 | 52 s |
| Recipe | Models | SIE calls | Run time |
|---|---|---|---|
| Check a recorded call against the claim record that was saved | parakeet-tdt-0.6b-v3, gliner2-large-v1 | 10 | 5 s |
| Check an invoice against the claim before it's paid | LightOnOCR-3-4B, gliner2-large-v1 | 30 | 57 s |
| Match claimed items to receipts and list the proof still needed | LightOnOCR-3-4B, gliner2-large-v1 | 33 | 45 s |
| Create a coverage brief from the policy wording, with exact quotes | Qwen3-Reranker-4B, Qwen3.8-27B-FP8 | 19 | 90 s |
| Summarize a claim for the next adjuster, with a source for every line | pii-redact, Qwen3.8-27B-FP8 | 6 | 14 s |
| Recipe | Models | SIE calls | Run time |
|---|---|---|---|
| Map financial statements into your template and check the totals | docling, Qwen3-Reranker-4B | 98 | 30 s |
| Check KYC documents against your policy and list what's missing | LightOnOCR-3-4B, gliner2-large-v1 | 48 | 90 s |
| Alert the right person when the news mentions one of your counterparties | NuNER_Zero, GLiNER2.5-Decide | 7 | 2 s |
| Answer your standing questions on a new filing, next to last year's answers | Qwen3-Reranker-4B, Qwen3.8-27B-FP8 | 28 | 29 s |
| Keep a case summary current, with a source for every line and no card data | pii-redact, Qwen3.8-27B-FP8 | 6 | 8 s |
| Recipe | Models | SIE calls | Run time |
|---|---|---|---|
| Categorize products into your taxonomy and fill in the required attributes | Qwen3-Embedding-4B, Qwen3-Reranker-4B, gliner2-large-v1 | 118 | 45 s |
| Match products to your catalog: same product, variant or new | siglip-so400m-patch14-384, Qwen3-Embedding-4B, Qwen3.8-27B-FP8 | 15 | 16 s |
| Tag products from their photo and text against your tag lists | Qwen3.8-27B-FP8 | 18 | 34 s |
| Search products by photo, by words, or both | siglip-so400m-patch14-384 | 13 | 5 s |
| Rerank search results without breaking the shopper's filters | Qwen3-Reranker-4B | 8 | 5 s |
| Recipe | Models | SIE calls | Run time |
|---|---|---|---|
| Check a shelf from one photo: in stock, right product, right price | grounding-dino-base, GLM-OCR, Qwen3.8-27B-FP8 | 43 | 43 s |
| Check a returned item against the sale before taking it back | GLM-OCR, Qwen3.8-27B-FP8 | 15 | 31 s |
| Route customer emails to the right team, escalating safety and legal | GLiNER2.5-Decide, gliner2-large-v1 | 2 | 2 s |
| Recipe | Models | SIE calls | Run time |
|---|---|---|---|
| Fill in a work-order completion form from the technician's notes | GLiNER2.5-Decide, gliner2-large-v1 | 14 | 4 s |
| Check a delivery against its purchase order and certificates | LightOnOCR-3-4B, gliner2-large-v1 | 52 | 3 min |
| Answer maintenance questions from the equipment manual, with the page | tomoro-colqwen3-embed-4b:compact, Qwen3.8-27B-FP8 | 31 | 50 s |
| Check no part is missing in assembly photos | sam3 | 9 | 6 s |
| Recipe | Models | SIE calls | Run time |
|---|---|---|---|
| Match a burst of alerts to the runbooks that fix them | Qwen3-Embedding-4B, Qwen3-Reranker-4B, Qwen3.8-27B-FP8 | 12 | 18 s |
| Route alerts to the team that owns them | GLiNER2.5-Decide | 5 | 2 s |
| Draft a postmortem from the incident channel, alerts and deploys, with a source for every claim | Qwen3.8-27B-FP8 | 7 | 40 s |
| Redact secrets and customer data from logs before you share them | pii-redact | 3 | 2 s |
| Recipe | Models | SIE calls | Run time |
|---|---|---|---|
| Triage reported phishing and pull out the indicators | GLiNER2.5-Decide, gliner2-large-v1 | 2 | 1 s |
| Screen prompts before they reach an AI assistant (copilot) | Qwen3Guard-Gen-4B, LightOnOCR-3-4B | 15 | 10 s |
| Triage threat reports against what your company runs | NuNER_Zero | 1 | 1 s |
| Find the attacker tools your detection rules don't cover | gliner-relex-large-v1.0 | 1 | 3 s |
These recipes also need an ANTHROPIC_API_KEY. Claude runs the agent loop, and its tools call models on SIE.
The Shape column says which case from Workflow or agent? each one shows, and what
checks the agent.
| Recipe | Shape | Models | SIE calls | Run time |
|---|---|---|---|---|
| Work out why a customer's bill jumped and draft the reply, with a source for every line | Steps unknown, result checked: Python traces every figure and quote in the draft and works out the credit; the rep reads it before it's sent | Claude Opus 5.5 (Anthropic API), Qwen3-Embedding-4B, Qwen3-Reranker-4B, LightOnOCR-3-4B, pii-redact | 58 | 850 s |
| Group every log line in Python, embed only what's new, and hand the odd cases to an agent | A workflow hands off what it wasn't built for: Python checks every quote and figure in the agent's note; the on-call engineer decides | Claude Opus 5.5 (Anthropic API), Qwen3-Embedding-4B, Qwen3-Reranker-4B, pii-redact | 29 | 47 s |
| Fix a laptop that fails its security checks, with small models checking each step | Steps unknown, result checked: small models check each step, Python checks the report | Claude Opus 5.5 (Anthropic API), Qwen3-Reranker-4B, LightOnOCR-3-4B, pii-redact, GLiNER2.5-Decide | 48 | 160 s |
| Send each coding task to the cheapest model that passes its tests | Steps unknown, result checked: the tests | Claude Opus 5.5 (Anthropic API), GLiNER2.5-Decide, Qwen3.8-27B-FP8 | 78 | 398 s |
| Screen job applicants blind, with an MCP server that masks who they are | Really a workflow (the first pass is the same every time) with Claude deciding; it's here to show masking enforced in an MCP server | Claude Opus 5.5 (Anthropic API), LightOnOCR-3-4B, pii-redact, Qwen3-Reranker-4B | 30 | 117 s |
| Recipe | Models | SIE calls | Run time |
|---|---|---|---|
| Turn messages into calendar holds, payments, replies and to-dos | parakeet-tdt-0.6b-v3, LightOnOCR-3-4B, GLiNER2.5-Decide, gliner2-large-v1 | 30 | 11 s |
| Keep a fact sheet current from your notes, voice memos and scans | parakeet-tdt-0.6b-v3, LightOnOCR-3-4B, Qwen3-Embedding-4B, Qwen3-Reranker-4B, Qwen3.8-27B-FP8 | 38 | 26 s |
See CONTRIBUTING.md. In short: a new folder under its industry with
recipe.py, rules.yaml, README.md, a pyproject.toml that lists only what the recipe
imports, and a uv.lock. uvx pre-commit run --all-files runs the repo-wide checks; CI also
runs the per-recipe checks listed in
CONTRIBUTING.md.
Open an issue to ask for a recipe.
- Scheduled live runs. CI checks every recipe without calling SIE; the
Liveworkflow runs recipes using SIE Serverless only when a maintainer starts it. A weekly scheduled run of a few recipes would catch model drift early. It spends SIE credits, so it is not on yet.