VisionAnswerResult vision.answer-result@1

Generated at from openvibe-contracts v0.419.0 and openvibe-sdk v0.161.0.

Version
1.0.0
Owner
vision
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/vision/answer-result.v1.json

vision.answer-result@1: what POST /api/v1/ask, /describe and /ocr answer (`{ answer }`), and POST /api/v1/compare answers with `compare` rows and the local reader's summary added. Every AI-written text has passed noLooks: a look-naming answer is replaced, never repaired word by word.

Fields

FieldTypeRequiredDescriptionConstraints
answervision.answeryes
comparearray of object
  • items: no other fields
compare[].engineenumyes
  • one of "local", "ai"
compare[].requested_modelstring | null
compare[].modelstring | null
compare[].providerstring | null
compare[].routestring | null
compare[].okbooleanyes
compare[].textstring | null
compare[].cost_usdnumberyes
  • minimum 0
compare[].latency_msintegeryes
  • minimum 0
compare[].error_codestring | null
localobject
  • no other fields
local.okbooleanyes
local.modelstring | nullyes
local.confidencenumber | nullyes
local.error_codestring | nullyes

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: one
{
  "answer": {
    "id": "vis_01J8Z3Q4R5S6T7V8W9X0Y1Z2A4",
    "task": "ask",
    "mode": "auto",
    "source": "upload",
    "image_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "image_mime": "image/png",
    "image_bytes": 1024,
    "text": "A desk with a keyboard and a mug.",
    "answer": {},
    "cost_usd": 0,
    "latency_ms": 42,
    "created_at": "2026-10-29T10:00:00.000Z"
  }
}
Rejected: one
{
  "answer": {
    "id": "vis_short"
  }
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('vision.answer-result@1', value);   // { valid, errors: [{ path, message }] }