Why did we open-source our inference engine? Read the post

Build retail agents with open source models

Superlinked gives your agent one API to inspect shelf photos, read shelf labels and return cited stock checks.

Get started
Agent finding Panadol Children 5–12 Years Elixir, 100 mL See how one shelf photo became a stock check

Your shelf-replenishment agent

Review the shelf, identify the facing and return evidence.

Shelf photo Photo 042 · pharmacy aisle
Stock check Check Panadol Children 5–12 Years Elixir, 100 mL

Your store context

The product and inventory records your agent checks before it acts.

PLAN Planogram Expected facings
LABEL Shelf labels SKU and price
CATALOG Product catalog Pack and variant
STOCK Inventory feed Store and backroom
from pathlib import Path
from sie_sdk import SIEClient
client = SIEClient(
api_key="API keysk-sie-…",
base_url="https://api.superlinked.com",
)
image = {"data": Path(imagepharmacy-shelf.jpgbrowse).read_bytes(), "format": "jpeg"}
result = client.extract(
"modelIDEA-Research/grounding-dino-base",
{"images": [image]},
labels=[
"labelempty shelf space",
"labelout of stock sign",
"labelprice tag",
],
)
for obj in result["objects"]:
print(obj["label"], obj["score"], obj["bbox"])
import { readFile } from 'node:fs/promises';
import { SIEClient } from '@superlinked/sie-sdk';

const client = new SIEClient('https://api.superlinked.com', {
  apiKey: 'sk-sie-…',
});

const image = await readFile("pharmacy-shelf.jpg");
const result = await client.extract(
  'IDEA-Research/grounding-dino-base',
  { images: [image] },
  { labels: ["empty shelf space","out of stock sign","price tag"] },
);
console.log(result.objects);
images_bytes=$(base64 < 'pharmacy-shelf.jpg' | tr -d '\n')
curl https://api.superlinked.com/v1/extract/IDEA-Research%2Fgrounding-dino-base \
  -H "Authorization: Bearer sk-sie-…" \
  -H "Content-Type: application/json" \
  -d "{\"items\":[{\"images\":[{\"data\":\"$images_bytes\",\"format\":\"jpeg\"}]}],\"params\":{\"labels\":[\"empty shelf space\",\"out of stock sign\",\"price tag\"]}}"
Build the "Detect" capability into my app using the Superlinked Inference Engine (SIE).

Context
- SIE is an OpenAI-style inference API. Python SDK: `from sie_sdk import SIEClient`; TypeScript: `@superlinked/sie-sdk`.
- Base URL: https://api.superlinked.com (or my regional endpoint). Auth: Bearer key from env `SIE_API_KEY` (never hard-code it).
- Model: IDEA-Research/grounding-dino-base (SIE primitive: /extract). Keep the model id configurable.

Task
- Input: an uploaded image plus the object labels to find.
- Behaviour: return the named objects with confidence scores and bounding boxes
- Call the selected SIE primitive once per request and map the response into your domain type.

Deliverables
- A typed client wrapper, an application-level function for this task, error handling for timeouts/empty input, and unit tests with a stubbed client.
- Wire it into my existing stack (ask me which framework if unclear) and add a short usage example.
from pathlib import Path
from sie_sdk import SIEClient
client = SIEClient(
api_key="API keysk-sie-…",
base_url="https://api.superlinked.com",
)
image = {"data": Path(imagepharmacy-oos-sign.jpgbrowse).read_bytes(), "format": "jpeg"}
result = client.extract(
"modellightonai/LightOnOCR-2-1B",
{"images": [image]},
)
print(result["entities"][0]["text"])
import { readFile } from 'node:fs/promises';
import { SIEClient } from '@superlinked/sie-sdk';

const client = new SIEClient('https://api.superlinked.com', {
  apiKey: 'sk-sie-…',
});

const image = await readFile("pharmacy-oos-sign.jpg");
const result = await client.extract(
  'lightonai/LightOnOCR-2-1B',
  { images: [image] },
  { labels: [] },
);
console.log(result.entities[0].text);
images_bytes=$(base64 < 'pharmacy-oos-sign.jpg' | tr -d '\n')
curl https://api.superlinked.com/v1/extract/lightonai%2FLightOnOCR-2-1B \
  -H "Authorization: Bearer sk-sie-…" \
  -H "Content-Type: application/json" \
  -d "{\"items\":[{\"images\":[{\"data\":\"$images_bytes\",\"format\":\"jpeg\"}]}]}"
