models

OpenAI: GPT-6 Luna Decisions

Markdown · JSON

OpenAI: GPT-6 Luna Decisions

GPT-6 Luna in OpenAI’s Decisions mode evaluates text and images and returns typed probabilistic answers: a condition probability, a fixed choice or a rubric score. It supports classification, routing and prioritization without using a written explanation as the decision result.

About the model

This description covers the model’s capabilities. Available in Ailoot inputs, outputs and options are listed for the selected method below.

GPT-6 Luna in OpenAI’s Decisions mode evaluates supplied evidence and returns typed answers about it. The producer documents GPT-6 Luna as the model for this specialized decision interface. It can estimate whether a condition holds, choose from fixed options or place an input on an ordered rubric. Use this GPT-6 Luna mode when the task needs a defined decision result rather than a written response.

Shared input, named questions and answers

A producer request contains the model, shared input and a questions array. The input can be a text string or user messages with text and images. Each question has a unique name, a type, instructions and any required options or levels. The answer array echoes the question names, allowing the result to be associated with the condition, category or rating that was actually requested.

For a support message, supply the message and the context relevant to the next decision, then name the question around the field the workflow needs. For a document passage, include the text that establishes the criterion instead of an unsupported reference to a larger file. Define the question around observable facts and separate independent concerns. A useful result can combine an issue category with a severity rating while retaining the definition and meaning of each answer.

Predicate: estimating whether a condition holds

A predicate question returns a probability from 0 to 1 that the defined condition is true. It can check passage relevance or a visible condition in an image. For a product photograph, describe the visible defect to check, such as a crack or tear, and provide the image with that criterion. The value is the model’s estimate; the application chooses the threshold used for flagging or review.

OpenAI’s Decisions guide requires inline encoded image data for this endpoint. Hosted image addresses and file identifiers are not supported image inputs in that documented contract. Text and image content can be combined in a user message so that the visual evidence is evaluated with the relevant written context. Keep the image legible and the condition specific; a probability for one stated defect is not a general inspection report covering every possible issue.

Choice: selecting one supplied value

A choice question selects from options with distinct values and descriptions explaining when they apply. The returned choice is one of those values, with per-option probabilities and a separate confidence field. For routing, define categories around the actual teams or outcomes available, and include an other option when the set does not cover every input. Keep these categories unordered: their positions are not a severity scale.

A practical classification brief can distinguish a product defect, an access issue and a general request. Describe the boundary between those categories instead of relying only on short names. Use the returned choice for the proposed label and inspect the distribution when several meanings remain plausible. The result supplies a selection; the application determines whether that selection should trigger an automatic route or a review.

Score: a probability-weighted rubric position

A score question uses ordered levels arranged from lowest to highest. Level indices start at 0, and the score is the probability-weighted average of those indices. It can fall between levels. For issue severity, one level can mean cosmetic impact, another a usable workaround and another complete blockage; define the criteria that separate them. The answer includes the per-level probabilities and confidence along with the score.

The expected score summarizes the distribution rather than choosing a single category. Keep that distinction when using a result for prioritization or an aggregate trend. A fixed-category display can use a choice question instead. Confidence is a separate reported field for choice and score answers; the guide does not define it as identical to the selected option’s probability.

Several questions and dependent decisions

Independent questions can share input in one producer request, including different question types. A photo could support a defect predicate and a category choice, or a message a category and severity evaluation. Give each concern its own instructions and meaning. When a later decision depends on an earlier result, the producer recommends separate requests so the second question can use that result explicitly. Do not assume that ordering questions in one array makes them a sequential conversation.

Choosing the right output and interpreting limits

Decisions supplies the defined predicate, choice or score result. An answer can instead have the type refusal; check its type before reading a probability, choice or score. OpenAI distinguishes this from generating arbitrary schema-based objects or written explanations through Structured Outputs, and from requesting a tool action through function calling. A decision answer should not be presented as a generated justification or proof that an external action occurred. General chat-model output, reasoning and tool settings are not automatically part of this specialized mode.

Use representative labeled inputs to assess thresholds for routing, filtering and review, taking account of the consequences of false positives and false negatives. Keep the evidence, question definitions and raw numerical outputs associated so an ambiguous result can be inspected. Keep the shared evidence relevant to the named questions, and define each option or rubric level clearly before submitting the decision task. Prepare the evidence and answer types around the documented decision workflow, with the output interpreted according to the task it evaluates.

