ReviewsSummaryProposeRequest reviews.summary-propose-request@1
Generated at from
openvibe-contracts v0.53.0 and
openvibe-sdk v0.11.0.
- Version
- 1.0.0
- Owner
- reviews
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/reviews/summary-propose-request.v1.json
reviews.summary-propose-request@1: the body of reviews.summary.propose on OpenVibe.Reviews (a service principal only: 403 summary.service_only): POST /api/v1/entities/:ref/summary/proposals { workflow: { id, run_id }, overview?, overview_signals?, pros?, cons?, stub_provider?, note? } proposes an AI summary revision (workflow reviews.summarize_entity) whose every pro and con cites live signals of the entity. It is stored with ai authorship, never published by this call and stays out of pages, feeds and Search until a person approves it. Unknown keys are refused, and nothing can carry a rating: 422 summary.rating_forbidden for a rating-like key, 422 summary.rating_in_text for a rating stated in the text. Other refusals: 400 authorship.workflow_required, 422 summary.invalid, summary.empty, summary.uncited_point, summary.invalid_citation; 409 entity.not_active.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
workflow | object | yes | ||
workflow.id | string | yes | The OpenVibe.AI workflow, reviews.summarize_entity. |
|
workflow.run_id | string | yes | The run (runId is read too). |
|
workflow.runId | string | |||
workflow.version | any | |||
workflow.model | string | |||
overview | string | At most 6000 characters. | ||
overview_signals | array of string | The signals the overview rests on (needed when there are no pros or cons). |
| |
pros | array of object |
| ||
pros[].text | string | yes | At most 600 characters once whitespace is collapsed. |
|
pros[].signals | one of | yes | The live signals of the entity the point rests on (at least one). | |
cons | array of object |
| ||
cons[].text | string | yes | At most 600 characters once whitespace is collapsed. |
|
cons[].signals | one of | yes | The live signals of the entity the point rests on (at least one). | |
stub_provider | boolean | The run was answered by a stub provider (stubProvider is read too). | ||
stubProvider | boolean | |||
note | string | null | Goes into the revision message. | ||
expected_revision | any | Accepted and ignored by a proposal. | ||
expectedRevision | any | Accepted and ignored by a proposal. | ||
message | any | Accepted and ignored by a proposal. | ||
publish | any | Accepted and ignored by a proposal. | ||
correction_note | any | Accepted and ignored by a proposal. | ||
correction_id | any | Accepted and ignored by a proposal. |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: proposal
{
"workflow": {
"id": "reviews.summarize_entity",
"run_id": "run_01JAC8R9S0T1V2W3X4Y5Z6A7B8"
},
"overview": "Reviewers praise the comfort; battery life draws complaints.",
"overview_signals": [
"sig_01JAC2S3G4H5J6K7M8N9P0Q1R2"
],
"pros": [
{
"text": "Comfortable over long sessions",
"signals": [
"sig_01JAC2S4G4H5J6K7M8N9P0Q1R2"
]
}
],
"cons": [
{
"text": "Battery life shorter than advertised",
"signals": "sig_01JAC2S3G4H5J6K7M8N9P0Q1R2"
}
]
}Rejected: no-workflow
{
"pros": [
{
"text": "Comfortable",
"signals": [
"sig_01JAC2S4G4H5J6K7M8N9P0Q1R2"
]
}
]
}Rejected: rating-field
{
"workflow": {
"id": "reviews.summarize_entity",
"run_id": "run_01JAC8R9S0T1V2W3X4Y5Z6A7B8"
},
"overview": "Great.",
"overview_signals": [
"sig_01JAC2S3G4H5J6K7M8N9P0Q1R2"
],
"rating": 4.5
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('reviews.summary-propose-request@1', value); // { valid, errors: [{ path, message }] }