WikiImagesSuggestResult wiki.images-suggest-result@1
Generated at from
openvibe-contracts v0.419.0 and
openvibe-sdk v0.161.0.
- Version
- 1.0.0
- Owner
- wiki
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/wiki/images-suggest-result.v1.json
wiki.images-suggest-result@1: what wiki.images.suggest answers. Each suggestion says where a picture came from and keeps its licence and author (Commons and Openverse), the OpenVibe.Pics page and its uploader, the page's own Media object, or — only when nothing real exists and the subject is not a real person — an AI illustration labelled 'Illustration made with <model>'. A suggestion is a candidate, not an attachment: the editor chooses one, the file goes to Media, and only then does it become a page attachment.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
article_id | string | yes |
| |
task | const | yes | The AI task that found the pictures. |
|
query | string |
| ||
subject_is_person | boolean | True when the article is about a real person: no AI illustration is suggested. | ||
run_id | string | null |
| ||
note | string | null | Why nothing more was suggested (no licensed picture found, the AI is not configured, the subject is a person). |
| |
suggestions | array of object | yes |
| |
suggestions[].provider | enum | yes |
| |
suggestions[].role | enum | yes |
| |
suggestions[].media_id | string | null | Set for provider media, or once a chosen suggestion is in Media. |
| |
suggestions[].url | string | null | The picture file to fetch (https) or to show when Media already serves it. |
| |
suggestions[].page_url | string | null | The picture's page at its source (Commons' file page, Openverse's result, the Pics picture, the Media object). |
| |
suggestions[].title | string | null |
| ||
suggestions[].author | string | null | The author or uploader, kept for the credit line. |
| |
suggestions[].license | string | null |
| ||
suggestions[].license_url | string | null |
| ||
suggestions[].width | integer | null |
| ||
suggestions[].height | integer | null |
| ||
suggestions[].alt | string | null |
| ||
suggestions[].caption | string | null |
| ||
suggestions[].credit | string | null | The line a figure shows: author, licence, or 'Illustration made with <model>' for an AI image. |
| |
suggestions[].ai | boolean | |||
suggestions[].model | string | null |
| ||
suggestions[].data_url | string | null | An AI illustration's bytes as a data: URL when the provider returned no hosted URL. |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: mixed
{
"article_id": "pg_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"task": "wiki.article.images",
"query": "OpenVibe Link machine",
"subject_is_person": false,
"run_id": "run_01JAB2C3D4E5F6G7H8J9K0MNPS",
"note": null,
"suggestions": [
{
"provider": "commons",
"role": "lead",
"media_id": null,
"url": "https://upload.wikimedia.org/wikipedia/commons/8/8a/OpenVibe_Link.jpg",
"page_url": "https://commons.wikimedia.org/wiki/File:OpenVibe_Link.jpg",
"title": "OpenVibe Link running on a laptop",
"author": "Ada Example",
"license": "CC BY-SA 4.0",
"license_url": "https://creativecommons.org/licenses/by-sa/4.0/",
"width": 1280,
"height": 800,
"alt": "The OpenVibe Link window on a laptop",
"caption": "OpenVibe Link running on a laptop",
"credit": "Picture: Ada Example, CC BY-SA 4.0",
"ai": false
},
{
"provider": "ai",
"role": "figure",
"media_id": null,
"url": null,
"title": "A diagram of the relay",
"author": null,
"license": null,
"license_url": null,
"width": 1024,
"height": 1024,
"alt": "An illustration of a relay between two machines",
"caption": "An illustration of the relay",
"credit": "Illustration made with anthropic/claude-opus-5-5",
"ai": true,
"model": "anthropic/claude-opus-5-5",
"data_url": "data:image/png;base64,iVBORw0KGgo="
}
]
}Rejected: no-provider
{
"article_id": "pg_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"task": "wiki.article.images",
"suggestions": [
{
"role": "lead"
}
]
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('wiki.images-suggest-result@1', value); // { valid, errors: [{ path, message }] }