What is a Function?
Welcome to Nyckel. Almost everything in the product is built around a single concept: the function.
A Nyckel function is a live API endpoint that turns an input into a structured decision. You define what kind of decision you want — does this message look like spam? what objects appear in this photo? which support article is most similar to this question? — and Nyckel handles the rest: model selection, training, hosting, monitoring, and continuous improvement from real-world feedback.
You never build, host, or version a model yourself. You work at the level of the function — the decision you want made — and Nyckel runs whatever model is currently best for the job.
A function is more than an endpoint
When you create a function you get five things at once, bundled together:
- A live REST endpoint that takes inputs and returns predictions immediately, with no training required upfront.
- A review queue that captures every prediction the endpoint makes, so you can confirm or correct it.
- Built-in testing and accuracy metrics that score the function against your reviewed data, so you always know how well it’s performing — no separate eval harness to wire up.
- A data store of labeled examples (“samples”) that grows from your reviews and corrections, becoming the source of truth for what each output means.
- A self-improving model pipeline that retrains as your reviewed data grows, benchmarks the new model against the old one, and swaps it in automatically when it’s better.
Most ML setups force you to build evaluation and retraining yourself, and a static model goes stale the moment your data shifts. A Nyckel function is different: the act of using it — invoking, reviewing, correcting — is also the act of testing and training it. You see your accuracy as it changes, and the model keeps up with your data automatically.
What you do vs. what Nyckel does
| You | Nyckel |
|---|---|
| Pick a function type and define the decision (labels, objects, or reference data) | Selects, trains, and hosts the model |
| Invoke the endpoint from your application | Returns a structured prediction with a confidence score |
| Review and correct predictions in the console (or via API) | Captures every interaction as training signal |
| Decide where to route low-confidence predictions | Continuously retrains and swaps in better models automatically |
You stay in the loop on the decisions that matter — what the function classifies, which mistakes are worth fixing, how to use confidence in your application. Everything else is managed for you.
Where to go from here
If you’re new, start with How Functions Work for the moving parts, or skip straight to Build and Improve a Spam Classifier to see one work end-to-end in five minutes.
If you already know what you want to build, jump to the right starting path:
- Start with a Prebuilt Function — fastest path; pick a ready-made function and invoke it.
- Create Your Own Classification Function — assign each input to one of your own labels.
- Create Your Own Box Detect Function — find and locate a specific object in images.
- Create Your Own Search Function — query a corpus of reference data by meaning.