VisionProductResult vision.product-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/product-result.v1.json

vision.product-result@1: POST /api/v1/product answers a description of the product only (never a person), the CLIP embedding, and candidate offers from OpenVibe.Deals and open.shoes with their score, price and URL. A room must not treat a candidate as a price it verified.

Fields

FieldTypeRequiredDescriptionConstraints
answerobjectyes
  • no other fields
answer.descriptionstringyes
  • maxLength 300
answer.embeddingarray of numberyes
answer.offersarray of objectyes
  • maxItems 10
  • items: no other fields
answer.offers[].sourcestringyes
answer.offers[].titlestringyes
  • maxLength 200
answer.offers[].urlstringyes
  • pattern ^https://
  • format uri
answer.offers[].pricenumber | null
answer.offers[].scorenumber
answer.warningsarray of stringyes
answer.receiptobjectyes
  • no other fields
answer.receipt.engineenumyes
  • one of "local", "routed", "local+routed", "local+routed description"
answer.receipt.modelstring | nullyes
answer.receipt.cost_usdnumberyes
  • minimum 0
answer.receipt.msintegeryes
  • minimum 0
answer.receipt.confidencenumber | nullyes
answer.receipt.retentionstringyes

Examples

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

Valid: one
{
  "answer": {
    "description": "A red running shoe.",
    "embedding": [
      0.1,
      0.2
    ],
    "offers": [
      {
        "source": "deals",
        "title": "Red runner",
        "url": "https://openvibe.deals/x",
        "price": 79.99,
        "score": 0.9
      }
    ],
    "warnings": [],
    "receipt": {
      "engine": "local+routed description",
      "model": "gpt-4o-mini",
      "cost_usd": 0.0001,
      "ms": 800,
      "confidence": 0.9,
      "retention": "not stored"
    }
  }
}
Rejected: one
{
  "answer": {
    "description": "A red running shoe.",
    "embedding": [],
    "offers": [
      {
        "source": "deals",
        "title": "Red runner",
        "url": "http://insecure.example/x"
      }
    ],
    "warnings": [],
    "receipt": {
      "engine": "local",
      "model": null,
      "cost_usd": 0,
      "ms": 1,
      "confidence": null,
      "retention": "x"
    }
  }
}

Validate

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