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

Read the numbers off dashboards that have no API

Superlinked gives your agent one API to turn dashboards, pipeline views and admin tables into typed JSON it can check.

Get started
Argo CD Grafana dashboard: 1094 applications deployed, with health and sync status counts
applications_deployed 1,094
health
Healthy
753
Progressing
23
Suspended
0
Degraded
28
Missing
263
Unknown
27
sync
Synced
699
OutOfSync
359
Unknown
36

753 + 23 + 0 + 28 + 263 + 27 = 1,094

699 + 359 + 36 = 1,094

Health and sync each add up to the 1,094 deployed

Your agent gets 328 of 335 values exactly as the screen shows them

View evidence
Apache Superset

Slack Dashboard

Apache Superset Slack Dashboard with four big-number tiles and a timezone table
Weekly Threads
12 · +9.1% WoW
Weekly Messages
217 · -7.3% WoW
New Members per Month
124 · -26.6% MoM
Number of Members
nothing returned screen shows 2.51k
America/Los_Angeles
410 screen shows 416
Asia/Kolkata
354
Europe/Brussels
79
America/Sao_Paulo
49
Kubernetes Dashboard

Node detail

Kubernetes Dashboard node page with CPU, memory and pod gauges and a conditions table
Node
kubernetes-dashboard-control-plane
CPU requests
9.4% · 0.75 cores
Memory requests
2.5% · 150 MiB
Pods
6.4% · 7 pods
DiskPressure
False · KubeletHasNoDiskPressure
Ready
True · KubeletReady
kindnet-fmj8d
Running · 5 restarts
GitLab

CI/CD pipelines list

GitLab CI/CD pipeline list with three pipeline rows
All tab count
1,000+
Pipeline 1234145533
Warning · 02:24:47
Its branch
ruby_3_2 screen shows ruby3_2
Pipeline 1234128996
Failed · 00:35:06
Its merge request
!147325 screen shows 147325
Its commit
0bd7ba8a
GitLab (Grafana dashboard)

GitLab CI pipelines health dashboard

Grafana dashboard of GitLab CI pipelines with a table of failed runs
Pipelines
219
Failed pipelines
18
Average pipeline duration
2 hours
Failed run 1
v18.2.1 · 5 hours screen shows v19.2.1 · 5 hours
Failed run 6
v16.6.3 · 1 hour
Failed run 12
v13.5.0-rc1 · 43 minutes

Across all 12 recorded screens, 328 of 335 values matched the screen and 7 did not. The 4 here include every screen that missed anything.

Ask for one metric and get schema-valid JSON back

View on GitHub
from pathlib import Path
import json
from sie_sdk import SIEClient
client = SIEClient(
api_key="API keysk-sie-…",
base_url="https://api.superlinked.com",
)
schema = json.loads("""
{
"type": "object",
"properties": {
"metric": {
"type": "string"
},
"value": {
"type": "string"
},
"change": {
"type": "string"
},
"period": {
"type": "string"
}
},
"required": [
"metric",
"value",
"change",
"period"
],
"additionalProperties": false
}
""")
image = {"data": Path(imagegitlab-dora-metrics.pngbrowse).read_bytes(), "format": "png"}
result = client.generate(
"modelQwen/Qwen3.8-27B-FP8",
"queryExtract Project-Alpha's deployment frequency: the metric, value, change, and reporting period.",
max_new_tokens=512,
images=[image],
grammar={"json_schema": schema, "label": "dashboard_metric", "strict": True},
)
print(json.loads(result["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 schema = {
  "type": "object",
  "properties": {
    "metric": {
      "type": "string"
    },
    "value": {
      "type": "string"
    },
    "change": {
      "type": "string"
    },
    "period": {
      "type": "string"
    }
  },
  "required": [
    "metric",
    "value",
    "change",
    "period"
  ],
  "additionalProperties": false
};
const image = await readFile("gitlab-dora-metrics.png");
const result = await client.generate(
  'Qwen/Qwen3.8-27B-FP8',
  "Extract Project-Alpha's deployment frequency: the metric, value, change, and reporting period.",
  {
    maxNewTokens: 512,
    images: [image],
    grammar: {
      json_schema: schema,
      label: "dashboard_metric",
      strict: true,
    },
  },
);
console.log(JSON.parse(result.text));
image_bytes=$(base64 < 'gitlab-dora-metrics.png' | tr -d '\n')
curl https://api.superlinked.com/v1/generate/Qwen__Qwen3.8-27B-FP8 \
  -H "Authorization: Bearer sk-sie-…" \
  -H "Content-Type: application/json" \
  -d "{\"prompt\":\"Extract Project-Alpha's deployment frequency: the metric, value, change, and reporting period.\",\"max_new_tokens\":512,\"images\":[{\"data\":\"$image_bytes\",\"format\":\"png\"}],\"grammar\":{\"json_schema\":{\"type\":\"object\",\"properties\":{\"metric\":{\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"change\":{\"type\":\"string\"},\"period\":{\"type\":\"string\"}},\"required\":[\"metric\",\"value\",\"change\",\"period\"],\"additionalProperties\":false},\"label\":\"dashboard_metric\",\"strict\":true}}"
Build the "Screenshot mining" 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: Qwen/Qwen3.8-27B-FP8 (SIE primitive: /generate). Keep the model id configurable.

Task
- Input: an uploaded app screenshot plus the fields to extract.
- Behaviour: describe the screenshot, then return its primary metric as schema-valid JSON
- 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
Source gitlab-dora-metrics.png
source · gitlab-dora-metrics.png
metricDeployment frequency
value25.4/d
change-6.7%
periodLast full calendar month

Screenshot extraction quality and latency

PRICE
$ / 1k images $ / 1M input tokens $ / 1M output tokens
$0.309 SIE Grounding DINO
AWS Rekognition $1
Google Vision Labels $1.5
SIE Qwen3.6 27B $0.72
OpenAI GPT-5.4 mini $0.75
Anthropic Claude Haiku 4.5 $1
$0.72 SIE Qwen3.6 27B
OpenAI GPT-5.4 mini $4.5
Anthropic Claude Haiku 4.5 $5
QUALITY
Field accuracy
SIE Qwen3.6 27B 0.86
0.84
0.83
SIE Grounding DINO 0.74
0.72
0.71
LATENCY
p50 s
0.8s SIE Grounding DINO
0.9s
0.9s
SIE Qwen3.6 27B 1.5s
1.6s
1.8s

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.