Let your agent read the photo before it acts
Superlinked gives your agent one API to ask an equipment photo or a wiring diagram a specific question, such as whether a breaker is locked out.
Can a technician switch this main breaker on right now? Answer yes or no, then say what in the photo decides it.
No, the technician cannot switch this main breaker on right now because it is secured with a padlock and has a red tag attached, indicating it is intentionally locked out for safety or maintenance purposes.
Placards and wiring diagrams come back exactly right
What is the drain tank's capacity, and what pressure is its relief device set at?
The drain tank has a capacity of 6000 gallons, and its relief device is set at 50 psig.
Matches Drawing: 6000 GAL, KD #2 SET AT 50 PSIG
U.S. Atomic Energy Commission, OSTI 4307822 · public domain
Which circuits in this wiring diagram are protected by B6 breakers, and what load does each one carry?
The circuits protected by B6 breakers are the "Stairs I lighting" and "Stairs II lighting" circuits, each carrying a load of P=120W.
Matches Drawing: Stairs I and Stairs II lighting, B6, 120 W each
Dmitry G via Wikimedia Commons · public domain
What UN number is on this truck's hazmat placard, and what hazard class does the placard show?
The UN number on the truck's hazmat placard is 1993, and it indicates a Class 3 flammable liquid hazard.
Matches Caption: placard 1993, diesel fuel
Ben Ostrowsky via Wikimedia Commons · CC BY 2.0
What pressure is this gauge reading, in psi?
The gauge is reading approximately 350 psi.
Miss Caption: the manometer indicates 400 psi
U.S. Army photo, DVIDS 6871522 · public domain
What pressure does this gauge read, in millimetres of mercury?
Based on the position of the needle, this gauge reads approximately **130 mm Hg**.
Miss Page author's reading: about 761 mm Hg
Steve Jurvetson via Wikimedia Commons · CC BY 2.0These 5 come from 12 recorded questions, and 10 answers matched the published caption, the drawing or the display. Both misses are here, and both read a needle against an analog dial.
Ask your own question about a photo and get a one-sentence answer
from pathlib import Pathfrom sie_sdk import SIEClientclient = SIEClient( api_key="API keysk-sie-…", base_url="https://api.superlinked.com",)image = {"data": Path(imagetire-pressure-display.jpgbrowse).read_bytes(), "format": "jpeg"}result = client.generate( "modelQwen/Qwen3.8-27B-FP8", "queryWhich tire has the lowest pressure on this display, and what is it? Start your reply with the answer in one sentence.", max_new_tokens=256, images=[image],)print(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 image = await readFile("tire-pressure-display.jpg");
const result = await client.generate(
'Qwen/Qwen3.8-27B-FP8',
"Which tire has the lowest pressure on this display, and what is it? Start your reply with the answer in one sentence.",
{ maxNewTokens: 256, images: [image] },
);
console.log(result.text);image_bytes=$(base64 < 'tire-pressure-display.jpg' | 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\":\"Which tire has the lowest pressure on this display, and what is it? Start your reply with the answer in one sentence.\",\"max_new_tokens\":256,\"images\":[{\"data\":\"$image_bytes\",\"format\":\"jpeg\"}]}"Build the "Caption / VQA" 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 image plus a question or caption instruction.
- Behaviour: return a detailed caption or answer the question about 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.
Image question answering 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