models

OpenAI: GPT-6 Sol

Markdown · JSON

OpenAI: GPT-6 Sol

GPT-6 Sol is bedoeld voor complex programmeren en taken met meerdere toolstappen. Het werkt met tekst en afbeeldingen en laat de redeneerdiepte instellen.

Over het model

Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.

Programmeren met voortzetting van het werk

GPT-6 Sol is een model van OpenAI voor complex programmeren en taken met meerdere toolstappen. Het accepteert tekst en afbeeldingen en geeft tekst terug. Het is ontworpen voor werk waarbij een afzonderlijk antwoord kan overgaan in een actie en het actieresultaat in een nieuwe oplossingsstap.

De mogelijkheden omvatten streaminguitvoer, gestructureerde uitvoer en functieaanroepen. Daardoor kan de gewenste resultaatvorm worden gekozen: toelichting, voorbereide tekst of gegevens met een vooraf vastgelegde structuur. Wanneer een taak een externe actie vereist, gebruikt het model de aangeboden tools.

Redeneren en het gekozen formaat

none, low, medium, high, xhigh en max kunnen worden ingesteld; standaard wordt medium gebruikt. none betekent verwerking zonder redeneren. De andere niveaus bepalen de oplossingsinspanning; de omvang en stijl van het eindantwoord worden afzonderlijk bepaald.

Los van de redeneerinspanning voorziet de fabrikant in gewone en uitgebreide uitvoeringsmodi. De gewone modus is standaard gekozen. De uitgebreide modus doet extra werk aan een moeilijke taak en kan meer tijd en tokens vereisen. De modus bepaalt de verwerkingswijze; het inspanningsniveau de analysediepte daarbinnen. De moduskeuze is voorzien voor Responses en vereist passende toepassingsondersteuning; de beschikbaarheid in de huidige Ailoot-methode is niet afzonderlijk bevestigd.

Responses is bedoeld voor redeneren met tools. In Chat Completions worden functieaanroepen alleen bij none ondersteund. Dit is een belangrijk kenmerk van dit specifieke model: de formaat- en moduskeuze bepalen of redeneren en acties in één proces kunnen worden gecombineerd.

Materiaal en volumegrenzen

Het contextvenster van de fabrikant is 1 050 000 tokens. De maximale invoer is 922 000 en de maximale uitvoer 128 000 tokens. De kennisgrens is gedateerd op 20 april 2026. Afbeeldingen horen bij het invoermateriaal; het directe resultaat van Sol blijft tekstueel.

Een groot verzoek moet rekening houden met zowel bronmateriaal als geschiedenis. Interne redenering gebruikt ook het uitvoerbudget, dus de uitvoergrens mag niet als een belofte van even lange zichtbare tekst worden begrepen. Een lange context helpt het taakmateriaal binnen één werkruimte te houden.

Code, zoeken en gekoppelde functies

OpenAI noemt zoeken op internet en in bestanden, code en opdrachten uitvoeren, bestanden wijzigen, computeracties en toolzoeken. Het model kan die functies gebruiken om stapsgewijs aan een project te werken en hun resultaten bij de volgende stap mee te nemen.

Bij een passende koppeling voorziet de fabrikant ook in een afzonderlijke tool voor beeldgeneratie, het werken met vaardigheden en externe hulpmiddelen via MCP. Het directe modelantwoord blijft tekstueel; het resultaat van beeldgeneratie wordt door een afzonderlijke tool gemaakt. De beschikbaarheid bij de fabrikant betekent niet dat die mogelijkheden in elke Ailoot-methode zijn gekoppeld.

Voor aangepaste functies ontvangt de toepassing de gekozen actie en argumenten, voert ze die uit en geeft ze het resultaat aan het model. Ondersteuning voor deze uitwisseling betekent niet dat elke tool al is gekoppeld. De functieset van een specifiek verzoek hangt af van de gekozen methode en aangeboden mogelijkheden.

Herhaalde delen van het verzoekbegin ondersteunen caching. Gestructureerde uitvoer bepaalt de gegevensvorm met een JSON-schema; de vorm volgen vervangt inhoudscontrole niet. Bij lange taken zijn manieren voorzien om een nuttige toestand te bewaren en de opgebouwde context te verkleinen.

Praktische taak

Praktische taak

Technisch voorbeeld in het Engels

Patch a pagination termination bug

A paginator requests pages with a cursor. Its loop stops only when items is empty, but the service can return a nonempty final page with next_cursor absent. Draft corrected pseudocode preserving every returned item exactly once. Include checks for an empty first page, a full final page without a cursor and two pages with distinct cursors.

Verwacht resultaat

Corrected pagination pseudocode and three behavior checks against the stated response cases.

Resultaat controleren

The loop processes the final nonempty page before stopping on its absent next cursor.
Ailoot · Anthropic Messages POST /v1/messages gpt-6-sol

gpt-6-sol

OpenAI /gpt-6-sol

Aan de slag

GPT-6 Sol is bedoeld voor complex programmeren en taken met meerdere toolstappen. Het werkt met tekst en afbeeldingen en laat de redeneerdiepte instellen.

Toegestane invoer
Tekst · Afbeeldingen
Resultaten
Tekst

Beschikbaar in Ailoot · invoer en methoden

