Catch damaged pieces with labels your inspectors already use
Superlinked gives your agent one API to score product photos against your own grade labels, so damaged pieces go to review before they ship.
- whole undamaged gum pellet
- broken or damaged gum pellet
Passed VisA: normal
- whole undamaged gum pellet
- broken or damaged gum pellet
Flagged for review VisA: chunk of gum missing
No broken piece got through, and no whole piece was flagged
- whole undamaged cashew
- broken or damaged cashew
Passed
- whole undamaged cashew
- broken or damaged cashew
Flagged
Fryum wheel
VisA, Amazon Science, CC BY 4.0
- whole undamaged fryum wheel
- broken or damaged fryum wheel
Tie
- whole undamaged fryum wheel
- broken or damaged fryum wheel
Flagged
Pipe fryum
VisA, Amazon Science, CC BY 4.0
- whole undamaged snack tube
- broken or damaged snack tube
Passed
- whole undamaged snack tube
- broken or damaged snack tube
Flagged
Chewing gum
VisA, Amazon Science, CC BY 4.0
- whole undamaged gum pellet
- broken or damaged gum pellet
Passed
- whole undamaged gum pellet
- broken or damaged gum pellet
Flagged
The board shows one pair per product. Across all 16 recorded photos the reranker flagged 8 of 8 damaged pieces and passed 7 of 8 whole ones, scoring 0.562 on both labels for the fryum wheel it tied on. SigLIP 2 base, the cheaper model, sorted 12 of 16: it passed 2 damaged pieces and flagged 2 whole ones.
Grade your own photos with your own labels, no training set
from pathlib import Pathfrom sie_sdk import SIEClientclient = SIEClient( api_key="API keysk-sie-…", base_url="https://api.superlinked.com",)labels = [ "labelwhole undamaged cashew", "labelbroken or damaged cashew",]image = {"data": Path(imagecashew-damaged-014.jpgbrowse).read_bytes(), "format": "jpeg"}items = [{"id": str(i), "text": label} for i, label in enumerate(labels)]ranked = client.score("modelQwen/Qwen3-VL-Reranker-2B", {"images": [image]}, items)print([(labels[int(row["item_id"])], row["score"]) for row in ranked["scores"]])import { readFile } from 'node:fs/promises';
import { SIEClient } from '@superlinked/sie-sdk';
const client = new SIEClient('https://api.superlinked.com', {
apiKey: 'sk-sie-…',
});
const labels = [
"whole undamaged cashew",
"broken or damaged cashew",
];
const image = await readFile("cashew-damaged-014.jpg");
const items = labels.map((text, i) => ({ id: String(i), text }));
const ranked = await client.score('Qwen/Qwen3-VL-Reranker-2B', { images: [image] }, items);
console.log(ranked.scores.map(({ itemId, score }) => ({ label: labels[Number(itemId)], score })));image_bytes=$(base64 < 'cashew-damaged-014.jpg' | tr -d '\n')
curl https://api.superlinked.com/v1/score/Qwen%2FQwen3-VL-Reranker-2B \
-H "Authorization: Bearer sk-sie-…" \
-H "Content-Type: application/json" \
-d "{\"query\":{\"images\":[{\"data\":\"$image_bytes\",\"format\":\"jpeg\"}]},\"items\":[{\"id\":\"0\",\"text\":\"whole undamaged cashew\"},{\"id\":\"1\",\"text\":\"broken or damaged cashew\"}]}"Build the "Image classify" 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-VL-Reranker-2B (SIE primitive: /score). Keep the model id configurable.
Task
- Input: an uploaded image plus candidate labels.
- Behaviour: return the candidate image labels ranked by similarity
- Score the image against the candidate-label items, then rank labels by score.
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.
- No image-specific training data needed
Image classification quality and latency
Deploy your way
Managed Cloud
Full compute toolkit for your agents with zero ops.
- No idle GPUs, pay for what you use
- Fits your stack: SDK, API, CLI, MCP
- Zero lock-in, self-host the same stack
- SOC 2 Type 2, US or EU data residency
no credit card required
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
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 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