Ailoot Ultra · System One POST /v1/systemone openai/gpt-6-luna-decisions

openai/gpt-6-luna-decisions

OpenAI /openai/gpt-6-luna-decisions

Overview

GPT-6 Luna in OpenAI’s Decisions mode evaluates text and images and returns typed probabilistic answers: a condition probability, a fixed choice or a rubric score. It supports classification, routing and prioritization without using a written explanation as the decision result.

Accepted inputs
Text · Images
Results
decisions

Available in Ailoot · inputs & methods

Ailoot Ultra · System One POST /v1/systemone
Input types
text, image
Output types
decisions
Output format
json
FieldTypeRequirementValues & limitsDefault
FieldmodelTypestringRequirementRequiredValues & limits
openai/gpt-6-luna-decisions
Default—
FieldproviderTypeschemaRequirementOptionalValues & limitsDefault—
FieldquestionsTypeobjectRequirementRequiredValues & limitsDefault—
Fieldsession_idTypestringRequirementOptionalValues & limitsDefault—
FieldstateTypeschemaRequirementRequiredValues & limitsDefault—
FieldtraceTypeschemaRequirementOptionalValues & limitsDefault—
FielduserTypestringRequirementOptionalValues & limitsDefault—
Fieldquestions.<id>.typeTypestringRequirementRequiredValues & limits
noul, choice, score
Default—
Fieldquestions.<id>.instructionsTypestring|object|arrayRequirementRequiredValues & limitsDefault—
Fieldquestions.<id>.criteriaTypeobject|arrayRequirementOptionalValues & limits
Conditions: choice/score: required; noul: optional. choice criteria is object; score is array with minItems1.
Default—
Fieldquestions.<id>.criteria.trueTypestring|object|arrayRequirementRequiredValues & limits
Applies when: noul criteria object supplied
Default—
Fieldquestions.<id>.criteria.falseTypestring|object|arrayRequirementRequiredValues & limits
Applies when: noul criteria object supplied
Default—
Input material combinations

noul · Required: state, questions.<id>.type=noul, questions.<id>.instructions

choice · Required: state, questions.<id>.type=choice, questions.<id>.instructions, criteria object

score · Required: state, questions.<id>.type=score, questions.<id>.instructions, criteria array with minItems1

Method parameters and lifecycle
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractmodel, state, questions
Parametermaterial_typesContracttext, image
Parameteroptional_controlsContractprovider, session_id, trace, user
Parametermultimodal_input_bindingContractUse only exact declared state/document representation. Manufacturer image capability alone does not establish a model-specific accepted image carrier.

Lifecycle: synchronous

Send the exact model ID and retain the complete native response.

Pricing

Tariff references do not add request options. Supported parameters are listed for the selected method.

Fast mode
Not specified When fast mode is selected
Flex mode
Not specified When flex mode is selected
Maximum reasoning effort
Not specified When maximum reasoning effort uses the default adjustment

Ailoot rates

Prices by configuration

Match each charge to the conditions shown. Use one rate for each set of alternative configurations.

ConfigurationRate scheduleContext tokens, more thanContext tokens, up to and includingCharge
ConfigurationBase token ratesRate scheduleBase rateContext tokens, more than—Context tokens, up to and includingNo upper boundCharge
Input · Input tokens $0.0002 / 1K tokens
Output · Output tokens $0 / 1K tokens
Input · Cache read $0 / 1K tokens
Input · Cache write $0 / 1K tokens
Input · Cache write, 1 hour — / 1K tokens
ConfigurationRequest-length tier 1Rate schedule—Context tokens, more than0Context tokens, up to and includingNo upper boundCharge
Input · Input tokens $0.0002 / 1K tokens
Output · Output tokens $0 / 1K tokens
Input · Cache read $0 / 1K tokens
Input · Cache write $0 / 1K tokens
Input · Cache write, 1 hour — / 1K tokens

Ailoot reserves an estimated amount before a request. After the result, it settles the final charge from measured usage. Streaming settlement uses the final usage record. How reservation and settlement work →