Ailoot · Anthropic Messages POST /v1/messages
Invoer
text, image
Uitvoer
text
Context
1.050.000 tokens
Maximale uitvoer
128.000 tokens
Uitvoerformaat
json of SSE
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
gpt-6-sol
Standaard—
VeldmessagesTypemessage[]VereisteVereistWaarden en limieten
Minimumaantal items: 1
Standaard—
Veldmessages[].roleTypestringVereisteVereistWaarden en limieten
user, assistant
Standaard—
Veldmessages[].contentTypestring|content_block[]VereisteVereistWaarden en limietenStandaard—
VeldsystemTypestring|content_block[]VereisteOptioneelWaarden en limietenStandaard—
Veldmax_tokensTypeintegerVereisteVereistWaarden en limieten
Minimum: 1
Limiet geldt voor: exacte bovengrens van het gekozen model/de gekozen modelkaart
Standaard—
VeldstreamTypebooleanVereisteOptioneelWaarden en limietenStandaardfalse
VeldtemperatureTypenumberVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtop_pTypenumberVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldstop_sequencesTypestring[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldtoolsTypetool[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtools[].nameTypestringVereisteOptioneelWaarden en limieten
Geldt wanneer: tool opgegeven
Standaard—
Veldtools[].descriptionTypestringVereisteOptioneelWaarden en limietenStandaard—
Veldtools[].input_schemaTypeJSON_schemaVereisteOptioneelWaarden en limietenStandaard—
Veldtool_choiceTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldthinking.typeTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldthinking.budget_tokensTypeintegerVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldoutput_config.effortTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldmetadataTypeobjectVereisteOptioneelWaarden en limietenStandaard—
Veldcache_controlTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Combinaties van invoermaterialen

Tekst · UTF8-tekst

messages[].content of een blok met type=text

Tekst + afbeelding

{type:image,source:{type:base64,media_type,data}} of bron met type=url

Methodeparameters en levenscyclus
ParameterContract
Parametermaterial_typesContracttext, image
ParameterrequiredContractmodel, messages, max_tokens
Parameteroptional_controlsContractnull
Parametercontent_typeContractapplication/json
Parametertext_file_materialContractwerkelijke UTF-8-inhoud ingevoegd als tekst; bestands-ID’s/URLs vereisen afzonderlijke exacte ondersteuning

Levenscyclus: exact retained published method

De methodestructuren en ID’s zijn exact; de mogelijkheden van de leverancier staan los van toelating.

Tarieven

Ailoot-methodetarieven

Ailoot Anthropic MessagesPOST /v1/messages
Invoer
US$ 0,002 / 1K
Uitvoer
US$ 0,01 / 1K
Cache lezen
US$ 0,0002 / 1K
Cache schrijven
US$ 0,0025 / 1K
Cache schrijven, 5 min
US$ 0,0025 / 1K tokens
Factor fast
×2
Factor flex
×0.5

Prijzen per verzoeklengte · Anthropic Messages

Verzoekgrootte, tokensInvoerUitvoerCache lezenCache schrijvenCache 5 minCache 1 uur
Verzoekgrootte, tokens(0; 272.000]InvoerUS$ 0,002UitvoerUS$ 0,01Cache lezenUS$ 0,0002Cache schrijvenUS$ 0,0025Cache 5 minUS$ 0,0025Cache 1 uurBasis: —
Verzoekgrootte, tokens(272.000; ∞)InvoerUS$ 0,004UitvoerUS$ 0,015Cache lezenUS$ 0,0004Cache schrijvenUS$ 0,005Cache 5 minUS$ 0,005Cache 1 uurBasis: —

Tarieven in USD per 1K tokens. Als geen tarief is ingesteld, wordt het basistarief voor deze methode overgenomen; «—» betekent dat geen basistarief is ingesteld.

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Details van het referentietarief

Referentiestaffels op modelniveau veranderen de methodeselectie, kostenramingen of afschrijvingen niet. Voor de actieve kostenberekening gelden de tarieven van de geselecteerde Ailoot-methode.

Referentiestaffels van het model

Prijzen per configuratie

Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.

ConfiguratieTariefstaffelContexttokens, meer danContexttokens, tot en metKosten
ConfiguratieOpenAI Chat · Basistarieven per tokenTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieOpenAI Chat · Tariefniveau 1 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan0Contexttokens, tot en met272.000Kosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieOpenAI Chat · Tariefniveau 2 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan272.000Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.008 / 1K tokens
Uitvoer · Uitvoertokens $0.03 / 1K tokens
Invoer · Cache lezen $0.0008 / 1K tokens
Invoer · Cache schrijven $0.01 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAnthropic Messages · Basistarieven per tokenTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAnthropic Messages · Tariefniveau 1 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan0Contexttokens, tot en met272.000Kosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAnthropic Messages · Tariefniveau 2 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan272.000Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.008 / 1K tokens
Uitvoer · Uitvoertokens $0.03 / 1K tokens
Invoer · Cache lezen $0.0008 / 1K tokens
Invoer · Cache schrijven $0.01 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieOpenAI Responses · Basistarieven per tokenTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieOpenAI Responses · Tariefniveau 1 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan0Contexttokens, tot en met272.000Kosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieOpenAI Responses · Tariefniveau 2 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan272.000Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.008 / 1K tokens
Uitvoer · Uitvoertokens $0.03 / 1K tokens
Invoer · Cache lezen $0.0008 / 1K tokens
Invoer · Cache schrijven $0.01 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens

Voorbeeldverzoeken

Ailoot · Anthropic Messages

TekstvoorbeeldInvoer, afbeeldingPython SDKNode.js SDKPython-stream
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-6-sol", "max_tokens": 1024, "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -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
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-6-sol", "max_tokens": 1024, "messages": [{"role": "user", "content": [{"type": "text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["messages"][0]["content"].append({"type":"image","source":{"type":"base64","media_type":mime,"data":b64}})
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -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
import anthropic
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = anthropic.Anthropic(base_url="https://api.ailoot.ai", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
msg = client.messages.create(
    model="gpt-6-sol",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(msg.to_dict(mode="json"))
import Anthropic from "@anthropic-ai/sdk";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new Anthropic({ baseURL: "https://api.ailoot.ai", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const msg = await client.messages.create({
  model: "gpt-6-sol",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(msg);
import anthropic,os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=anthropic.Anthropic(base_url="https://api.ailoot.ai",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.messages.stream(model='gpt-6-sol',max_tokens=1024,messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_message()
    save_result(final.to_dict(mode="json"),"stream-result")

Resultaten ophalen en opslaan

Ailoot · Anthropic Messages

json of SSE

Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar alle inhoudsblokken, handtekeningen van redeneringen en werkelijke toolgebruik-ID’s. Voeg alle SSE-blokdelta’s samen; het eerste tekstblok is niet de volledige uitvoer.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar aanvraag-/antwoord-ID’s en headers. Er wordt geen algemene URL meegeleverd om teksttaken op te halen.

Antwoordvelden
VeldType
VeldidTypestring
VeldmodelTypestring
Veldcontent[]Typetext|thinking|tool_use|other content block
Veldstop_reasonTypestring|null
VeldusageTypeobject
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.

Aliasnamen

Modelaliasnamen

Ailoot gpt-6-sol
Ailoot Ultra gpt-6-sol, openai/gpt-6-sol

Aliasnamen voor methodepaden

/chat/completions

Gerelateerde aanroeper-ID’s

openai/gpt-6-sol, gpt-6-sol, gpt-6-sol

Ailoot · OpenAI Responses POST /v1/responses gpt-6-sol

gpt-6-sol

OpenAI /gpt-6-sol

Aan de slag

GPT-6 Sol is bedoeld voor complex programmeren en taken met meerdere toolstappen. Het werkt met tekst en afbeeldingen en laat de redeneerdiepte instellen.

Toegestane invoer
Tekst · Afbeeldingen
Resultaten
Tekst

Beschikbaar in Ailoot · invoer en methoden

Ailoot · OpenAI Responses POST /v1/responses
Invoer
text, image
Uitvoer
text
Context
1.050.000 tokens
Maximale uitvoer
128.000 tokens
Uitvoerformaat
json of SSE
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
gpt-6-sol
Standaard—
VeldinputTypestring|input_item[]VereisteVereistWaarden en limietenStandaard—
VeldinstructionsTypestringVereisteOptioneelWaarden en limietenStandaard—
Veldinput[].typeTypestringVereisteOptioneelWaarden en limieten
message, reasoning, function_call, function_call_output
Standaard—
Veldinput[].contentTypestring|content_part[]VereisteOptioneelWaarden en limietenStandaard—
Veldinput[].call_idTypestringVereisteOptioneelWaarden en limieten
Geldt wanneer: function_call_output; bewaar de werkelijk teruggegeven call_id
Standaard—
Veldinput[].outputTypestring|content_part[]VereisteOptioneelWaarden en limieten
Geldt wanneer: function_call_output
Standaard—
Veldmax_output_tokensTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 1
Afhankelijk van het model
Standaard—
VeldstreamTypebooleanVereisteOptioneelWaarden en limietenStandaardfalse
VeldtemperatureTypenumberVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtop_pTypenumberVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldtoolsTypetool[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtool_choiceTypestring|objectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldparallel_tool_callsTypebooleanVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldreasoning.effortTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldreasoning.summaryTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtext.formatTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtext.verbosityTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldincludeTypestring[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldstoreTypebooleanVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldprevious_response_idTypestringVereisteOptioneelWaarden en limieten
ID-vereiste: Alleen een werkelijk antwoord-ID van een ondersteunde voortzetting
Afhankelijk van het model
Standaard—
Veldservice_tierTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldprompt_cache_keyTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldprompt_cache_optionsTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Combinaties van invoermaterialen

Tekst · UTF8-tekst

invoertekst of een input_text-onderdeel

Tekst + afbeelding

{type:input_image,image_url}

Methodeparameters en levenscyclus
ParameterContract
Parametermaterial_typesContracttext, image
ParameterrequiredContractmodel, input
Parameteroptional_controlsContractnull
Parametercontent_typeContractapplication/json
Parametertext_file_materialContractwerkelijke UTF-8-inhoud ingevoegd als tekst; bestands-ID’s/URLs vereisen afzonderlijke exacte ondersteuning

Levenscyclus: exact retained published method

De methodestructuren en ID’s zijn exact; de mogelijkheden van de leverancier staan los van toelating.

Tarieven

Ailoot-methodetarieven

Ailoot OpenAI ResponsesPOST /v1/responses
Invoer
US$ 0,002 / 1K
Uitvoer
US$ 0,01 / 1K
Cache lezen
US$ 0,0002 / 1K
Cache schrijven
US$ 0,0025 / 1K
Cache schrijven, 5 min
US$ 0,0025 / 1K tokens
Factor fast
×2
Factor flex
×0.5

Prijzen per verzoeklengte · OpenAI Responses

Verzoekgrootte, tokensInvoerUitvoerCache lezenCache schrijvenCache 5 minCache 1 uur
Verzoekgrootte, tokens(0; 272.000]InvoerUS$ 0,002UitvoerUS$ 0,01Cache lezenUS$ 0,0002Cache schrijvenUS$ 0,0025Cache 5 minUS$ 0,0025Cache 1 uurBasis: —
Verzoekgrootte, tokens(272.000; ∞)InvoerUS$ 0,004UitvoerUS$ 0,015Cache lezenUS$ 0,0004Cache schrijvenUS$ 0,005Cache 5 minUS$ 0,005Cache 1 uurBasis: —

Tarieven in USD per 1K tokens. Als geen tarief is ingesteld, wordt het basistarief voor deze methode overgenomen; «—» betekent dat geen basistarief is ingesteld.

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Details van het referentietarief

Referentiestaffels op modelniveau veranderen de methodeselectie, kostenramingen of afschrijvingen niet. Voor de actieve kostenberekening gelden de tarieven van de geselecteerde Ailoot-methode.

Referentiestaffels van het model

Prijzen per configuratie

Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.

ConfiguratieTariefstaffelContexttokens, meer danContexttokens, tot en metKosten
ConfiguratieOpenAI Chat · Basistarieven per tokenTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieOpenAI Chat · Tariefniveau 1 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan0Contexttokens, tot en met272.000Kosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieOpenAI Chat · Tariefniveau 2 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan272.000Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.008 / 1K tokens
Uitvoer · Uitvoertokens $0.03 / 1K tokens
Invoer · Cache lezen $0.0008 / 1K tokens
Invoer · Cache schrijven $0.01 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAnthropic Messages · Basistarieven per tokenTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAnthropic Messages · Tariefniveau 1 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan0Contexttokens, tot en met272.000Kosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAnthropic Messages · Tariefniveau 2 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan272.000Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.008 / 1K tokens
Uitvoer · Uitvoertokens $0.03 / 1K tokens
Invoer · Cache lezen $0.0008 / 1K tokens
Invoer · Cache schrijven $0.01 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieOpenAI Responses · Basistarieven per tokenTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieOpenAI Responses · Tariefniveau 1 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan0Contexttokens, tot en met272.000Kosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieOpenAI Responses · Tariefniveau 2 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan272.000Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.008 / 1K tokens
Uitvoer · Uitvoertokens $0.03 / 1K tokens
Invoer · Cache lezen $0.0008 / 1K tokens
Invoer · Cache schrijven $0.01 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens

Voorbeeldverzoeken

Ailoot · OpenAI Responses

TekstvoorbeeldInvoer, afbeeldingPython SDKNode.js SDKPython-stream
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-6-sol", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]="Summarize this material and quote supporting source passages.\n\n"+text
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -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 base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(json.loads(Path("result.json").read_text(encoding="utf-8")))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-6-sol", "input": [{"role": "user", "content": [{"type": "input_text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["input"][0]["content"].append({"type":"input_image","image_url":"data:"+mime+";base64,"+b64})
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -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 base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(json.loads(Path("result.json").read_text(encoding="utf-8")))
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.responses.create(model="gpt-6-sol", input="Explain the difference between an observation and a hypothesis in three sentences.")
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.responses.create({ model: "gpt-6-sol", input: "Explain the difference between an observation and a hypothesis in three sentences." });
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
from openai import OpenAI
import os
from pathlib import Path
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
with client.responses.stream(model="gpt-6-sol", input="Explain the difference between an observation and a hypothesis in three sentences.") as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_response()
    save_result(final.to_dict(mode="json"),"stream-result")

Resultaten ophalen en opslaan

Ailoot · OpenAI Responses

json of SSE

Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar elk uitvoeritem en inhoudsonderdeel, de werkelijke call_id van functies, versleutelde redeneringen en verbruiksgegevens. Behoud bij streaming de volledige identiteit van gebeurtenissen en items.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar aanvraag-/antwoord-ID’s en headers. Er wordt geen algemene URL meegeleverd om teksttaken op te halen.

Antwoordvelden
VeldType
VeldidTypestring
VeldstatusTypestring
Veldoutput[]Typemessage|reasoning|function_call|other item
Veldoutput[].content[]Typecontent part
VeldusageTypeobject
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.

Aliasnamen

Modelaliasnamen

Ailoot gpt-6-sol
Ailoot Ultra gpt-6-sol, openai/gpt-6-sol

Aliasnamen voor methodepaden

/chat/completions

Gerelateerde aanroeper-ID’s

openai/gpt-6-sol, gpt-6-sol, gpt-6-sol

Ailoot · OpenAI Chat POST /v1/chat/completions gpt-6-sol

gpt-6-sol

OpenAI /gpt-6-sol

Aan de slag

GPT-6 Sol is bedoeld voor complex programmeren en taken met meerdere toolstappen. Het werkt met tekst en afbeeldingen en laat de redeneerdiepte instellen.

Toegestane invoer
Tekst · Afbeeldingen
Resultaten
Tekst

Beschikbaar in Ailoot · invoer en methoden

Ailoot · OpenAI Chat POST /v1/chat/completions
Invoer
text, image
Uitvoer
text
Context
1.050.000 tokens
Maximale uitvoer
128.000 tokens
Uitvoerformaat
json of SSE
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
gpt-6-sol
Standaard—
VeldmessagesTypemessage[]VereisteVereistWaarden en limieten
Minimumaantal items: 1
Standaard—
Veldmessages[].roleTypestringVereisteVereistWaarden en limieten
Voorbeelden: system, user, assistant, tool, function
Voorwaarden: Deze rollen worden expliciet weergegeven door compatibiliteitstypen in de broncode; de exacte rollenverzameling van het model blijft modelspecifiek.
Afhankelijk van het model
Standaard—
Veldmessages[].contentTypestring|content_part[]|nullVereisteOptioneelWaarden en limietenStandaard—
Veldmessages[].tool_callsTypetool_call[]VereisteOptioneelWaarden en limietenStandaard—
Veldmessages[].tool_call_idTypestringVereisteOptioneelWaarden en limieten
Geldt wanneer: role=tool; gebruik het werkelijk teruggegeven ID
Standaard—
Veldmessages[].nameTypestringVereisteOptioneelWaarden en limietenStandaard—
Veldmessages[].reasoning_contentTypestringVereisteOptioneelWaarden en limieten
Geldt wanneer: Stuur de werkelijk teruggegeven redeneringen terug wanneer dit model ze gebruikt
Standaard—
Veldmessages[].reasoning_detailsTypeobject|arrayVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldmax_tokensTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 1
Afhankelijk van het model
Standaard—
Veldmax_completion_tokensTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 1
Afhankelijk van het model
Standaard—
VeldstreamTypebooleanVereisteOptioneelWaarden en limietenStandaardfalse
Veldstream_options.include_usageTypebooleanVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldtemperatureTypenumberVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtop_pTypenumberVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldstopTypestring|string[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldtoolsTypefunction_tool[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtools[].typeTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtools[].function.nameTypestringVereisteVereistWaarden en limieten
Geldt wanneer: functietool opgegeven
Standaard—
Veldtools[].function.descriptionTypestringVereisteOptioneelWaarden en limietenStandaard—
Veldtools[].function.parametersTypeJSON_schemaVereisteOptioneelWaarden en limietenStandaard—
Veldtool_choiceTypestring|objectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldparallel_tool_callsTypebooleanVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldresponse_formatTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldreasoning_effortTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldreasoningTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldservice_tierTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldinstructionsTypestringVereisteOptioneelWaarden en limieten
Compatibiliteitsveld
Standaard—
VeldfunctionsTypefunction[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldfunction_callTypestring|objectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldprompt_cache_optionsTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Combinaties van invoermaterialen

Tekst · UTF8-tekst

messages[].content

Tekst + afbeelding

{type:image_url,image_url:{url,detail}}

Methodeparameters en levenscyclus
ParameterContract
Parametermaterial_typesContracttext, image
ParameterrequiredContractmodel, messages
Parameteroptional_controlsContractnull
Parametercontent_typeContractapplication/json
Parametertext_file_materialContractwerkelijke UTF-8-inhoud ingevoegd als tekst; bestands-ID’s/URLs vereisen afzonderlijke exacte ondersteuning

Levenscyclus: exact retained published method

De methodestructuren en ID’s zijn exact; de mogelijkheden van de leverancier staan los van toelating.

Tarieven

Ailoot-methodetarieven

Ailoot OpenAI ChatPOST /v1/chat/completions
Invoer
US$ 0,002 / 1K
Uitvoer
US$ 0,01 / 1K
Cache lezen
US$ 0,0002 / 1K
Cache schrijven
US$ 0,0025 / 1K
Cache schrijven, 5 min
US$ 0,0025 / 1K tokens
Factor fast
×2
Factor flex
×0.5

Prijzen per verzoeklengte · OpenAI Chat

Verzoekgrootte, tokensInvoerUitvoerCache lezenCache schrijvenCache 5 minCache 1 uur
Verzoekgrootte, tokens(0; 272.000]InvoerUS$ 0,002UitvoerUS$ 0,01Cache lezenUS$ 0,0002Cache schrijvenUS$ 0,0025Cache 5 minUS$ 0,0025Cache 1 uurBasis: —
Verzoekgrootte, tokens(272.000; ∞)InvoerUS$ 0,004UitvoerUS$ 0,015Cache lezenUS$ 0,0004Cache schrijvenUS$ 0,005Cache 5 minUS$ 0,005Cache 1 uurBasis: —

Tarieven in USD per 1K tokens. Als geen tarief is ingesteld, wordt het basistarief voor deze methode overgenomen; «—» betekent dat geen basistarief is ingesteld.

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Details van het referentietarief

Referentiestaffels op modelniveau veranderen de methodeselectie, kostenramingen of afschrijvingen niet. Voor de actieve kostenberekening gelden de tarieven van de geselecteerde Ailoot-methode.

Referentiestaffels van het model

Prijzen per configuratie

Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.

ConfiguratieTariefstaffelContexttokens, meer danContexttokens, tot en metKosten
ConfiguratieOpenAI Chat · Basistarieven per tokenTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieOpenAI Chat · Tariefniveau 1 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan0Contexttokens, tot en met272.000Kosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieOpenAI Chat · Tariefniveau 2 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan272.000Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.008 / 1K tokens
Uitvoer · Uitvoertokens $0.03 / 1K tokens
Invoer · Cache lezen $0.0008 / 1K tokens
Invoer · Cache schrijven $0.01 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAnthropic Messages · Basistarieven per tokenTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAnthropic Messages · Tariefniveau 1 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan0Contexttokens, tot en met272.000Kosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAnthropic Messages · Tariefniveau 2 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan272.000Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.008 / 1K tokens
Uitvoer · Uitvoertokens $0.03 / 1K tokens
Invoer · Cache lezen $0.0008 / 1K tokens
Invoer · Cache schrijven $0.01 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieOpenAI Responses · Basistarieven per tokenTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieOpenAI Responses · Tariefniveau 1 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan0Contexttokens, tot en met272.000Kosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieOpenAI Responses · Tariefniveau 2 op basis van aanvraaglengteTariefstaffel—Contexttokens, meer dan272.000Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.008 / 1K tokens
Uitvoer · Uitvoertokens $0.03 / 1K tokens
Invoer · Cache lezen $0.0008 / 1K tokens
Invoer · Cache schrijven $0.01 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens

Voorbeeldverzoeken

Ailoot · OpenAI Chat

TekstvoorbeeldInvoer, afbeeldingPython SDKNode.js SDKPython-stream
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-6-sol", "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -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
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gpt-6-sol", "messages": [{"role": "user", "content": [{"type": "text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["messages"][0]["content"].append({"type":"image_url","image_url":{"url":"data:"+mime+";base64,"+b64}})
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -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
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.chat.completions.create(
    model="gpt-6-sol",
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.chat.completions.create({
  model: "gpt-6-sol",
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='gpt-6-sol',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")

Resultaten ophalen en opslaan

Ailoot · OpenAI Chat

json of SSE

Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar elke keuze en de bijbehorende inhoud, toolaanroepen en redeneringen. Voeg in SSE delta’s samen per keuze-/toolindex en bewaar de uiteindelijke reden van beëindiging en de verbruiksgegevens.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar aanvraag-/antwoord-ID’s en headers. Er wordt geen algemene URL meegeleverd om teksttaken op te halen.

Antwoordvelden
VeldType
Veldchoices[].indexTypeinteger
Veldchoices[].message.contentTypestring|null
Veldchoices[].message.tool_callsTypetool_call[]
Veldchoices[].message.reasoning_contentTypestring
Veldchoices[].message.reasoning_detailsTypeobject|array
Veldchoices[].finish_reasonTypestring|null
VeldusageTypeobject
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.

Aliasnamen

Modelaliasnamen

Ailoot gpt-6-sol
Ailoot Ultra gpt-6-sol, openai/gpt-6-sol

Aliasnamen voor methodepaden

/chat/completions

Gerelateerde aanroeper-ID’s

openai/gpt-6-sol, gpt-6-sol, gpt-6-sol

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions gpt-6-sol

gpt-6-sol

OpenAI /gpt-6-sol
Model-ID
  • gpt-6-sol
  • openai/gpt-6-sol

Aan de slag

GPT-6 Sol is bedoeld voor complex programmeren en taken met meerdere toolstappen. Het werkt met tekst en afbeeldingen en laat de redeneerdiepte instellen.

Toegestane invoer
Tekst
Resultaten
Tekst

Beschikbaar in Ailoot · invoer en methoden

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Invoer
text
Uitvoer
text
Uitvoerformaat
json of SSE
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
gpt-6-sol
Standaard—
VeldmessagesTypemessage[]VereisteVereistWaarden en limieten
Minimumaantal items: 1
Standaard—
Veldmessages[].roleTypestringVereisteVereistWaarden en limieten
Afhankelijk van het model
Standaard—
Veldmessages[].contentTypestringVereisteOptioneelWaarden en limieten
Geldt wanneer: Tekstgesprek
Standaard—
VeldstreamTypebooleanVereisteOptioneelWaarden en limietenStandaardfalse
Combinaties van invoermaterialen

Tekst · UTF8-tekst

messages[].content

Methodeparameters en levenscyclus
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractmodel, messages
Parametermaterial_typesContracttext
ParametermessagesContractberichtenarray met de structuur role/content
Parameterfile_materialContractwerkelijk UTF-8-document ingevoegd als letterlijke tekst; er wordt geen bestands-ID afgeleid
Parameteroptional_controlsContractstream
Parametercontrol_scopeContractTekstgesprek; stream is een booleaanse waarde en is standaard false.
Parameteroutput_modalitiesContracttext
Parameterhosted_operationsContractfalse
Parametermultimodal_input_bindingContractnull

Methodealiasnamen: /chat/completions

Levenscyclus: synchronous_or_streamed

Stuur het exacte model-ID mee met messages.

Contextlengte is geen uitvoerlimiet.

Een tekstbestand kan letterlijke tekst aanleveren; beeld-, audio- en bestandsobjectinvoer vereisen een exacte koppeling.

Tarieven

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus
Standaardtarief Wanneer de snelle modus geselecteerd is
Flex-modus
Standaardtarief Wanneer de flex-modus geselecteerd is
Maximale redeneerinspanning
Standaardtarief Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt
Redeneerinspanning · hoog
Standaardtarief Wanneer de redeneerinspanning hoog is
Redeneerinspanning · laag
Standaardtarief Wanneer de redeneerinspanning laag is
Redeneerinspanning · max
Standaardtarief Wanneer de redeneerinspanning max is
Redeneerinspanning · gemiddeld
Standaardtarief Wanneer de redeneerinspanning gemiddeld is
Redeneerinspanning · geen
Standaardtarief Wanneer er geen redeneerinspanning wordt gebruikt
Redeneerinspanning · xhigh
Standaardtarief Wanneer de redeneerinspanning xhigh is

Ailoot-tarieven

Prijzen per configuratie

Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.

ConfiguratieTariefstaffelContexttokens, meer danContexttokens, tot en metKosten
ConfiguratieBasistarieven voor tokensTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAanvraaglengte · niveau 1Tariefstaffel—Contexttokens, meer dan0Contexttokens, tot en met272.000Kosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAanvraaglengte · niveau 2Tariefstaffel—Contexttokens, meer dan272.000Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.008 / 1K tokens
Uitvoer · Uitvoertokens $0.03 / 1K tokens
Invoer · Cache lezen $0.0008 / 1K tokens
Invoer · Cache schrijven $0.01 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot Ultra · OpenAI Chat

curlPython SDK
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"gpt-6-sol","messages":[{"role":"user","content":"hello"}],"stream":false}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -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
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="gpt-6-sol", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))

Resultaten ophalen en opslaan

Ailoot Ultra · OpenAI Chat

json of SSE

Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar elke keuze en de bijbehorende inhoud, toolaanroepen en redeneringen. Voeg in SSE delta’s samen per keuze-/toolindex en bewaar de uiteindelijke reden van beëindiging en de verbruiksgegevens.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar aanvraag-/antwoord-ID’s en headers. Er wordt geen algemene URL meegeleverd om teksttaken op te halen.

Antwoordvelden
VeldType
Veldchoices[].indexTypeinteger
Veldchoices[].message.contentTypestring|null
Veldchoices[].message.tool_callsTypetool_call[]
Veldchoices[].message.reasoning_contentTypestring
Veldchoices[].message.reasoning_detailsTypeobject|array
Veldchoices[].finish_reasonTypestring|null
VeldusageTypeobject
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.

Aliasnamen

Modelaliasnamen

Ailoot gpt-6-sol
Ailoot Ultra gpt-6-sol, openai/gpt-6-sol

Aliasnamen voor methodepaden

/chat/completions

Gerelateerde aanroeper-ID’s

openai/gpt-6-sol, gpt-6-sol, gpt-6-sol

Ailoot Ultra · Anthropic Messages POST /v1/messages gpt-6-sol

gpt-6-sol

OpenAI /gpt-6-sol
Model-ID
  • gpt-6-sol
  • openai/gpt-6-sol

Aan de slag

GPT-6 Sol is bedoeld voor complex programmeren en taken met meerdere toolstappen. Het werkt met tekst en afbeeldingen en laat de redeneerdiepte instellen.

Toegestane invoer
Tekst
Resultaten
json · sse

Beschikbaar in Ailoot · invoer en methoden

Ailoot Ultra · Anthropic Messages POST /v1/messages
Invoer
text
Uitvoer
json, sse
Uitvoerformaat
JSON of SSE
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
gpt-6-sol
Standaard—
VeldmessagesTypemessage[]VereisteVereistWaarden en limietenStandaard—
Veldmessages[].roleTypestringVereisteVereistWaarden en limieten
user, assistant
Standaard—
Veldmessages[].contentTypestringVereisteVereistWaarden en limietenStandaard—
Veldmax_tokensTypeintegerVereisteVereistWaarden en limietenStandaard—
VeldstreamTypebooleanVereisteOptioneelWaarden en limietenStandaardfalse
Combinaties van invoermaterialen

Tekst · UTF-8-tekst

messages[].content als tekenreeks

Methodeparameters en levenscyclus
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractmodel, messages, max_tokens
Parameteroptional_controlsContractstream
Parametermaterial_typesContracttext
Parametertext_file_materialContractLees het werkelijke UTF-8-document en plaats de tekst ervan in de aangegeven invoer of in de inhoudstekenreeks van een bericht.

Levenscyclus: synchronous_or_streamed

Tarieven

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus
Standaardtarief Wanneer de snelle modus geselecteerd is
Flex-modus
Standaardtarief Wanneer de flex-modus geselecteerd is
Maximale redeneerinspanning
Standaardtarief Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt
Redeneerinspanning · hoog
Standaardtarief Wanneer de redeneerinspanning hoog is
Redeneerinspanning · laag
Standaardtarief Wanneer de redeneerinspanning laag is
Redeneerinspanning · max
Standaardtarief Wanneer de redeneerinspanning max is
Redeneerinspanning · gemiddeld
Standaardtarief Wanneer de redeneerinspanning gemiddeld is
Redeneerinspanning · geen
Standaardtarief Wanneer er geen redeneerinspanning wordt gebruikt
Redeneerinspanning · xhigh
Standaardtarief Wanneer de redeneerinspanning xhigh is

Ailoot-tarieven

Prijzen per configuratie

Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.

ConfiguratieTariefstaffelContexttokens, meer danContexttokens, tot en metKosten
ConfiguratieBasistarieven voor tokensTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAanvraaglengte · niveau 1Tariefstaffel—Contexttokens, meer dan0Contexttokens, tot en met272.000Kosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAanvraaglengte · niveau 2Tariefstaffel—Contexttokens, meer dan272.000Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.008 / 1K tokens
Uitvoer · Uitvoertokens $0.03 / 1K tokens
Invoer · Cache lezen $0.0008 / 1K tokens
Invoer · Cache schrijven $0.01 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot Ultra · Anthropic Messages

Volledige minimale JSON-bodycurl · gebruik je UTF-8-documentPython · sla het volledige resultaat op
{
  "model": "gpt-6-sol",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'gpt-6-sol', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -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

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'gpt-6-sol', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Resultaten ophalen en opslaan

Ailoot Ultra · Anthropic Messages

JSON of SSE

Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar alle inhoudsblokken, handtekeningen van redeneringen en werkelijke toolgebruik-ID’s. Voeg alle SSE-blokdelta’s samen; het eerste tekstblok is niet de volledige uitvoer.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar aanvraag-/antwoord-ID’s en headers. Er wordt geen algemene URL meegeleverd om teksttaken op te halen.

Antwoordvelden
VeldType
VeldidTypestring
VeldmodelTypestring
Veldcontent[]Typetext|thinking|tool_use|other content block
Veldstop_reasonTypestring|null
VeldusageTypeobject
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.

Aliasnamen

Modelaliasnamen

Ailoot gpt-6-sol
Ailoot Ultra gpt-6-sol, openai/gpt-6-sol

Aliasnamen voor methodepaden

/chat/completions

Gerelateerde aanroeper-ID’s

openai/gpt-6-sol, gpt-6-sol, gpt-6-sol

Ailoot Ultra · OpenAI Responses POST /v1/responses gpt-6-sol

gpt-6-sol

OpenAI /gpt-6-sol
Model-ID
  • gpt-6-sol
  • openai/gpt-6-sol

Aan de slag

GPT-6 Sol is bedoeld voor complex programmeren en taken met meerdere toolstappen. Het werkt met tekst en afbeeldingen en laat de redeneerdiepte instellen.

Toegestane invoer
Tekst
Resultaten
Tekst

Beschikbaar in Ailoot · invoer en methoden

Ailoot Ultra · OpenAI Responses POST /v1/responses
Invoer
text
Uitvoer
text
Uitvoerformaat
json or SSE
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
gpt-6-sol
Standaard—
VeldinputTypestring|input_item[]VereisteVereistWaarden en limietenStandaard—
VeldinstructionsTypestringVereisteOptioneelWaarden en limietenStandaard—
Veldinput[].typeTypestringVereisteOptioneelWaarden en limieten
message, reasoning, function_call, function_call_output
Standaard—
Veldinput[].contentTypestring|content_part[]VereisteOptioneelWaarden en limietenStandaard—
Veldinput[].call_idTypestringVereisteOptioneelWaarden en limieten
Geldt wanneer: function_call_output; bewaar de werkelijk teruggegeven call_id
Standaard—
Veldinput[].outputTypestring|content_part[]VereisteOptioneelWaarden en limieten
Geldt wanneer: function_call_output
Standaard—
Veldmax_output_tokensTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 1
Afhankelijk van het model
Standaard—
VeldstreamTypebooleanVereisteOptioneelWaarden en limietenStandaardfalse
VeldtemperatureTypenumberVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtop_pTypenumberVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldtoolsTypetool[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtool_choiceTypestring|objectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldparallel_tool_callsTypebooleanVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldreasoning.effortTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldreasoning.summaryTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtext.formatTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtext.verbosityTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldincludeTypestring[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldstoreTypebooleanVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldprevious_response_idTypestringVereisteNiet ondersteundWaarden en limieten
ID-vereiste: Alleen een werkelijk antwoord-ID van een ondersteunde voortzetting
Voorwaarden: Stuur bij elke aanvraag de werkelijke gespreksgeschiedenis opnieuw mee.
Standaard—
Veldservice_tierTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldprompt_cache_keyTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldprompt_cache_optionsTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Combinaties van invoermaterialen

Tekst · UTF8-tekst

input text or input_text part

Tekst + afbeelding

{type:input_image,image_url}

Methodeparameters en levenscyclus
ParameterContract
Parametermaterial_typesContracttext
ParameterrequiredContractmodel, input
Parameteroptional_controlsContractnull
Parametercontent_typeContractapplication/json
Parametertext_file_materialContractLees het werkelijke UTF-8-document en plaats de tekst ervan in de aangegeven invoer of in de inhoudstekenreeks van een bericht.

Levenscyclus: exact retained published method

Verstuur de exacte model-ID en de verplichte velden.

Bewaar elk teruggestuurd item en zijn oorspronkelijke identificatiecodes.

Tarieven

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus
Standaardtarief Wanneer de snelle modus geselecteerd is
Flex-modus
Standaardtarief Wanneer de flex-modus geselecteerd is
Maximale redeneerinspanning
Standaardtarief Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt
Redeneerinspanning · hoog
Standaardtarief Wanneer de redeneerinspanning hoog is
Redeneerinspanning · laag
Standaardtarief Wanneer de redeneerinspanning laag is
Redeneerinspanning · max
Standaardtarief Wanneer de redeneerinspanning max is
Redeneerinspanning · gemiddeld
Standaardtarief Wanneer de redeneerinspanning gemiddeld is
Redeneerinspanning · geen
Standaardtarief Wanneer er geen redeneerinspanning wordt gebruikt
Redeneerinspanning · xhigh
Standaardtarief Wanneer de redeneerinspanning xhigh is

Ailoot-tarieven

Prijzen per configuratie

Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.

ConfiguratieTariefstaffelContexttokens, meer danContexttokens, tot en metKosten
ConfiguratieBasistarieven voor tokensTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAanvraaglengte · niveau 1Tariefstaffel—Contexttokens, meer dan0Contexttokens, tot en met272.000Kosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAanvraaglengte · niveau 2Tariefstaffel—Contexttokens, meer dan272.000Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.008 / 1K tokens
Uitvoer · Uitvoertokens $0.03 / 1K tokens
Invoer · Cache lezen $0.0008 / 1K tokens
Invoer · Cache schrijven $0.01 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot Ultra · OpenAI Responses

Volledige minimale JSON-bodycurl · gebruik je UTF-8-documentPython · sla het volledige resultaat op
{
  "model": "gpt-6-sol",
  "input": [
    {
      "content": "Hello, how are you?",
      "role": "user",
      "type": "message"
    }
  ]
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'gpt-6-sol', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -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

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'gpt-6-sol', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'Authorization': 'Bearer PLACEHOLDER_KEY', 'Content-Type': 'application/json'}
headers['Authorization'] = 'Bearer ' + api_key
request = Request('https://api.ailoot.ai/v1/responses', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Resultaten ophalen en opslaan

Ailoot Ultra · OpenAI Responses

json or SSE

Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar elk uitvoeritem en inhoudsonderdeel, de werkelijke call_id van functies, versleutelde redeneringen en verbruiksgegevens. Behoud bij streaming de volledige identiteit van gebeurtenissen en items.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar aanvraag-/antwoord-ID’s en headers. Er wordt geen algemene URL meegeleverd om teksttaken op te halen.

Antwoordvelden
VeldType
VeldidTypestring
VeldstatusTypestring
Veldoutput[]Typemessage|reasoning|function_call|other item
Veldoutput[].content[]Typecontent part
VeldusageTypeobject
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.

Aliasnamen

Modelaliasnamen

Ailoot gpt-6-sol
Ailoot Ultra gpt-6-sol, openai/gpt-6-sol

Aliasnamen voor methodepaden

/chat/completions

Gerelateerde aanroeper-ID’s

openai/gpt-6-sol, gpt-6-sol, gpt-6-sol

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions openai/gpt-6-sol

openai/gpt-6-sol

OpenAI /openai/gpt-6-sol
Model-ID
  • gpt-6-sol
  • openai/gpt-6-sol

Aan de slag

GPT-6 Sol is bedoeld voor complex programmeren en taken met meerdere toolstappen. Het werkt met tekst en afbeeldingen en laat de redeneerdiepte instellen.

Toegestane invoer
Tekst
Resultaten
Tekst

Beschikbaar in Ailoot · invoer en methoden

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Invoer
text
Uitvoer
text
Uitvoerformaat
json of SSE
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
openai/gpt-6-sol
Standaard—
VeldmessagesTypemessage[]VereisteVereistWaarden en limieten
Minimumaantal items: 1
Standaard—
Veldmessages[].roleTypestringVereisteVereistWaarden en limieten
Voorbeelden: system, user, assistant, tool, function
Voorwaarden: Deze rollen worden expliciet weergegeven door compatibiliteitstypen in de broncode; de exacte rollenverzameling van het model blijft modelspecifiek.
Afhankelijk van het model
Standaard—
Veldmessages[].contentTypestring|content_part[]|nullVereisteOptioneelWaarden en limietenStandaard—
Veldmessages[].tool_callsTypetool_call[]VereisteOptioneelWaarden en limietenStandaard—
Veldmessages[].tool_call_idTypestringVereisteOptioneelWaarden en limieten
Geldt wanneer: role=tool; gebruik het werkelijk teruggegeven ID
Standaard—
Veldmessages[].nameTypestringVereisteOptioneelWaarden en limietenStandaard—
Veldmessages[].reasoning_contentTypestringVereisteOptioneelWaarden en limieten
Geldt wanneer: Stuur de werkelijk teruggegeven redeneringen terug wanneer dit model ze gebruikt
Standaard—
Veldmessages[].reasoning_detailsTypeobject|arrayVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldmax_tokensTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 1
Afhankelijk van het model
Standaard—
Veldmax_completion_tokensTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 1
Afhankelijk van het model
Standaard—
VeldstreamTypebooleanVereisteOptioneelWaarden en limietenStandaardfalse
Veldstream_options.include_usageTypebooleanVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldtemperatureTypenumberVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtop_pTypenumberVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldstopTypestring|string[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldtoolsTypefunction_tool[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtools[].typeTypestringVereisteOptioneelWaarden en limieten
function
Afhankelijk van het model
Standaard—
Veldtools[].function.nameTypestringVereisteVereistWaarden en limieten
Geldt wanneer: functietool opgegeven
Standaard—
Veldtools[].function.descriptionTypestringVereisteOptioneelWaarden en limietenStandaard—
Veldtools[].function.parametersTypeJSON_schemaVereisteOptioneelWaarden en limietenStandaard—
Veldtool_choiceTypestring|objectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldparallel_tool_callsTypebooleanVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldresponse_formatTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldreasoning_effortTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldreasoningTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldservice_tierTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldinstructionsTypestringVereisteOptioneelWaarden en limieten
Compatibiliteitsveld
Standaard—
VeldfunctionsTypefunction[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldfunction_callTypestring|objectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldprompt_cache_optionsTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldmodalitiesTypestring[]VereisteOptioneelWaarden en limieten
text
Standaard—
VeldproviderTypeobjectVereisteOptioneelWaarden en limieten
Voorwaarden: provider.options wordt op deze Ultra-tekstroute geweigerd
Standaard—
Veldcache_control.ttlTypestringVereisteOptioneelWaarden en limieten
Voorwaarden: 1h wordt op de daadwerkelijke locaties voor promptcaching geweigerd
Standaard—
Combinaties van invoermaterialen

Tekst · UTF8-tekst

messages[].content

Methodeparameters en levenscyclus
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractmodel, messages
Parametermaterial_typesContracttext
ParametermessagesContractberichtenarray met de structuur role/content
Parameterfile_materialContractwerkelijk UTF-8-document ingevoegd als letterlijke tekst; er wordt geen bestands-ID afgeleid
Parameteroptional_controlsContractstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parametercontrol_scopeContractmodelspecifiek; functietools van de gebruiker verschillen van gehoste tools
Parameteroutput_modalitiesContracttext
Parameterhosted_operationsContractfalse
Parametermultimodal_input_bindingContractnull

Levenscyclus: synchronous_or_streamed

Stuur het exacte model-ID mee met messages.

Contextlengte is geen uitvoerlimiet.

Een tekstbestand kan letterlijke tekst aanleveren; beeld-, audio- en bestandsobjectinvoer vereisen een exacte koppeling.

Tarieven

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus
Standaardtarief Wanneer de snelle modus geselecteerd is
Flex-modus
Standaardtarief Wanneer de flex-modus geselecteerd is
Maximale redeneerinspanning
Standaardtarief Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt
Redeneerinspanning · hoog
Standaardtarief Wanneer de redeneerinspanning hoog is
Redeneerinspanning · laag
Standaardtarief Wanneer de redeneerinspanning laag is
Redeneerinspanning · max
Standaardtarief Wanneer de redeneerinspanning max is
Redeneerinspanning · gemiddeld
Standaardtarief Wanneer de redeneerinspanning gemiddeld is
Redeneerinspanning · geen
Standaardtarief Wanneer er geen redeneerinspanning wordt gebruikt
Redeneerinspanning · xhigh
Standaardtarief Wanneer de redeneerinspanning xhigh is

Ailoot-tarieven

Prijzen per configuratie

Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.

ConfiguratieTariefstaffelContexttokens, meer danContexttokens, tot en metKosten
ConfiguratieBasistarieven voor tokensTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAanvraaglengte · niveau 1Tariefstaffel—Contexttokens, meer dan0Contexttokens, tot en met272.000Kosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAanvraaglengte · niveau 2Tariefstaffel—Contexttokens, meer dan272.000Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.008 / 1K tokens
Uitvoer · Uitvoertokens $0.03 / 1K tokens
Invoer · Cache lezen $0.0008 / 1K tokens
Invoer · Cache schrijven $0.01 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot Ultra · OpenAI Chat

curlPython SDKPython-stream
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "openai/gpt-6-sol", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -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
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='openai/gpt-6-sol',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='openai/gpt-6-sol',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")

Resultaten ophalen en opslaan

Ailoot Ultra · OpenAI Chat

json of SSE

Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar elke keuze en de bijbehorende inhoud, toolaanroepen en redeneringen. Voeg in SSE delta’s samen per keuze-/toolindex en bewaar de uiteindelijke reden van beëindiging en de verbruiksgegevens.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar aanvraag-/antwoord-ID’s en headers. Er wordt geen algemene URL meegeleverd om teksttaken op te halen.

Antwoordvelden
VeldType
Veldchoices[].indexTypeinteger
Veldchoices[].message.contentTypestring|null
Veldchoices[].message.tool_callsTypetool_call[]
Veldchoices[].message.reasoning_contentTypestring
Veldchoices[].message.reasoning_detailsTypeobject|array
Veldchoices[].finish_reasonTypestring|null
VeldusageTypeobject
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.

Aliasnamen

Modelaliasnamen

Ailoot gpt-6-sol
Ailoot Ultra gpt-6-sol, openai/gpt-6-sol

Aliasnamen voor methodepaden

/chat/completions

Gerelateerde aanroeper-ID’s

openai/gpt-6-sol, gpt-6-sol, gpt-6-sol

Ailoot Ultra · Anthropic Messages POST /v1/messages openai/gpt-6-sol

openai/gpt-6-sol

OpenAI /openai/gpt-6-sol
Model-ID
  • gpt-6-sol
  • openai/gpt-6-sol

Aan de slag

GPT-6 Sol is bedoeld voor complex programmeren en taken met meerdere toolstappen. Het werkt met tekst en afbeeldingen en laat de redeneerdiepte instellen.

Toegestane invoer
Tekst
Resultaten
Tekst

Beschikbaar in Ailoot · invoer en methoden

Ailoot Ultra · Anthropic Messages POST /v1/messages
Invoer
text
Uitvoer
text
Uitvoerformaat
json of SSE
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
openai/gpt-6-sol
Standaard—
VeldmessagesTypemessage[]VereisteVereistWaarden en limieten
Minimumaantal items: 1
Standaard—
Veldmessages[].roleTypestringVereisteVereistWaarden en limieten
user, assistant
Standaard—
Veldmessages[].contentTypestring|content_block[]VereisteVereistWaarden en limietenStandaard—
VeldsystemTypestring|content_block[]VereisteOptioneelWaarden en limietenStandaard—
Veldmax_tokensTypeintegerVereisteVereistWaarden en limieten
Minimum: 1
Limiet geldt voor: exacte bovengrens van het gekozen model/de gekozen modelkaart
Standaard—
VeldstreamTypebooleanVereisteOptioneelWaarden en limietenStandaardfalse
VeldtemperatureTypenumberVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtop_pTypenumberVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldstop_sequencesTypestring[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldtoolsTypetool[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtools[].nameTypestringVereisteOptioneelWaarden en limieten
Geldt wanneer: tool opgegeven
Standaard—
Veldtools[].descriptionTypestringVereisteOptioneelWaarden en limietenStandaard—
Veldtools[].input_schemaTypeJSON_schemaVereisteOptioneelWaarden en limietenStandaard—
Veldtool_choiceTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldthinking.typeTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldthinking.budget_tokensTypeintegerVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldoutput_config.effortTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldmetadataTypeobjectVereisteOptioneelWaarden en limietenStandaard—
Veldcache_controlTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Combinaties van invoermaterialen

Tekst · UTF8-tekst

messages[].content of een blok met type=text

Tekst + afbeelding

{type:image,source:{type:base64,media_type,data}} of bron met type=url

Methodeparameters en levenscyclus
ParameterContract
Parametermaterial_typesContracttext
ParameterrequiredContractmodel, messages, max_tokens
Parameteroptional_controlsContractnull
Parametercontent_typeContractapplication/json
Parametertext_file_materialContractLees het werkelijke UTF-8-document en plaats de tekst ervan in de aangegeven invoer of in de inhoudstekenreeks van een bericht.

Levenscyclus: exact retained published method

Verstuur de exacte model-ID en de verplichte velden.

Bewaar elk teruggestuurd item en zijn oorspronkelijke identificatiecodes.

Tarieven

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus
Standaardtarief Wanneer de snelle modus geselecteerd is
Flex-modus
Standaardtarief Wanneer de flex-modus geselecteerd is
Maximale redeneerinspanning
Standaardtarief Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt
Redeneerinspanning · hoog
Standaardtarief Wanneer de redeneerinspanning hoog is
Redeneerinspanning · laag
Standaardtarief Wanneer de redeneerinspanning laag is
Redeneerinspanning · max
Standaardtarief Wanneer de redeneerinspanning max is
Redeneerinspanning · gemiddeld
Standaardtarief Wanneer de redeneerinspanning gemiddeld is
Redeneerinspanning · geen
Standaardtarief Wanneer er geen redeneerinspanning wordt gebruikt
Redeneerinspanning · xhigh
Standaardtarief Wanneer de redeneerinspanning xhigh is

Ailoot-tarieven

Prijzen per configuratie

Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.

ConfiguratieTariefstaffelContexttokens, meer danContexttokens, tot en metKosten
ConfiguratieBasistarieven voor tokensTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAanvraaglengte · niveau 1Tariefstaffel—Contexttokens, meer dan0Contexttokens, tot en met272.000Kosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAanvraaglengte · niveau 2Tariefstaffel—Contexttokens, meer dan272.000Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.008 / 1K tokens
Uitvoer · Uitvoertokens $0.03 / 1K tokens
Invoer · Cache lezen $0.0008 / 1K tokens
Invoer · Cache schrijven $0.01 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot Ultra · Anthropic Messages

Volledige minimale JSON-bodycurl · gebruik je UTF-8-documentPython · sla het volledige resultaat op
{
  "model": "openai/gpt-6-sol",
  "max_tokens": 4096,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ]
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'openai/gpt-6-sol', 'max_tokens': 4096, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -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

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'openai/gpt-6-sol', 'max_tokens': 4096, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Resultaten ophalen en opslaan

Ailoot Ultra · Anthropic Messages

json of SSE

Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar alle inhoudsblokken, handtekeningen van redeneringen en werkelijke toolgebruik-ID’s. Voeg alle SSE-blokdelta’s samen; het eerste tekstblok is niet de volledige uitvoer.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar aanvraag-/antwoord-ID’s en headers. Er wordt geen algemene URL meegeleverd om teksttaken op te halen.

Antwoordvelden
VeldType
VeldidTypestring
VeldmodelTypestring
Veldcontent[]Typetext|thinking|tool_use|other content block
Veldstop_reasonTypestring|null
VeldusageTypeobject
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.

Aliasnamen

Modelaliasnamen

Ailoot gpt-6-sol
Ailoot Ultra gpt-6-sol, openai/gpt-6-sol

Aliasnamen voor methodepaden

/chat/completions

Gerelateerde aanroeper-ID’s

openai/gpt-6-sol, gpt-6-sol, gpt-6-sol

Ailoot Ultra · OpenAI Responses POST /v1/responses openai/gpt-6-sol

openai/gpt-6-sol

OpenAI /openai/gpt-6-sol
Model-ID
  • gpt-6-sol
  • openai/gpt-6-sol

Aan de slag

GPT-6 Sol is bedoeld voor complex programmeren en taken met meerdere toolstappen. Het werkt met tekst en afbeeldingen en laat de redeneerdiepte instellen.

Toegestane invoer
Tekst
Resultaten
Tekst

Beschikbaar in Ailoot · invoer en methoden

Ailoot Ultra · OpenAI Responses POST /v1/responses
Invoer
text
Uitvoer
text
Uitvoerformaat
json of SSE
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
openai/gpt-6-sol
Standaard—
VeldinputTypestring|input_item[]VereisteVereistWaarden en limietenStandaard—
VeldinstructionsTypestringVereisteOptioneelWaarden en limietenStandaard—
Veldinput[].typeTypestringVereisteOptioneelWaarden en limieten
message, reasoning, function_call, function_call_output
Standaard—
Veldinput[].contentTypestring|content_part[]VereisteOptioneelWaarden en limietenStandaard—
Veldinput[].call_idTypestringVereisteOptioneelWaarden en limieten
Geldt wanneer: function_call_output; bewaar de werkelijk teruggegeven call_id
Standaard—
Veldinput[].outputTypestring|content_part[]VereisteOptioneelWaarden en limieten
Geldt wanneer: function_call_output
Standaard—
Veldmax_output_tokensTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 1
Afhankelijk van het model
Standaard—
VeldstreamTypebooleanVereisteOptioneelWaarden en limietenStandaardfalse
VeldtemperatureTypenumberVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtop_pTypenumberVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldtoolsTypetool[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtool_choiceTypestring|objectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldparallel_tool_callsTypebooleanVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldreasoning.effortTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldreasoning.summaryTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtext.formatTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtext.verbosityTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldincludeTypestring[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldstoreTypebooleanVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldprevious_response_idTypestringVereisteNiet ondersteundWaarden en limieten
ID-vereiste: Alleen een werkelijk antwoord-ID van een ondersteunde voortzetting
Voorwaarden: Stuur bij elke aanvraag de werkelijke gespreksgeschiedenis opnieuw mee.
Standaard—
Veldservice_tierTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldprompt_cache_keyTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldprompt_cache_optionsTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Combinaties van invoermaterialen

Tekst · UTF8-tekst

invoertekst of een input_text-onderdeel

Tekst + afbeelding

{type:input_image,image_url}

Methodeparameters en levenscyclus
ParameterContract
Parametermaterial_typesContracttext
ParameterrequiredContractmodel, input
Parameteroptional_controlsContractnull
Parametercontent_typeContractapplication/json
Parametertext_file_materialContractLees het werkelijke UTF-8-document en plaats de tekst ervan in de aangegeven invoer of in de inhoudstekenreeks van een bericht.

Levenscyclus: exact retained published method

Verstuur de exacte model-ID en de verplichte velden.

Bewaar elk teruggestuurd item en zijn oorspronkelijke identificatiecodes.

Tarieven

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus
Standaardtarief Wanneer de snelle modus geselecteerd is
Flex-modus
Standaardtarief Wanneer de flex-modus geselecteerd is
Maximale redeneerinspanning
Standaardtarief Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt
Redeneerinspanning · hoog
Standaardtarief Wanneer de redeneerinspanning hoog is
Redeneerinspanning · laag
Standaardtarief Wanneer de redeneerinspanning laag is
Redeneerinspanning · max
Standaardtarief Wanneer de redeneerinspanning max is
Redeneerinspanning · gemiddeld
Standaardtarief Wanneer de redeneerinspanning gemiddeld is
Redeneerinspanning · geen
Standaardtarief Wanneer er geen redeneerinspanning wordt gebruikt
Redeneerinspanning · xhigh
Standaardtarief Wanneer de redeneerinspanning xhigh is

Ailoot-tarieven

Prijzen per configuratie

Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.

ConfiguratieTariefstaffelContexttokens, meer danContexttokens, tot en metKosten
ConfiguratieBasistarieven voor tokensTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAanvraaglengte · niveau 1Tariefstaffel—Contexttokens, meer dan0Contexttokens, tot en met272.000Kosten
Invoer · Invoertokens $0.004 / 1K tokens
Uitvoer · Uitvoertokens $0.02 / 1K tokens
Invoer · Cache lezen $0.0004 / 1K tokens
Invoer · Cache schrijven $0.005 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAanvraaglengte · niveau 2Tariefstaffel—Contexttokens, meer dan272.000Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.008 / 1K tokens
Uitvoer · Uitvoertokens $0.03 / 1K tokens
Invoer · Cache lezen $0.0008 / 1K tokens
Invoer · Cache schrijven $0.01 / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot Ultra · OpenAI Responses

Volledige minimale JSON-bodycurl · gebruik je UTF-8-documentPython · sla het volledige resultaat op
{
  "model": "openai/gpt-6-sol",
  "input": [
    {
      "content": "Hello, how are you?",
      "role": "user",
      "type": "message"
    }
  ]
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'openai/gpt-6-sol', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -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

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'openai/gpt-6-sol', 'input': [{'content': 'Hello, how are you?', 'role': 'user', 'type': 'message'}]}
payload['input'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'Authorization': 'Bearer PLACEHOLDER_KEY', 'Content-Type': 'application/json'}
headers['Authorization'] = 'Bearer ' + api_key
request = Request('https://api.ailoot.ai/v1/responses', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Resultaten ophalen en opslaan

Ailoot Ultra · OpenAI Responses

json of SSE

Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar elk uitvoeritem en inhoudsonderdeel, de werkelijke call_id van functies, versleutelde redeneringen en verbruiksgegevens. Behoud bij streaming de volledige identiteit van gebeurtenissen en items.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar aanvraag-/antwoord-ID’s en headers. Er wordt geen algemene URL meegeleverd om teksttaken op te halen.

Antwoordvelden
VeldType
VeldidTypestring
VeldstatusTypestring
Veldoutput[]Typemessage|reasoning|function_call|other item
Veldoutput[].content[]Typecontent part
VeldusageTypeobject
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.

Aliasnamen

Modelaliasnamen

Ailoot gpt-6-sol
Ailoot Ultra gpt-6-sol, openai/gpt-6-sol

Aliasnamen voor methodepaden

/chat/completions

Gerelateerde aanroeper-ID’s

openai/gpt-6-sol, gpt-6-sol, gpt-6-sol

FAQ · OpenAI: GPT-6 Sol
Welke invoer en resultaten zijn beschikbaar?

POST /v1/messages · gpt-6-sol: text, image → text

POST /v1/responses · gpt-6-sol: text, image → text

POST /v1/chat/completions · gpt-6-sol: text, image → text

POST /v1/chat/completions · gpt-6-sol: text → text

POST /v1/messages · gpt-6-sol: text → json, sse

POST /v1/responses · gpt-6-sol: text → text

POST /v1/chat/completions · openai/gpt-6-sol: text → text

POST /v1/messages · openai/gpt-6-sol: text → text

POST /v1/responses · openai/gpt-6-sol: text → text

Welke velden gebruikt het verzoek?

POST /v1/messages · gpt-6-sol: model, messages, system, max_tokens, stream, metadata

POST /v1/responses · gpt-6-sol: model, input, instructions, stream

POST /v1/chat/completions · gpt-6-sol: model, messages, stream

POST /v1/chat/completions · gpt-6-sol: model, messages, stream

POST /v1/messages · gpt-6-sol: model, messages, max_tokens, stream

POST /v1/responses · gpt-6-sol: model, input, instructions, stream

POST /v1/chat/completions · openai/gpt-6-sol: model, messages, stream, modalities, provider

POST /v1/messages · openai/gpt-6-sol: model, messages, system, max_tokens, stream, metadata

POST /v1/responses · openai/gpt-6-sol: model, input, instructions, stream

Welke limieten gelden?

POST /v1/messages · gpt-6-sol: ctx: 1050000; max_out: 128000; messages.min_items: 1; max_tokens.minimum: 1

POST /v1/responses · gpt-6-sol: ctx: 1050000; max_out: 128000

POST /v1/chat/completions · gpt-6-sol: ctx: 1050000; max_out: 128000; messages.min_items: 1

POST /v1/chat/completions · gpt-6-sol: messages.min_items: 1

POST /v1/chat/completions · openai/gpt-6-sol: messages.min_items: 1

POST /v1/messages · openai/gpt-6-sol: messages.min_items: 1; max_tokens.minimum: 1

Meer details

Verbind Ailoot met Claude Code, OpenCode, Hermes of je eigen applicatie.

Het bedrijf en zijn projectenportefeuille

Het bedrijf en zijn projectenportefeuille: miljoenen klanten; maandelijkse verkopen in de miljarden.

Koop tokens met korting.

Abonnementsvoordeel voor regelmatig gebruik. Promotiecodes geven tot 50% korting op tokens.

Abonnement
Kies een abonnement met korting voor je terugkerende verzoeken.
Promotiecode tot 50%
Vul de code bij aankoop in. De prijs wordt volgens de lopende actie herberekend.
Kosten in de geschiedenis
Model, tokens en bedrag worden per verzoek bewaard.

Kies een abonnement · Bekijk modelprijzen

Verbind de API met het product dat je verkoopt.

SaaS, apps en bots volgens de openbare aanbodvoorwaarden en licentieovereenkomst van Ailoot. Vraag voor doorverkoop een resellerlicentie aan.

Commerciële applicatie
Voeg tekst-, beeld-, video- en geluidsgeneratie aan betaalde functies van je service toe.
Resellerlicentie
Stuur een projectbeschrijving en toegangsschema. Vraag schriftelijke voorwaarden voor gebruik en doorverkoop.
Documenten op de site
Aanbodvoorwaarden, licentieovereenkomst en gegevensbeleid zijn vóór het verbinden beschikbaar.

Vraag een resellerlicentie aan · Aanbodvoorwaarden en licentieovereenkomst