Build the "OCR" capability into my app using the Superlinked Inference Engine (SIE).

Context
- SIE is an OpenAI-style inference API. Python SDK: `from sie_sdk import SIEClient`; TypeScript: `@superlinked/sie-sdk`.
- Base URL: https://api.superlinked.com (or my regional endpoint). Auth: Bearer key from env `SIE_API_KEY` (never hard-code it).
- Model: lightonai/LightOnOCR-2-1B (SIE primitive: /extract). Keep the model id configurable.

Task
- Input: an uploaded image containing text.
- Behaviour: return the text visible in the image
- Call the selected SIE primitive once per request and map the response into your domain type.

Deliverables
- A typed client wrapper, an application-level function for this task, error handling for timeouts/empty input, and unit tests with a stubbed client.
- Wire it into my existing stack (ask me which framework if unclear) and add a short usage example.
Output
pharmacy-shelf.jpg
empty shelf space0.26[2043, 2137, 2666, 2540]
1 objects with bounding boxes
  • Finds the objects you name
  • Returns a confidence score for each match
Output
Source pharmacy-oos-sign.jpg
source · pharmacy-oos-sign.jpg

I am temporarily

out-of-stock

from our supplier

Please ask our friendly staff

for a substitute.

[name redacted]

  • Reads text directly from images and photos

Compare models for this task

PRICE
$ / 1k images $ / 1M input tokens $ / 1M output tokens
$0.232 SIE OWLv2 Base
$0.309 SIE Grounding DINO
AWS Rekognition $1
Google Vision Labels $1.5
Google Vision Objects $2.25
OpenAI GPT-5.4 mini $0.75
OpenAI GPT-5.4 mini $4.5
QUALITY
AP · COCO
SIE Grounding DINO 0.58
0.56
0.55
SIE OWLv2 Base 0.43
0.42
0.41
LATENCY
p50 ms
SIE Grounding DINO 786ms
900ms
950ms
SIE OWLv2 Base 1008ms
1120ms
1180ms
PRICE
$ / 1k pages
$1.5 AWS Textract
$1.5 Google Enterprise Document OCR
$1.5 Azure Document Intelligence Read
$1.86 SIE docling OCR
SIE LightOnOCR 2 1B $2
Mistral OCR 4 $4
QUALITY
Accuracy · olmOCR
SIE LightOnOCR 2 1B 0.78
0.75
0.74
0.33 SIE docling OCR
0.32
0.31
LATENCY
p50 ms
320ms SIE docling OCR
360ms
390ms
SIE LightOnOCR 2 1B 600ms
680ms
720ms

Your agent identifies the SKU behind the shelf gap

View on GitHub
Localize the empty facing Grounding DINO base
Pharmacy shelf with an empty Panadol facing, an out-of-stock sign and a shelf label
Read the sign and label LightOnOCR-2-1B
Close crop of the pharmacy out-of-stock sign
I am temporarily out-of-stock from our supplier
Close crop of the Panadol shelf label below the empty facing
Panadol Child · 5-12Yrs Elixir 100ml · 101760 · 10⁹⁹
Your agent returns the stock check
Product
Panadol Children 5–12 Years Elixir, 100 mL
SKU
101760
State
Supplier stockout
Evidence
Detection box + OCR crops
Next check
Verify on-hand stock and replenishment ETA

Deploy your way

Self-host with K8s

Easy & scalable deployment in your own cloud.

  • Terraform to your cloud in minutes
  • Apache-2.0, same engine as Cloud
  • Scales to zero, no bill between jobs
  • Per-tenant pools, no noisy neighbors
Agent prompt
Deploy SIE to our AWS account with the superlinked/sie/aws Terraform module. Docs: superlinked.com/docs/deploymentDeploy SIE to our GCP project with the superlinked/sie/google Terraform module. Docs: superlinked.com/docs/deploymentDeploy SIE to our Azure AKS cluster via helm install. Requirements: superlinked.com/docs/deployment
Deploy guide

Run locally

Run the same models on your own machine.

  • Runs on NVIDIA GPU or Apple Silicon
  • One command, no Docker or cluster
  • All 100+ Cloud models, fully offline
  • Same SDK and IDs, no code changes
pip install "sie-server[local]" && sie-server servepip install "sie-server[local]" && sie-server serve --device cuda
Quickstart

Contact us

Tell us about your use case and we'll get back to you shortly.

Apply for an inference grant

Free capacity on our hosted cluster for selected projects. Tell us what you run and we reply by email.