Example requests

Ailoot Ultra · System One

Retained official request structure; documentary exampleUse your actual request material and retain the complete result
{
  "model": "openai/gpt-6-luna-decisions",
  "questions": {
    "is_bug": {
      "criteria": {
        "false": "The customer is asking a question or requesting a feature.",
        "true": "The customer describes broken or unexpected product behavior."
      },
      "instructions": "Is the customer reporting a software defect?",
      "type": "noul"
    },
    "team": {
      "criteria": {
        "account": "Login, permissions, or profile issues.",
        "frontend": "Rendering, layout, or browser compatibility issues.",
        "payments": "Checkout, billing, or payment processing issues."
      },
      "instructions": "Which team should own this ticket?",
      "type": "choice"
    },
    "urgency": {
      "criteria": [
        "Can wait for the next release",
        "Should be fixed this week",
        "Blocking revenue right now"
      ],
      "instructions": "How urgent is this ticket?",
      "type": "score"
    }
  },
  "state": {
    "customer_tier": "enterprise",
    "ticket": "My checkout page shows a blank screen after I click Pay. I have tried two browsers."
  }
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_REQUEST_FILE:?Set your actual JSON request file}"
export AILOOT_REQUEST_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads(Path(os.environ['AILOOT_REQUEST_FILE']).read_text(encoding='utf-8'))
if not isinstance(p,dict): raise SystemExit('Request must be a JSON object')
p['model']='openai/gpt-6-luna-decisions'
Path('request.json').write_text(json.dumps(p,ensure_ascii=False),encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path('result.json').read_text()),ensure_ascii=False,indent=2))
PY_RESULT

Receive and save results

Ailoot Ultra · System One

json

Keep all completed results

Keep every complete returned response, file and content part.

Every supplied question-ID answer with its exact type, noul/choice/score value, confidence, probabilities and legend is retained. Entire original JSON is stored and returned only after settlement.

If the original response needs checking

Preserve original operation and full/partial reply; do not replay POST.

Response fields
FieldType
FieldmodelTypestring
FieldidTypestring
FieldproviderTypestring
Fieldanswers.<id>.typeTypestring
Fieldanswers.<id>.noulTypenumber
Fieldanswers.<id>.choiceTypestring
Fieldanswers.<id>.scoreTypenumber
Fieldanswers.<id>.confidenceTypenumber
Fieldanswers.<id>.probabilitiesTypeobject
Fieldanswers.<id>.legendTypeobject
Fieldusage.input_tokensTypeinteger
Fieldusage.output_tokensTypeinteger
Fieldusage.costTypenumber
Errors and next steps
ResponseConditionNext step
Response400 · invalid_request_errorConditionInvalid required field, representation or valueNext stepCorrect the indicated request field.

Aliases

Model aliases

Ailoot Ultra openai/gpt-6-luna-decisions

Method path aliases

Use the method paths shown above.

Related caller IDs

openai/gpt-6-luna-decisions

FAQ · OpenAI: GPT-6 Luna Decisions
What inputs and results are available?

POST /v1/systemone · openai/gpt-6-luna-decisions: text, image → decisions

Which fields does the request use?

POST /v1/systemone · openai/gpt-6-luna-decisions: model, provider, questions, session_id, state, trace, user

More details

Connect Ailoot to Claude Code, OpenCode, Hermes or your own app.

The company and its project portfolio

The company and its project portfolio: millions of customers; monthly sales in the billions.

Buy tokens at a discount.

Subscription discounts for regular use. Promo codes offer up to 50% off token purchases.

Subscription
Choose a discounted plan for your regular requests.
Promo code: up to 50% off
Enter your code at checkout. The price updates to reflect the current promotion.
Spending in your history
The model, tokens and amount are recorded for each request.

Choose a subscription · View model prices

Connect the API to a product you sell.

Use Ailoot in SaaS, apps and bots under its official service offer and licence agreement. Request a reseller licence for resale.

Commercial application
Add text, image, video and audio generation to paid features in your service.
Reseller licence
Send a description of your project and how you provide access. Request written terms for use and resale.
Documents on the website
The service offer, licence agreement and data processing policy are available before you connect.

Request a reseller licence · Service offer and licence agreement