| POST | /v1/decisions |
|---|
"use strict";
export class DecisionAnswer {
/** @param {{type?:string,noul?:number,choice?:string,score?:number,confidence?:number,probabilities?:{ [index:string]: number; },legend?:{ [index:string]: string; }}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {string} */
type;
/**
* @type {?number}
* @description noul: probability from 0 (no) to 1 (yes) */
noul;
/**
* @type {?string}
* @description choice: the selected option */
choice;
/**
* @type {?number}
* @description score: position on the scale, 0 = first description */
score;
/** @type {?number} */
confidence;
/**
* @type {?{ [index:string]: number; }}
* @description choice/score: probability of each option (score options are "0", "1", ...) */
probabilities;
/**
* @type {?{ [index:string]: string; }}
* @description score: description of each scale position */
legend;
}
export class DecisionUsage {
/** @param {{input_tokens?:number,output_tokens?:number,cost?:number}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {number} */
input_tokens;
/** @type {number} */
output_tokens;
/** @type {?number} */
cost;
}
export class DecisionResponse {
/** @param {{id?:string,model?:string,provider?:string,answers?:{ [index:string]: DecisionAnswer; },usage?:DecisionUsage}} [init] */
constructor(init) { Object.assign(this, init) }
/** @type {?string} */
id;
/** @type {string} */
model;
/** @type {?string} */
provider;
/**
* @type {{ [index:string]: DecisionAnswer; }}
* @description Answers by question name, validated against the submitted questions */
answers = {};
/** @type {?DecisionUsage} */
usage;
}
export class DecisionQuestion {
/** @param {{type?:string,instructions?:Object,criteria?:Object}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {string}
* @description noul, choice or score */
type;
/**
* @type {Object}
* @description What to decide: text, or a JSON object/array of guidance */
instructions;
/**
* @type {?Object}
* @description noul: {true,false} descriptions; choice: {option: description}; score: ordered descriptions */
criteria;
}
export class CreateDecision {
/** @param {{model?:string,state?:Object,questions?:{ [index:string]: DecisionQuestion; },session_id?:string,user?:string,provider?:{ [index:string]: Object; }}} [init] */
constructor(init) { Object.assign(this, init) }
/**
* @type {string}
* @description The decision model, e.g. ~typesafe/jev-latest */
model;
/**
* @type {Object}
* @description The content to evaluate: a plain string, or a JSON object or array of related context */
state;
/**
* @type {{ [index:string]: DecisionQuestion; }}
* @description Named noul (yes/no probability), choice (one option) or score (ordered scale) questions */
questions = {};
/**
* @type {?string}
* @description A unique identifier for grouping related requests */
session_id;
/**
* @type {?string}
* @description End-user identifier sent to OpenRouter. Omitted unless you set it. */
user;
/**
* @type {?{ [index:string]: Object; }}
* @description OpenRouter provider routing preferences */
provider;
}
JavaScript CreateDecision DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/decisions HTTP/1.1
Host: vue-spa.web-templates.io
Accept: application/json
Content-Type: application/json
Content-Length: length
{"model":"String","state":{},"questions":{"String":{"type":"String","instructions":{},"criteria":{}}},"session_id":"String","user":"String","provider":{"String":{}}}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length
{"id":"String","model":"String","provider":"String","answers":{"String":{"type":"String","noul":0,"choice":"String","score":0,"confidence":0,"probabilities":{"String":0},"legend":{"String":"String"}}},"usage":{"input_tokens":0,"output_tokens":0,"cost":0}}