models

MiniMax: MiniMax M2.5

Markdown · JSON

MiniMax: MiniMax M2.5

Tekstinis modelis su 204,800 tokenų kontekstu bei Messages, Responses ir Chat Completions maršrutais.

Apie modelį

Šis aprašas apima modelio galimybes. Pasirinktam metodui Ailoot prieinamos įvestys, išvestys ir parinktys nurodytos toliau.

minimax/minimax-m2.5 teikia tekstinę įvestį ir išvestį Messages, Responses bei Chat Completions formatais. Išsamūs metodai nurodo 204,800 tokenų kontekstą ir 204,800 tokenų išvesties ribą. Konkreti kūrimo užduotis — pateiktus modulius patikrinti pagal specifikaciją ir parengti pataisų planą su paveiktomis sąsajomis bei testų atvejais.

Rinkitės programą atitinkančią sąsają: Responses naudoja input, pokalbio formatai — messages. Išsamūs metodų variantai užklausoje naudoja MiniMax-M2.5; kiti pateikti variantai išlaiko savo tikslius užklausų ID. Samprotavimo ir įrankių laukai struktūrose priklauso nuo modelio, o ne besąlygiškai žada vienodus valdiklius kiekvienam variantui. Konteksto ir išvesties ribos lieka atskiri apribojimai; jos negarantuoja pilno lango atsakymo greta pilno lango užklausos.

Praktinė užduotis

Praktinė užduotis

Techninis pavyzdys anglų kalba

Repair a parser from an observed failure

A Python helper returns text.split('=')[1] for a key=value record. Test input 'token=a=b' returns 'a' but must return 'a=b'. Propose the smallest patch, define behavior for records without '=', and supply tests for the failing input, an empty value and a missing separator. Keep the return type a string for valid records.

Laukiamas rezultatas

A focused Python patch, a stated malformed-input rule and tests for all three cases.

Rezultato patikra

The corrected parser preserves everything after the first separator, including a second equals sign.
Ailoot · Anthropic pranešimai POST /v1/messages MiniMax-M2.5

MiniMax-M2.5

MiniMax /MiniMax-M2.5
Modelio ID
  • MiniMax-M2.5
  • minimax/minimax-m2.5

Pradžia

Tekstinis modelis su 204,800 tokenų kontekstu bei Messages, Responses ir Chat Completions maršrutais.

Leidžiamos įvestys
Tekstas
Rezultatai
Tekstas

Prieinama Ailoot · įvestys ir metodai

Ailoot · Anthropic pranešimai POST /v1/messages
Įvestis
text
Išvestis
text
Kontekstas
204 800 tokens
Didžiausia išvestis
204 800 tokens
Išvesties formatas
json arba SSE
LaukasTipasReikalavimasReikšmės ir ribosNumatyta
LaukasmodelTipasstringReikalavimasPrivalomaReikšmės ir ribos
MiniMax-M2.5
Numatyta—
LaukasmessagesTipasmessage[]ReikalavimasPrivalomaReikšmės ir ribos
Mažiausias elementų skaičius: 1
Numatyta—
Laukasmessages[].roleTipasstringReikalavimasPrivalomaReikšmės ir ribos
user, assistant
Numatyta—
Laukasmessages[].contentTipasstring|content_block[]ReikalavimasPrivalomaReikšmės ir ribosNumatyta—
LaukassystemTipasstring|content_block[]ReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukasmax_tokensTipasintegerReikalavimasPrivalomaReikšmės ir ribos
Mažiausia reikšmė: 1
Riba taikoma: konkretus pasirinkto modelio / kortelės limitas
Numatyta—
LaukasstreamTipasbooleanReikalavimasNeprivalomaReikšmės ir ribosNumatytafalse
LaukastemperatureTipasnumberReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastop_pTipasnumberReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasstop_sequencesTipasstring[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukastoolsTipastool[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastools[].nameTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Taikoma, kai: pateiktas įrankis
Numatyta—
Laukastools[].descriptionTipasstringReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukastools[].input_schemaTipasJSON_schemaReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukastool_choiceTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasthinking.typeTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasthinking.budget_tokensTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasoutput_config.effortTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasmetadataTipasobjectReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukascache_controlTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Įvesties medžiagos deriniai

Tekstas · UTF8 tekstas

messages[].content arba type=text blokas

Metodo parametrai ir gyvavimo ciklas
ParametrasSpecifikacija
Parametrasmaterial_typesSpecifikacijatext
ParametrasrequiredSpecifikacijamodel, messages, max_tokens
Parametrasoptional_controlsSpecifikacijanull
Parametrascontent_typeSpecifikacijaapplication/json
Parametrastext_file_materialSpecifikacijatikrasis UTF-8 turinys įterptas kaip tekstas; failų ID/URLs reikia atskiro tiksliai apibrėžto palaikymo

Gyvavimo ciklas: exact retained published method

Metodų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.

Planai

Ailoot metodų įkainiai

Ailoot Anthropic pranešimaiPOST /v1/messages
Įvestis
0,0003 USD / 1K
Išvestis
0,0012 USD / 1K
Talpyklos skaitymas
≈0,00003 USD / 1K
Rašymas į talpyklą
0,000375 USD / 1K
Rašymas į talpyklą, 5 min
0,000375 USD / 1K tokens

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →

Informacinio tarifo duomenys

Modelio informacinės lentelės nekeičia metodo pasirinkimo, kainos įverčių ar mokesčių. Galiojantys mokesčiai nustatomi pagal pasirinkto Ailoot metodo įkainius.

Modelio informacinės lentelės

Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

KonfigūracijaĮkainių lentelėKonteksto tokenų daugiau neiKonteksto tokenų iki imtinaiMokestis
KonfigūracijaOpenAI Chat · Baziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisKonteksto tokenų daugiau nei—Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaOpenAI Chat · Užklausos ilgio pakopa 1Įkainių lentelė—Konteksto tokenų daugiau nei0Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaAnthropic Messages · Baziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisKonteksto tokenų daugiau nei—Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaAnthropic Messages · Užklausos ilgio pakopa 1Įkainių lentelė—Konteksto tokenų daugiau nei0Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų

Užklausų pavyzdžiai

Ailoot · Anthropic pranešimai

Teksto pavyzdysPython SDKNode.js SDKPython srautas
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": "MiniMax-M2.5", "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
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="MiniMax-M2.5",
    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: "MiniMax-M2.5",
  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='MiniMax-M2.5',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")

Gauti ir išsaugoti rezultatus

Ailoot · Anthropic pranešimai

json arba SSE

Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite visus turinio blokus, mąstymo parašus ir tikruosius įrankių naudojimo ID. Surinkite visus SSE blokų prieaugius; pirmasis teksto blokas nėra visa išvestis.

Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai
LaukasTipas
LaukasidTipasstring
LaukasmodelTipasstring
Laukascontent[]Tipastext|thinking|tool_use|other content block
Laukasstop_reasonTipasstring|null
LaukasusageTipasobject
Klaidos ir tolesni veiksmai
AtsakymasSąlygaKitas žingsnis
Atsakymas400 · invalid_request_errorSąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmėKitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus.

Pseudonimai

Modelių pseudonimai

Ailoot MiniMax-M2.5, minimax/minimax-m2.5
Ailoot Ultra MiniMax-M2.5, minimax/minimax-m2.5

Metodų kelių pseudonimai

/chat/completions

Susiję ID iškvietimui

minimax/minimax-m2.5, minimax/minimax-m2.5, MiniMax-M2.5, MiniMax-M2.5

Ailoot · OpenAI Responses POST /v1/responses MiniMax-M2.5

MiniMax-M2.5

MiniMax /MiniMax-M2.5
Modelio ID
  • MiniMax-M2.5
  • minimax/minimax-m2.5

Pradžia

Tekstinis modelis su 204,800 tokenų kontekstu bei Messages, Responses ir Chat Completions maršrutais.

Leidžiamos įvestys
Tekstas
Rezultatai
Tekstas

Prieinama Ailoot · įvestys ir metodai

Ailoot · OpenAI Responses POST /v1/responses
Įvestis
text
Išvestis
text
Kontekstas
204 800 tokens
Didžiausia išvestis
204 800 tokens
Išvesties formatas
json arba SSE
LaukasTipasReikalavimasReikšmės ir ribosNumatyta
LaukasmodelTipasstringReikalavimasPrivalomaReikšmės ir ribos
MiniMax-M2.5
Numatyta—
LaukasinputTipasstring|input_item[]ReikalavimasPrivalomaReikšmės ir ribosNumatyta—
LaukasinstructionsTipasstringReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukasinput[].typeTipasstringReikalavimasNeprivalomaReikšmės ir ribos
message, reasoning, function_call, function_call_output
Numatyta—
Laukasinput[].contentTipasstring|content_part[]ReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukasinput[].call_idTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Taikoma, kai: function_call_output; išsaugokite tikrąjį grąžintą call_id
Numatyta—
Laukasinput[].outputTipasstring|content_part[]ReikalavimasNeprivalomaReikšmės ir ribos
Taikoma, kai: function_call_output
Numatyta—
Laukasmax_output_tokensTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Mažiausia reikšmė: 1
Priklauso nuo modelio
Numatyta—
LaukasstreamTipasbooleanReikalavimasNeprivalomaReikšmės ir ribosNumatytafalse
LaukastemperatureTipasnumberReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastop_pTipasnumberReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukastoolsTipastool[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastool_choiceTipasstring|objectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasparallel_tool_callsTipasbooleanReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasreasoning.effortTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasreasoning.summaryTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastext.formatTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastext.verbosityTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasincludeTipasstring[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasstoreTipasbooleanReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasprevious_response_idTipasstringReikalavimasNeprivalomaReikšmės ir ribos
ID reikalavimas: Tik tikrasis atsakymo ID iš palaikomo tęsinio
Priklauso nuo modelio
Numatyta—
Laukasservice_tierTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasprompt_cache_keyTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasprompt_cache_optionsTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Įvesties medžiagos deriniai

Tekstas · UTF8 tekstas

įvesties tekstas arba input_text dalis

Metodo parametrai ir gyvavimo ciklas
ParametrasSpecifikacija
Parametrasmaterial_typesSpecifikacijatext
ParametrasrequiredSpecifikacijamodel, input
Parametrasoptional_controlsSpecifikacijanull
Parametrascontent_typeSpecifikacijaapplication/json
Parametrastext_file_materialSpecifikacijatikrasis UTF-8 turinys įterptas kaip tekstas; failų ID/URLs reikia atskiro tiksliai apibrėžto palaikymo

Gyvavimo ciklas: exact retained published method

Metodų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.

Planai

Ailoot metodų įkainiai

Ailoot OpenAI ResponsesPOST /v1/responses
Įvestis
0,0003 USD / 1K
Išvestis
0,0012 USD / 1K
Talpyklos skaitymas
≈0,00003 USD / 1K
Rašymas į talpyklą
0,000375 USD / 1K
Rašymas į talpyklą, 5 min
0,000375 USD / 1K tokens

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →

Informacinio tarifo duomenys

Modelio informacinės lentelės nekeičia metodo pasirinkimo, kainos įverčių ar mokesčių. Galiojantys mokesčiai nustatomi pagal pasirinkto Ailoot metodo įkainius.

Modelio informacinės lentelės

Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

KonfigūracijaĮkainių lentelėKonteksto tokenų daugiau neiKonteksto tokenų iki imtinaiMokestis
KonfigūracijaOpenAI Chat · Baziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisKonteksto tokenų daugiau nei—Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaOpenAI Chat · Užklausos ilgio pakopa 1Įkainių lentelė—Konteksto tokenų daugiau nei0Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaAnthropic Messages · Baziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisKonteksto tokenų daugiau nei—Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaAnthropic Messages · Užklausos ilgio pakopa 1Įkainių lentelė—Konteksto tokenų daugiau nei0Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų

Užklausų pavyzdžiai

Ailoot · OpenAI Responses

Teksto pavyzdysPython SDKNode.js SDKPython srautas
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": "MiniMax-M2.5", "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
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="MiniMax-M2.5", 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: "MiniMax-M2.5", 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="MiniMax-M2.5", 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")

Gauti ir išsaugoti rezultatus

Ailoot · OpenAI Responses

json arba SSE

Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite kiekvieną išvesties elementą ir turinio dalį, tikrąjį funkcijos call_id, šifruotą samprotavimą ir naudojimo duomenis. Srautinio perdavimo metu išsaugokite visą įvykio / elemento tapatybę.

Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai
LaukasTipas
LaukasidTipasstring
LaukasstatusTipasstring
Laukasoutput[]Tipasmessage|reasoning|function_call|other item
Laukasoutput[].content[]Tipascontent part
LaukasusageTipasobject
Klaidos ir tolesni veiksmai
AtsakymasSąlygaKitas žingsnis
Atsakymas400 · invalid_request_errorSąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmėKitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus.

Pseudonimai

Modelių pseudonimai

Ailoot MiniMax-M2.5, minimax/minimax-m2.5
Ailoot Ultra MiniMax-M2.5, minimax/minimax-m2.5

Metodų kelių pseudonimai

/chat/completions

Susiję ID iškvietimui

minimax/minimax-m2.5, minimax/minimax-m2.5, MiniMax-M2.5, MiniMax-M2.5

Ailoot · OpenAI pokalbis POST /v1/chat/completions MiniMax-M2.5

MiniMax-M2.5

MiniMax /MiniMax-M2.5
Modelio ID
  • MiniMax-M2.5
  • minimax/minimax-m2.5

Pradžia

Tekstinis modelis su 204,800 tokenų kontekstu bei Messages, Responses ir Chat Completions maršrutais.

Leidžiamos įvestys
Tekstas
Rezultatai
Tekstas

Prieinama Ailoot · įvestys ir metodai

Ailoot · OpenAI pokalbis POST /v1/chat/completions
Įvestis
text
Išvestis
text
Kontekstas
204 800 tokens
Didžiausia išvestis
204 800 tokens
Išvesties formatas
json arba SSE
LaukasTipasReikalavimasReikšmės ir ribosNumatyta
LaukasmodelTipasstringReikalavimasPrivalomaReikšmės ir ribos
MiniMax-M2.5
Numatyta—
LaukasmessagesTipasmessage[]ReikalavimasPrivalomaReikšmės ir ribos
Mažiausias elementų skaičius: 1
Numatyta—
Laukasmessages[].roleTipasstringReikalavimasPrivalomaReikšmės ir ribos
Pavyzdžiai: system, user, assistant, tool, function
Sąlygos: Šie vaidmenys aiškiai išreikšti šaltinio kodo suderinamumo tipuose; tikslus vaidmenų rinkinys priklauso nuo konkretaus modelio.
Priklauso nuo modelio
Numatyta—
Laukasmessages[].contentTipasstring|content_part[]|nullReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukasmessages[].tool_callsTipastool_call[]ReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukasmessages[].tool_call_idTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Taikoma, kai: role=tool; naudokite tikrąjį grąžintą ID
Numatyta—
Laukasmessages[].nameTipasstringReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukasmessages[].reasoning_contentTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Taikoma, kai: Grąžinkite tikrąjį gautą samprotavimą ten, kur šis modelis jį naudoja
Numatyta—
Laukasmessages[].reasoning_detailsTipasobject|arrayReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasmax_tokensTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Mažiausia reikšmė: 1
Priklauso nuo modelio
Numatyta—
Laukasmax_completion_tokensTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Mažiausia reikšmė: 1
Priklauso nuo modelio
Numatyta—
LaukasstreamTipasbooleanReikalavimasNeprivalomaReikšmės ir ribosNumatytafalse
Laukasstream_options.include_usageTipasbooleanReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukastemperatureTipasnumberReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastop_pTipasnumberReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasstopTipasstring|string[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukastoolsTipasfunction_tool[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastools[].typeTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastools[].function.nameTipasstringReikalavimasPrivalomaReikšmės ir ribos
Taikoma, kai: pateiktas funkcijos tipo įrankis
Numatyta—
Laukastools[].function.descriptionTipasstringReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukastools[].function.parametersTipasJSON_schemaReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukastool_choiceTipasstring|objectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasparallel_tool_callsTipasbooleanReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasresponse_formatTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasreasoning_effortTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasreasoningTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasservice_tierTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasinstructionsTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Suderinamumo laukas
Numatyta—
LaukasfunctionsTipasfunction[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasfunction_callTipasstring|objectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasprompt_cache_optionsTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Įvesties medžiagos deriniai

Tekstas · UTF8 tekstas

messages[].content

Metodo parametrai ir gyvavimo ciklas
ParametrasSpecifikacija
Parametrasmaterial_typesSpecifikacijatext
ParametrasrequiredSpecifikacijamodel, messages
Parametrasoptional_controlsSpecifikacijanull
Parametrascontent_typeSpecifikacijaapplication/json
Parametrastext_file_materialSpecifikacijatikrasis UTF-8 turinys įterptas kaip tekstas; failų ID/URLs reikia atskiro tiksliai apibrėžto palaikymo

Gyvavimo ciklas: exact retained published method

Metodų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.

Planai

Ailoot metodų įkainiai

Ailoot OpenAI pokalbisPOST /v1/chat/completions
Įvestis
0,0003 USD / 1K
Išvestis
0,0012 USD / 1K
Talpyklos skaitymas
≈0,00003 USD / 1K
Rašymas į talpyklą
0,000375 USD / 1K
Rašymas į talpyklą, 5 min
0,000375 USD / 1K tokens

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →

Informacinio tarifo duomenys

Modelio informacinės lentelės nekeičia metodo pasirinkimo, kainos įverčių ar mokesčių. Galiojantys mokesčiai nustatomi pagal pasirinkto Ailoot metodo įkainius.

Modelio informacinės lentelės

Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

KonfigūracijaĮkainių lentelėKonteksto tokenų daugiau neiKonteksto tokenų iki imtinaiMokestis
KonfigūracijaOpenAI Chat · Baziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisKonteksto tokenų daugiau nei—Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaOpenAI Chat · Užklausos ilgio pakopa 1Įkainių lentelė—Konteksto tokenų daugiau nei0Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaAnthropic Messages · Baziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisKonteksto tokenų daugiau nei—Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaAnthropic Messages · Užklausos ilgio pakopa 1Įkainių lentelė—Konteksto tokenų daugiau nei0Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų

Užklausų pavyzdžiai

Ailoot · OpenAI pokalbis

Teksto pavyzdysPython SDKNode.js SDKPython srautas
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": "MiniMax-M2.5", "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
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="MiniMax-M2.5",
    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: "MiniMax-M2.5",
  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='MiniMax-M2.5',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")

Gauti ir išsaugoti rezultatus

Ailoot · OpenAI pokalbis

json arba SSE

Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite kiekvieną variantą ir jo turinį / įrankių iškvietimus / samprotavimą. SSE prieaugius surinkite pagal varianto / įrankio indeksą; išsaugokite galutinę užbaigimo priežastį ir naudojimo duomenis.

Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai
LaukasTipas
Laukaschoices[].indexTipasinteger
Laukaschoices[].message.contentTipasstring|null
Laukaschoices[].message.tool_callsTipastool_call[]
Laukaschoices[].message.reasoning_contentTipasstring
Laukaschoices[].message.reasoning_detailsTipasobject|array
Laukaschoices[].finish_reasonTipasstring|null
LaukasusageTipasobject
Klaidos ir tolesni veiksmai
AtsakymasSąlygaKitas žingsnis
Atsakymas400 · invalid_request_errorSąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmėKitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus.

Pseudonimai

Modelių pseudonimai

Ailoot MiniMax-M2.5, minimax/minimax-m2.5
Ailoot Ultra MiniMax-M2.5, minimax/minimax-m2.5

Metodų kelių pseudonimai

/chat/completions

Susiję ID iškvietimui

minimax/minimax-m2.5, minimax/minimax-m2.5, MiniMax-M2.5, MiniMax-M2.5

Ailoot Ultra · OpenAI pokalbis POST /v1/chat/completions MiniMax-M2.5

MiniMax-M2.5

MiniMax /MiniMax-M2.5
Modelio ID
  • MiniMax-M2.5
  • minimax/minimax-m2.5

Pradžia

Tekstinis modelis su 204,800 tokenų kontekstu bei Messages, Responses ir Chat Completions maršrutais.

Leidžiamos įvestys
Tekstas
Rezultatai
Tekstas

Prieinama Ailoot · įvestys ir metodai

Ailoot Ultra · OpenAI pokalbis POST /v1/chat/completions
Įvestis
text
Išvestis
text
Išvesties formatas
json arba SSE
LaukasTipasReikalavimasReikšmės ir ribosNumatyta
LaukasmodelTipasstringReikalavimasPrivalomaReikšmės ir ribos
MiniMax-M2.5
Numatyta—
LaukasmessagesTipasmessage[]ReikalavimasPrivalomaReikšmės ir ribos
Mažiausias elementų skaičius: 1
Numatyta—
Laukasmessages[].roleTipasstringReikalavimasPrivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasmessages[].contentTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Taikoma, kai: Tekstinis pokalbis
Numatyta—
LaukasstreamTipasbooleanReikalavimasNeprivalomaReikšmės ir ribosNumatytafalse
Įvesties medžiagos deriniai

Tekstas · UTF8 tekstas

messages[].content

Metodo parametrai ir gyvavimo ciklas
ParametrasSpecifikacija
Parametrascontent_typeSpecifikacijaapplication/json
ParametrasrequiredSpecifikacijamodel, messages
Parametrasmaterial_typesSpecifikacijatext
ParametrasmessagesSpecifikacijapranešimų masyvas su role/content struktūra
Parametrasfile_materialSpecifikacijatikrasis UTF-8 dokumentas įterptas kaip pažodinis tekstas; failo ID nenumanomas
Parametrasoptional_controlsSpecifikacijastream
Parametrascontrol_scopeSpecifikacijaTekstinis pokalbis; stream yra loginė reikšmė, kurios numatytoji reikšmė yra false.
Parametrasoutput_modalitiesSpecifikacijatext
Parametrashosted_operationsSpecifikacijafalse
Parametrasmultimodal_input_bindingSpecifikacijanull

Metodo pseudonimai: /chat/completions

Gyvavimo ciklas: synchronous_or_streamed

Siųskite tikslų modelio ID kartu su messages.

Konteksto ilgis nėra išvesties limitas.

Teksto failas gali pateikti pažodinį tekstą; vaizdų / garso / failų objektų įvestims reikia tikslaus susiejimo.

Planai

Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.

Spartusis režimas
Standartinis įkainis Pasirinkus spartųjį režimą
Flex režimas
Standartinis įkainis Pasirinkus flex režimą
Didžiausios samprotavimo pastangos
Standartinis įkainis Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)

Ailoot įkainiai

Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

KonfigūracijaĮkainių lentelėKonteksto tokenų daugiau neiKonteksto tokenų iki imtinaiMokestis
KonfigūracijaBaziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisKonteksto tokenų daugiau nei—Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaUžklausos ilgio pakopa 1Įkainių lentelė—Konteksto tokenų daugiau nei0Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →

Užklausų pavyzdžiai

Ailoot Ultra · OpenAI pokalbis

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":"MiniMax-M2.5","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="MiniMax-M2.5", 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"))

Gauti ir išsaugoti rezultatus

Ailoot Ultra · OpenAI pokalbis

json arba SSE

Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite kiekvieną variantą ir jo turinį / įrankių iškvietimus / samprotavimą. SSE prieaugius surinkite pagal varianto / įrankio indeksą; išsaugokite galutinę užbaigimo priežastį ir naudojimo duomenis.

Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai
LaukasTipas
Laukaschoices[].indexTipasinteger
Laukaschoices[].message.contentTipasstring|null
Laukaschoices[].message.tool_callsTipastool_call[]
Laukaschoices[].message.reasoning_contentTipasstring
Laukaschoices[].message.reasoning_detailsTipasobject|array
Laukaschoices[].finish_reasonTipasstring|null
LaukasusageTipasobject
Klaidos ir tolesni veiksmai
AtsakymasSąlygaKitas žingsnis
Atsakymas400 · invalid_request_errorSąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmėKitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus.

Pseudonimai

Modelių pseudonimai

Ailoot MiniMax-M2.5, minimax/minimax-m2.5
Ailoot Ultra MiniMax-M2.5, minimax/minimax-m2.5

Metodų kelių pseudonimai

/chat/completions

Susiję ID iškvietimui

minimax/minimax-m2.5, minimax/minimax-m2.5, MiniMax-M2.5, MiniMax-M2.5

Ailoot Ultra · Anthropic pranešimai POST /v1/messages MiniMax-M2.5

MiniMax-M2.5

MiniMax /MiniMax-M2.5
Modelio ID
  • MiniMax-M2.5
  • minimax/minimax-m2.5

Pradžia

Tekstinis modelis su 204,800 tokenų kontekstu bei Messages, Responses ir Chat Completions maršrutais.

Leidžiamos įvestys
Tekstas
Rezultatai
json · sse

Prieinama Ailoot · įvestys ir metodai

Ailoot Ultra · Anthropic pranešimai POST /v1/messages
Įvestis
text
Išvestis
json, sse
Išvesties formatas
JSON arba SSE
LaukasTipasReikalavimasReikšmės ir ribosNumatyta
LaukasmodelTipasstringReikalavimasPrivalomaReikšmės ir ribos
MiniMax-M2.5
Numatyta—
LaukasmessagesTipasmessage[]ReikalavimasPrivalomaReikšmės ir ribosNumatyta—
Laukasmessages[].roleTipasstringReikalavimasPrivalomaReikšmės ir ribos
user, assistant
Numatyta—
Laukasmessages[].contentTipasstringReikalavimasPrivalomaReikšmės ir ribosNumatyta—
Laukasmax_tokensTipasintegerReikalavimasPrivalomaReikšmės ir ribosNumatyta—
LaukasstreamTipasbooleanReikalavimasNeprivalomaReikšmės ir ribosNumatytafalse
Įvesties medžiagos deriniai

Tekstas · UTF-8 tekstas

messages[].content eilutė

Metodo parametrai ir gyvavimo ciklas
ParametrasSpecifikacija
Parametrascontent_typeSpecifikacijaapplication/json
ParametrasrequiredSpecifikacijamodel, messages, max_tokens
Parametrasoptional_controlsSpecifikacijastream
Parametrasmaterial_typesSpecifikacijatext
Parametrastext_file_materialSpecifikacijaPerskaitykite tikrąjį UTF-8 dokumentą ir įterpkite jo tekstą į nurodytą input lauką arba pranešimo turinio eilutę.

Gyvavimo ciklas: synchronous_or_streamed

Planai

Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.

Spartusis režimas
Standartinis įkainis Pasirinkus spartųjį režimą
Flex režimas
Standartinis įkainis Pasirinkus flex režimą
Didžiausios samprotavimo pastangos
Standartinis įkainis Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)

Ailoot įkainiai

Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

KonfigūracijaĮkainių lentelėKonteksto tokenų daugiau neiKonteksto tokenų iki imtinaiMokestis
KonfigūracijaBaziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisKonteksto tokenų daugiau nei—Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaUžklausos ilgio pakopa 1Įkainių lentelė—Konteksto tokenų daugiau nei0Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →

Užklausų pavyzdžiai

Ailoot Ultra · Anthropic pranešimai

Visas minimalus JSON užklausos turinyscurl · naudokite savo UTF-8 dokumentąPython · išsaugokite visą rezultatą
{
  "model": "MiniMax-M2.5",
  "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': 'MiniMax-M2.5', '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': 'MiniMax-M2.5', '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))

Gauti ir išsaugoti rezultatus

Ailoot Ultra · Anthropic pranešimai

JSON arba SSE

Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite visus turinio blokus, mąstymo parašus ir tikruosius įrankių naudojimo ID. Surinkite visus SSE blokų prieaugius; pirmasis teksto blokas nėra visa išvestis.

Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai
LaukasTipas
LaukasidTipasstring
LaukasmodelTipasstring
Laukascontent[]Tipastext|thinking|tool_use|other content block
Laukasstop_reasonTipasstring|null
LaukasusageTipasobject
Klaidos ir tolesni veiksmai
AtsakymasSąlygaKitas žingsnis
Atsakymas400 · invalid_request_errorSąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmėKitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus.

Pseudonimai

Modelių pseudonimai

Ailoot MiniMax-M2.5, minimax/minimax-m2.5
Ailoot Ultra MiniMax-M2.5, minimax/minimax-m2.5

Metodų kelių pseudonimai

/chat/completions

Susiję ID iškvietimui

minimax/minimax-m2.5, minimax/minimax-m2.5, MiniMax-M2.5, MiniMax-M2.5

Ailoot · Anthropic pranešimai POST /v1/messages minimax/minimax-m2.5

minimax/minimax-m2.5

MiniMax /minimax/minimax-m2.5
Modelio ID
  • MiniMax-M2.5
  • minimax/minimax-m2.5

Pradžia

Tekstinis modelis su 204,800 tokenų kontekstu bei Messages, Responses ir Chat Completions maršrutais.

Leidžiamos įvestys
Tekstas
Rezultatai
Tekstas

Prieinama Ailoot · įvestys ir metodai

Ailoot · Anthropic pranešimai POST /v1/messages
Įvestis
text
Išvestis
text
Kontekstas
204 800 tokens
Didžiausia išvestis
204 800 tokens
Išvesties formatas
json arba SSE
LaukasTipasReikalavimasReikšmės ir ribosNumatyta
LaukasmodelTipasstringReikalavimasPrivalomaReikšmės ir ribos
minimax/minimax-m2.5
Numatyta—
LaukasmessagesTipasmessage[]ReikalavimasPrivalomaReikšmės ir ribos
Mažiausias elementų skaičius: 1
Numatyta—
Laukasmessages[].roleTipasstringReikalavimasPrivalomaReikšmės ir ribos
user, assistant
Numatyta—
Laukasmessages[].contentTipasstring|content_block[]ReikalavimasPrivalomaReikšmės ir ribosNumatyta—
LaukassystemTipasstring|content_block[]ReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukasmax_tokensTipasintegerReikalavimasPrivalomaReikšmės ir ribos
Mažiausia reikšmė: 1
Riba taikoma: konkretus pasirinkto modelio / kortelės limitas
Numatyta—
LaukasstreamTipasbooleanReikalavimasNeprivalomaReikšmės ir ribosNumatytafalse
LaukastemperatureTipasnumberReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastop_pTipasnumberReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasstop_sequencesTipasstring[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukastoolsTipastool[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastools[].nameTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Taikoma, kai: pateiktas įrankis
Numatyta—
Laukastools[].descriptionTipasstringReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukastools[].input_schemaTipasJSON_schemaReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukastool_choiceTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasthinking.typeTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasthinking.budget_tokensTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasoutput_config.effortTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasmetadataTipasobjectReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukascache_controlTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Įvesties medžiagos deriniai

Tekstas · UTF8 tekstas

messages[].content arba type=text blokas

Metodo parametrai ir gyvavimo ciklas
ParametrasSpecifikacija
Parametrasmaterial_typesSpecifikacijatext
ParametrasrequiredSpecifikacijamodel, messages, max_tokens
Parametrasoptional_controlsSpecifikacijanull
Parametrascontent_typeSpecifikacijaapplication/json
Parametrastext_file_materialSpecifikacijatikrasis UTF-8 turinys įterptas kaip tekstas; failų ID/URLs reikia atskiro tiksliai apibrėžto palaikymo

Gyvavimo ciklas: exact retained published method

Metodų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.

Planai

Ailoot metodų įkainiai

Ailoot Anthropic pranešimaiPOST /v1/messages
Įvestis
0,0003 USD / 1K
Išvestis
0,0012 USD / 1K
Talpyklos skaitymas
≈0,00003 USD / 1K
Rašymas į talpyklą
0,000375 USD / 1K
Rašymas į talpyklą, 5 min
0,000375 USD / 1K tokens

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →

Informacinio tarifo duomenys

Modelio informacinės lentelės nekeičia metodo pasirinkimo, kainos įverčių ar mokesčių. Galiojantys mokesčiai nustatomi pagal pasirinkto Ailoot metodo įkainius.

Modelio informacinės lentelės

Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

KonfigūracijaĮkainių lentelėKonteksto tokenų daugiau neiKonteksto tokenų iki imtinaiMokestis
KonfigūracijaOpenAI Chat · Baziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisKonteksto tokenų daugiau nei—Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaOpenAI Chat · Užklausos ilgio pakopa 1Įkainių lentelė—Konteksto tokenų daugiau nei0Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaAnthropic Messages · Baziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisKonteksto tokenų daugiau nei—Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaAnthropic Messages · Užklausos ilgio pakopa 1Įkainių lentelė—Konteksto tokenų daugiau nei0Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų

Užklausų pavyzdžiai

Ailoot · Anthropic pranešimai

Teksto pavyzdysPython SDKNode.js SDKPython srautas
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": "minimax/minimax-m2.5", "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
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="minimax/minimax-m2.5",
    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: "minimax/minimax-m2.5",
  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='minimax/minimax-m2.5',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")

Gauti ir išsaugoti rezultatus

Ailoot · Anthropic pranešimai

json arba SSE

Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite visus turinio blokus, mąstymo parašus ir tikruosius įrankių naudojimo ID. Surinkite visus SSE blokų prieaugius; pirmasis teksto blokas nėra visa išvestis.

Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai
LaukasTipas
LaukasidTipasstring
LaukasmodelTipasstring
Laukascontent[]Tipastext|thinking|tool_use|other content block
Laukasstop_reasonTipasstring|null
LaukasusageTipasobject
Klaidos ir tolesni veiksmai
AtsakymasSąlygaKitas žingsnis
Atsakymas400 · invalid_request_errorSąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmėKitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus.

Pseudonimai

Modelių pseudonimai

Ailoot MiniMax-M2.5, minimax/minimax-m2.5
Ailoot Ultra MiniMax-M2.5, minimax/minimax-m2.5

Metodų kelių pseudonimai

/chat/completions

Susiję ID iškvietimui

minimax/minimax-m2.5, minimax/minimax-m2.5, MiniMax-M2.5, MiniMax-M2.5

Ailoot · OpenAI Responses POST /v1/responses minimax/minimax-m2.5

minimax/minimax-m2.5

MiniMax /minimax/minimax-m2.5
Modelio ID
  • MiniMax-M2.5
  • minimax/minimax-m2.5

Pradžia

Tekstinis modelis su 204,800 tokenų kontekstu bei Messages, Responses ir Chat Completions maršrutais.

Leidžiamos įvestys
Tekstas
Rezultatai
Tekstas

Prieinama Ailoot · įvestys ir metodai

Ailoot · OpenAI Responses POST /v1/responses
Įvestis
text
Išvestis
text
Kontekstas
204 800 tokens
Didžiausia išvestis
204 800 tokens
Išvesties formatas
json arba SSE
LaukasTipasReikalavimasReikšmės ir ribosNumatyta
LaukasmodelTipasstringReikalavimasPrivalomaReikšmės ir ribos
minimax/minimax-m2.5
Numatyta—
LaukasinputTipasstring|input_item[]ReikalavimasPrivalomaReikšmės ir ribosNumatyta—
LaukasinstructionsTipasstringReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukasinput[].typeTipasstringReikalavimasNeprivalomaReikšmės ir ribos
message, reasoning, function_call, function_call_output
Numatyta—
Laukasinput[].contentTipasstring|content_part[]ReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukasinput[].call_idTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Taikoma, kai: function_call_output; išsaugokite tikrąjį grąžintą call_id
Numatyta—
Laukasinput[].outputTipasstring|content_part[]ReikalavimasNeprivalomaReikšmės ir ribos
Taikoma, kai: function_call_output
Numatyta—
Laukasmax_output_tokensTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Mažiausia reikšmė: 1
Priklauso nuo modelio
Numatyta—
LaukasstreamTipasbooleanReikalavimasNeprivalomaReikšmės ir ribosNumatytafalse
LaukastemperatureTipasnumberReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastop_pTipasnumberReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukastoolsTipastool[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastool_choiceTipasstring|objectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasparallel_tool_callsTipasbooleanReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasreasoning.effortTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasreasoning.summaryTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastext.formatTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastext.verbosityTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasincludeTipasstring[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasstoreTipasbooleanReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasprevious_response_idTipasstringReikalavimasNeprivalomaReikšmės ir ribos
ID reikalavimas: Tik tikrasis atsakymo ID iš palaikomo tęsinio
Priklauso nuo modelio
Numatyta—
Laukasservice_tierTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasprompt_cache_keyTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasprompt_cache_optionsTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Įvesties medžiagos deriniai

Tekstas · UTF8 tekstas

įvesties tekstas arba input_text dalis

Metodo parametrai ir gyvavimo ciklas
ParametrasSpecifikacija
Parametrasmaterial_typesSpecifikacijatext
ParametrasrequiredSpecifikacijamodel, input
Parametrasoptional_controlsSpecifikacijanull
Parametrascontent_typeSpecifikacijaapplication/json
Parametrastext_file_materialSpecifikacijatikrasis UTF-8 turinys įterptas kaip tekstas; failų ID/URLs reikia atskiro tiksliai apibrėžto palaikymo

Gyvavimo ciklas: exact retained published method

Metodų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.

Planai

Ailoot metodų įkainiai

Ailoot OpenAI ResponsesPOST /v1/responses
Įvestis
0,0003 USD / 1K
Išvestis
0,0012 USD / 1K
Talpyklos skaitymas
≈0,00003 USD / 1K
Rašymas į talpyklą
0,000375 USD / 1K
Rašymas į talpyklą, 5 min
0,000375 USD / 1K tokens

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →

Informacinio tarifo duomenys

Modelio informacinės lentelės nekeičia metodo pasirinkimo, kainos įverčių ar mokesčių. Galiojantys mokesčiai nustatomi pagal pasirinkto Ailoot metodo įkainius.

Modelio informacinės lentelės

Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

KonfigūracijaĮkainių lentelėKonteksto tokenų daugiau neiKonteksto tokenų iki imtinaiMokestis
KonfigūracijaOpenAI Chat · Baziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisKonteksto tokenų daugiau nei—Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaOpenAI Chat · Užklausos ilgio pakopa 1Įkainių lentelė—Konteksto tokenų daugiau nei0Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaAnthropic Messages · Baziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisKonteksto tokenų daugiau nei—Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaAnthropic Messages · Užklausos ilgio pakopa 1Įkainių lentelė—Konteksto tokenų daugiau nei0Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų

Užklausų pavyzdžiai

Ailoot · OpenAI Responses

Teksto pavyzdysPython SDKNode.js SDKPython srautas
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": "minimax/minimax-m2.5", "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
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="minimax/minimax-m2.5", 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: "minimax/minimax-m2.5", 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="minimax/minimax-m2.5", 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")

Gauti ir išsaugoti rezultatus

Ailoot · OpenAI Responses

json arba SSE

Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite kiekvieną išvesties elementą ir turinio dalį, tikrąjį funkcijos call_id, šifruotą samprotavimą ir naudojimo duomenis. Srautinio perdavimo metu išsaugokite visą įvykio / elemento tapatybę.

Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai
LaukasTipas
LaukasidTipasstring
LaukasstatusTipasstring
Laukasoutput[]Tipasmessage|reasoning|function_call|other item
Laukasoutput[].content[]Tipascontent part
LaukasusageTipasobject
Klaidos ir tolesni veiksmai
AtsakymasSąlygaKitas žingsnis
Atsakymas400 · invalid_request_errorSąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmėKitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus.

Pseudonimai

Modelių pseudonimai

Ailoot MiniMax-M2.5, minimax/minimax-m2.5
Ailoot Ultra MiniMax-M2.5, minimax/minimax-m2.5

Metodų kelių pseudonimai

/chat/completions

Susiję ID iškvietimui

minimax/minimax-m2.5, minimax/minimax-m2.5, MiniMax-M2.5, MiniMax-M2.5

Ailoot · OpenAI pokalbis POST /v1/chat/completions minimax/minimax-m2.5

minimax/minimax-m2.5

MiniMax /minimax/minimax-m2.5
Modelio ID
  • MiniMax-M2.5
  • minimax/minimax-m2.5

Pradžia

Tekstinis modelis su 204,800 tokenų kontekstu bei Messages, Responses ir Chat Completions maršrutais.

Leidžiamos įvestys
Tekstas
Rezultatai
Tekstas

Prieinama Ailoot · įvestys ir metodai

Ailoot · OpenAI pokalbis POST /v1/chat/completions
Įvestis
text
Išvestis
text
Kontekstas
204 800 tokens
Didžiausia išvestis
204 800 tokens
Išvesties formatas
json arba SSE
LaukasTipasReikalavimasReikšmės ir ribosNumatyta
LaukasmodelTipasstringReikalavimasPrivalomaReikšmės ir ribos
minimax/minimax-m2.5
Numatyta—
LaukasmessagesTipasmessage[]ReikalavimasPrivalomaReikšmės ir ribos
Mažiausias elementų skaičius: 1
Numatyta—
Laukasmessages[].roleTipasstringReikalavimasPrivalomaReikšmės ir ribos
Pavyzdžiai: system, user, assistant, tool, function
Sąlygos: Šie vaidmenys aiškiai išreikšti šaltinio kodo suderinamumo tipuose; tikslus vaidmenų rinkinys priklauso nuo konkretaus modelio.
Priklauso nuo modelio
Numatyta—
Laukasmessages[].contentTipasstring|content_part[]|nullReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukasmessages[].tool_callsTipastool_call[]ReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukasmessages[].tool_call_idTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Taikoma, kai: role=tool; naudokite tikrąjį grąžintą ID
Numatyta—
Laukasmessages[].nameTipasstringReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukasmessages[].reasoning_contentTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Taikoma, kai: Grąžinkite tikrąjį gautą samprotavimą ten, kur šis modelis jį naudoja
Numatyta—
Laukasmessages[].reasoning_detailsTipasobject|arrayReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasmax_tokensTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Mažiausia reikšmė: 1
Priklauso nuo modelio
Numatyta—
Laukasmax_completion_tokensTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Mažiausia reikšmė: 1
Priklauso nuo modelio
Numatyta—
LaukasstreamTipasbooleanReikalavimasNeprivalomaReikšmės ir ribosNumatytafalse
Laukasstream_options.include_usageTipasbooleanReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukastemperatureTipasnumberReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastop_pTipasnumberReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasstopTipasstring|string[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukastoolsTipasfunction_tool[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastools[].typeTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastools[].function.nameTipasstringReikalavimasPrivalomaReikšmės ir ribos
Taikoma, kai: pateiktas funkcijos tipo įrankis
Numatyta—
Laukastools[].function.descriptionTipasstringReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukastools[].function.parametersTipasJSON_schemaReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukastool_choiceTipasstring|objectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasparallel_tool_callsTipasbooleanReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasresponse_formatTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasreasoning_effortTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasreasoningTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasservice_tierTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasinstructionsTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Suderinamumo laukas
Numatyta—
LaukasfunctionsTipasfunction[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasfunction_callTipasstring|objectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasprompt_cache_optionsTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Įvesties medžiagos deriniai

Tekstas · UTF8 tekstas

messages[].content

Metodo parametrai ir gyvavimo ciklas
ParametrasSpecifikacija
Parametrasmaterial_typesSpecifikacijatext
ParametrasrequiredSpecifikacijamodel, messages
Parametrasoptional_controlsSpecifikacijanull
Parametrascontent_typeSpecifikacijaapplication/json
Parametrastext_file_materialSpecifikacijatikrasis UTF-8 turinys įterptas kaip tekstas; failų ID/URLs reikia atskiro tiksliai apibrėžto palaikymo

Gyvavimo ciklas: exact retained published method

Metodų struktūros ir ID yra tikslūs; tiekėjo galimybės yra atskirtos nuo užklausos priėmimo.

Planai

Ailoot metodų įkainiai

Ailoot OpenAI pokalbisPOST /v1/chat/completions
Įvestis
0,0003 USD / 1K
Išvestis
0,0012 USD / 1K
Talpyklos skaitymas
≈0,00003 USD / 1K
Rašymas į talpyklą
0,000375 USD / 1K
Rašymas į talpyklą, 5 min
0,000375 USD / 1K tokens

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →

Informacinio tarifo duomenys

Modelio informacinės lentelės nekeičia metodo pasirinkimo, kainos įverčių ar mokesčių. Galiojantys mokesčiai nustatomi pagal pasirinkto Ailoot metodo įkainius.

Modelio informacinės lentelės

Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

KonfigūracijaĮkainių lentelėKonteksto tokenų daugiau neiKonteksto tokenų iki imtinaiMokestis
KonfigūracijaOpenAI Chat · Baziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisKonteksto tokenų daugiau nei—Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaOpenAI Chat · Užklausos ilgio pakopa 1Įkainių lentelė—Konteksto tokenų daugiau nei0Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaAnthropic Messages · Baziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisKonteksto tokenų daugiau nei—Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaAnthropic Messages · Užklausos ilgio pakopa 1Įkainių lentelė—Konteksto tokenų daugiau nei0Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų

Užklausų pavyzdžiai

Ailoot · OpenAI pokalbis

Teksto pavyzdysPython SDKNode.js SDKPython srautas
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": "minimax/minimax-m2.5", "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
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="minimax/minimax-m2.5",
    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: "minimax/minimax-m2.5",
  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='minimax/minimax-m2.5',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")

Gauti ir išsaugoti rezultatus

Ailoot · OpenAI pokalbis

json arba SSE

Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite kiekvieną variantą ir jo turinį / įrankių iškvietimus / samprotavimą. SSE prieaugius surinkite pagal varianto / įrankio indeksą; išsaugokite galutinę užbaigimo priežastį ir naudojimo duomenis.

Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai
LaukasTipas
Laukaschoices[].indexTipasinteger
Laukaschoices[].message.contentTipasstring|null
Laukaschoices[].message.tool_callsTipastool_call[]
Laukaschoices[].message.reasoning_contentTipasstring
Laukaschoices[].message.reasoning_detailsTipasobject|array
Laukaschoices[].finish_reasonTipasstring|null
LaukasusageTipasobject
Klaidos ir tolesni veiksmai
AtsakymasSąlygaKitas žingsnis
Atsakymas400 · invalid_request_errorSąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmėKitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus.

Pseudonimai

Modelių pseudonimai

Ailoot MiniMax-M2.5, minimax/minimax-m2.5
Ailoot Ultra MiniMax-M2.5, minimax/minimax-m2.5

Metodų kelių pseudonimai

/chat/completions

Susiję ID iškvietimui

minimax/minimax-m2.5, minimax/minimax-m2.5, MiniMax-M2.5, MiniMax-M2.5

Ailoot Ultra · OpenAI pokalbis POST /v1/chat/completions minimax/minimax-m2.5

minimax/minimax-m2.5

MiniMax /minimax/minimax-m2.5
Modelio ID
  • MiniMax-M2.5
  • minimax/minimax-m2.5

Pradžia

Tekstinis modelis su 204,800 tokenų kontekstu bei Messages, Responses ir Chat Completions maršrutais.

Leidžiamos įvestys
Tekstas
Rezultatai
Tekstas

Prieinama Ailoot · įvestys ir metodai

Ailoot Ultra · OpenAI pokalbis POST /v1/chat/completions
Įvestis
text
Išvestis
text
Išvesties formatas
json arba SSE
LaukasTipasReikalavimasReikšmės ir ribosNumatyta
LaukasmodelTipasstringReikalavimasPrivalomaReikšmės ir ribos
minimax/minimax-m2.5
Numatyta—
LaukasmessagesTipasmessage[]ReikalavimasPrivalomaReikšmės ir ribos
Mažiausias elementų skaičius: 1
Numatyta—
Laukasmessages[].roleTipasstringReikalavimasPrivalomaReikšmės ir ribos
Pavyzdžiai: system, user, assistant, tool, function
Sąlygos: Šie vaidmenys aiškiai išreikšti šaltinio kodo suderinamumo tipuose; tikslus vaidmenų rinkinys priklauso nuo konkretaus modelio.
Priklauso nuo modelio
Numatyta—
Laukasmessages[].contentTipasstring|content_part[]|nullReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukasmessages[].tool_callsTipastool_call[]ReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukasmessages[].tool_call_idTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Taikoma, kai: role=tool; naudokite tikrąjį grąžintą ID
Numatyta—
Laukasmessages[].nameTipasstringReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukasmessages[].reasoning_contentTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Taikoma, kai: Grąžinkite tikrąjį gautą samprotavimą ten, kur šis modelis jį naudoja
Numatyta—
Laukasmessages[].reasoning_detailsTipasobject|arrayReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasmax_tokensTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Mažiausia reikšmė: 1
Priklauso nuo modelio
Numatyta—
Laukasmax_completion_tokensTipasintegerReikalavimasNeprivalomaReikšmės ir ribos
Mažiausia reikšmė: 1
Priklauso nuo modelio
Numatyta—
LaukasstreamTipasbooleanReikalavimasNeprivalomaReikšmės ir ribosNumatytafalse
Laukasstream_options.include_usageTipasbooleanReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukastemperatureTipasnumberReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastop_pTipasnumberReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasstopTipasstring|string[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukastoolsTipasfunction_tool[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukastools[].typeTipasstringReikalavimasNeprivalomaReikšmės ir ribos
function
Priklauso nuo modelio
Numatyta—
Laukastools[].function.nameTipasstringReikalavimasPrivalomaReikšmės ir ribos
Taikoma, kai: pateiktas funkcijos tipo įrankis
Numatyta—
Laukastools[].function.descriptionTipasstringReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukastools[].function.parametersTipasJSON_schemaReikalavimasNeprivalomaReikšmės ir ribosNumatyta—
Laukastool_choiceTipasstring|objectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasparallel_tool_callsTipasbooleanReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasresponse_formatTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasreasoning_effortTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasreasoningTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasservice_tierTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasinstructionsTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Suderinamumo laukas
Numatyta—
LaukasfunctionsTipasfunction[]ReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasfunction_callTipasstring|objectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
Laukasprompt_cache_optionsTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Priklauso nuo modelio
Numatyta—
LaukasmodalitiesTipasstring[]ReikalavimasNeprivalomaReikšmės ir ribos
text
Numatyta—
LaukasproviderTipasobjectReikalavimasNeprivalomaReikšmės ir ribos
Sąlygos: provider.options šiame Ultra teksto maršrute atmetamas
Numatyta—
Laukascache_control.ttlTipasstringReikalavimasNeprivalomaReikšmės ir ribos
Sąlygos: 1h atmetamas tikrosiose užklausų podėlio vietose
Numatyta—
Įvesties medžiagos deriniai

Tekstas · UTF8 tekstas

messages[].content

Metodo parametrai ir gyvavimo ciklas
ParametrasSpecifikacija
Parametrascontent_typeSpecifikacijaapplication/json
ParametrasrequiredSpecifikacijamodel, messages
Parametrasmaterial_typesSpecifikacijatext
ParametrasmessagesSpecifikacijapranešimų masyvas su role/content struktūra
Parametrasfile_materialSpecifikacijatikrasis UTF-8 dokumentas įterptas kaip pažodinis tekstas; failo ID nenumanomas
Parametrasoptional_controlsSpecifikacijastream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parametrascontrol_scopeSpecifikacijapriklauso nuo modelio; naudotojo funkcijų įrankiai skiriasi nuo priglobtų įrankių
Parametrasoutput_modalitiesSpecifikacijatext
Parametrashosted_operationsSpecifikacijafalse
Parametrasmultimodal_input_bindingSpecifikacijanull

Gyvavimo ciklas: synchronous_or_streamed

Siųskite tikslų modelio ID kartu su messages.

Konteksto ilgis nėra išvesties limitas.

Teksto failas gali pateikti pažodinį tekstą; vaizdų / garso / failų objektų įvestims reikia tikslaus susiejimo.

Planai

Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.

Spartusis režimas
Standartinis įkainis Pasirinkus spartųjį režimą
Flex režimas
Standartinis įkainis Pasirinkus flex režimą
Didžiausios samprotavimo pastangos
Standartinis įkainis Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)

Ailoot įkainiai

Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

KonfigūracijaĮkainių lentelėKonteksto tokenų daugiau neiKonteksto tokenų iki imtinaiMokestis
KonfigūracijaBaziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisKonteksto tokenų daugiau nei—Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaUžklausos ilgio pakopa 1Įkainių lentelė—Konteksto tokenų daugiau nei0Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →

Užklausų pavyzdžiai

Ailoot Ultra · OpenAI pokalbis

curlPython SDKPython srautas
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "minimax/minimax-m2.5", "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='minimax/minimax-m2.5',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='minimax/minimax-m2.5',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")

Gauti ir išsaugoti rezultatus

Ailoot Ultra · OpenAI pokalbis

json arba SSE

Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite kiekvieną variantą ir jo turinį / įrankių iškvietimus / samprotavimą. SSE prieaugius surinkite pagal varianto / įrankio indeksą; išsaugokite galutinę užbaigimo priežastį ir naudojimo duomenis.

Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai
LaukasTipas
Laukaschoices[].indexTipasinteger
Laukaschoices[].message.contentTipasstring|null
Laukaschoices[].message.tool_callsTipastool_call[]
Laukaschoices[].message.reasoning_contentTipasstring
Laukaschoices[].message.reasoning_detailsTipasobject|array
Laukaschoices[].finish_reasonTipasstring|null
LaukasusageTipasobject
Klaidos ir tolesni veiksmai
AtsakymasSąlygaKitas žingsnis
Atsakymas400 · invalid_request_errorSąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmėKitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus.

Pseudonimai

Modelių pseudonimai

Ailoot MiniMax-M2.5, minimax/minimax-m2.5
Ailoot Ultra MiniMax-M2.5, minimax/minimax-m2.5

Metodų kelių pseudonimai

/chat/completions

Susiję ID iškvietimui

minimax/minimax-m2.5, minimax/minimax-m2.5, MiniMax-M2.5, MiniMax-M2.5

Ailoot Ultra · Anthropic pranešimai POST /v1/messages minimax/minimax-m2.5

minimax/minimax-m2.5

MiniMax /minimax/minimax-m2.5
Modelio ID
  • MiniMax-M2.5
  • minimax/minimax-m2.5

Pradžia

Tekstinis modelis su 204,800 tokenų kontekstu bei Messages, Responses ir Chat Completions maršrutais.

Leidžiamos įvestys
Tekstas
Rezultatai
json · sse

Prieinama Ailoot · įvestys ir metodai

Ailoot Ultra · Anthropic pranešimai POST /v1/messages
Įvestis
text
Išvestis
json, sse
Išvesties formatas
JSON arba SSE
LaukasTipasReikalavimasReikšmės ir ribosNumatyta
LaukasmodelTipasstringReikalavimasPrivalomaReikšmės ir ribos
minimax/minimax-m2.5
Numatyta—
LaukasmessagesTipasmessage[]ReikalavimasPrivalomaReikšmės ir ribosNumatyta—
Laukasmessages[].roleTipasstringReikalavimasPrivalomaReikšmės ir ribos
user, assistant
Numatyta—
Laukasmessages[].contentTipasstringReikalavimasPrivalomaReikšmės ir ribosNumatyta—
Laukasmax_tokensTipasintegerReikalavimasPrivalomaReikšmės ir ribosNumatyta—
LaukasstreamTipasbooleanReikalavimasNeprivalomaReikšmės ir ribosNumatytafalse
Įvesties medžiagos deriniai

Tekstas · UTF-8 tekstas

messages[].content eilutė

Metodo parametrai ir gyvavimo ciklas
ParametrasSpecifikacija
Parametrascontent_typeSpecifikacijaapplication/json
ParametrasrequiredSpecifikacijamodel, messages, max_tokens
Parametrasoptional_controlsSpecifikacijastream
Parametrasmaterial_typesSpecifikacijatext
Parametrastext_file_materialSpecifikacijaPerskaitykite tikrąjį UTF-8 dokumentą ir įterpkite jo tekstą į nurodytą input lauką arba pranešimo turinio eilutę.

Gyvavimo ciklas: synchronous_or_streamed

Planai

Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.

Spartusis režimas
Standartinis įkainis Pasirinkus spartųjį režimą
Flex režimas
Standartinis įkainis Pasirinkus flex režimą
Didžiausios samprotavimo pastangos
Standartinis įkainis Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)

Ailoot įkainiai

Kainos pagal konfigūraciją

Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.

KonfigūracijaĮkainių lentelėKonteksto tokenų daugiau neiKonteksto tokenų iki imtinaiMokestis
KonfigūracijaBaziniai žetonų įkainiaiĮkainių lentelėBazinis įkainisKonteksto tokenų daugiau nei—Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų
KonfigūracijaUžklausos ilgio pakopa 1Įkainių lentelė—Konteksto tokenų daugiau nei0Konteksto tokenų iki imtinaiBe viršutinės ribosMokestis
Įvestis · Įvesties tokenai $0.0006 / 1K tokenų
Išvestis · Išvesties tokenai $0.0024 / 1K tokenų
Įvestis · Talpyklos skaitymas $0.00006 / 1K tokenų
Įvestis · Rašymas į talpyklą — / 1K tokenų
Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų

Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →

Užklausų pavyzdžiai

Ailoot Ultra · Anthropic pranešimai

Visas minimalus JSON užklausos turinyscurl · naudokite savo UTF-8 dokumentąPython · išsaugokite visą rezultatą
{
  "model": "minimax/minimax-m2.5",
  "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': 'minimax/minimax-m2.5', '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': 'minimax/minimax-m2.5', '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))

Gauti ir išsaugoti rezultatus

Ailoot Ultra · Anthropic pranešimai

JSON arba SSE

Išsaugoti visus baigtus rezultatus

Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.

Išsaugokite visus turinio blokus, mąstymo parašus ir tikruosius įrankių naudojimo ID. Surinkite visus SSE blokų prieaugius; pirmasis teksto blokas nėra visa išvestis.

Jei reikia patikrinti pradinį atsakymą

Išsaugokite užklausų / atsakymų ID ir antraštes. Bendras teksto užduoties gavimo URL nepateikiamas.

Atsakymo laukai
LaukasTipas
LaukasidTipasstring
LaukasmodelTipasstring
Laukascontent[]Tipastext|thinking|tool_use|other content block
Laukasstop_reasonTipasstring|null
LaukasusageTipasobject
Klaidos ir tolesni veiksmai
AtsakymasSąlygaKitas žingsnis
Atsakymas400 · invalid_request_errorSąlygaNetinkami privalomi laukai, medžiagos pateikimo forma arba parametro reikšmėKitas žingsnisPrieš naują kūrimo užklausą pataisykite nurodytus laukus.

Pseudonimai

Modelių pseudonimai

Ailoot MiniMax-M2.5, minimax/minimax-m2.5
Ailoot Ultra MiniMax-M2.5, minimax/minimax-m2.5

Metodų kelių pseudonimai

/chat/completions

Susiję ID iškvietimui

minimax/minimax-m2.5, minimax/minimax-m2.5, MiniMax-M2.5, MiniMax-M2.5

FAQ · MiniMax: MiniMax M2.5
Kokios įvestys ir rezultatai prieinami?

POST /v1/messages · MiniMax-M2.5: text → text

POST /v1/responses · MiniMax-M2.5: text → text

POST /v1/chat/completions · MiniMax-M2.5: text → text

POST /v1/chat/completions · MiniMax-M2.5: text → text

POST /v1/messages · MiniMax-M2.5: text → json, sse

POST /v1/messages · minimax/minimax-m2.5: text → text

POST /v1/responses · minimax/minimax-m2.5: text → text

POST /v1/chat/completions · minimax/minimax-m2.5: text → text

POST /v1/chat/completions · minimax/minimax-m2.5: text → text

POST /v1/messages · minimax/minimax-m2.5: text → json, sse

Kokius laukus naudoja užklausa?

POST /v1/messages · MiniMax-M2.5: model, messages, system, max_tokens, stream, metadata

POST /v1/responses · MiniMax-M2.5: model, input, instructions, stream

POST /v1/chat/completions · MiniMax-M2.5: model, messages, stream

POST /v1/chat/completions · MiniMax-M2.5: model, messages, stream

POST /v1/messages · MiniMax-M2.5: model, messages, max_tokens, stream

POST /v1/messages · minimax/minimax-m2.5: model, messages, system, max_tokens, stream, metadata

POST /v1/responses · minimax/minimax-m2.5: model, input, instructions, stream

POST /v1/chat/completions · minimax/minimax-m2.5: model, messages, stream

POST /v1/chat/completions · minimax/minimax-m2.5: model, messages, stream, modalities, provider

POST /v1/messages · minimax/minimax-m2.5: model, messages, max_tokens, stream

Kokie apribojimai taikomi?

POST /v1/messages · MiniMax-M2.5: ctx: 204800; max_out: 204800; messages.min_items: 1; max_tokens.minimum: 1

POST /v1/responses · MiniMax-M2.5: ctx: 204800; max_out: 204800

POST /v1/chat/completions · MiniMax-M2.5: ctx: 204800; max_out: 204800; messages.min_items: 1

POST /v1/chat/completions · MiniMax-M2.5: messages.min_items: 1

POST /v1/messages · minimax/minimax-m2.5: ctx: 204800; max_out: 204800; messages.min_items: 1; max_tokens.minimum: 1

POST /v1/responses · minimax/minimax-m2.5: ctx: 204800; max_out: 204800

POST /v1/chat/completions · minimax/minimax-m2.5: ctx: 204800; max_out: 204800; messages.min_items: 1

POST /v1/chat/completions · minimax/minimax-m2.5: messages.min_items: 1

Išsamiau

Prijunkite Ailoot prie Claude Code, OpenCode, Hermes arba savo programos.

Įmonė ir jos projektų portfelis

Įmonė ir jos projektų portfelis: milijonai klientų; mėnesio pardavimai siekia milijardus.

Pirkite žetonus su nuolaida.

Prenumeratos nuolaida reguliariam darbui. Kodai — iki 50% žetonų pirkimui.

Prenumerata
Pasirinkite planą su nuolaida reguliarioms užklausoms.
Nuolaidos kodas iki 50%
Įveskite kodą perkant. Kaina perskaičiuojama pagal galiojančios akcijos sąlygas.
Išlaidos istorijoje
Kiekvienai užklausai išsaugomi modelis, žetonai ir suma.

Pasirinkti prenumeratą · Peržiūrėti modelių kainas

Prijunkite API prie produkto, kurį parduodate.

SaaS, programos ir botai pagal Ailoot ofertą bei licencijos sutartį. Perpardavimui paprašykite perpardavėjo licencijos.

Komercinė programa
Teksto, vaizdų, video ir garso kūrimą integruokite į mokamas paslaugos funkcijas.
Perpardavėjo licencija
Atsiųskite projekto aprašymą ir prieigos schemą. Paprašykite rašytinių naudojimo ir perpardavimo sąlygų.
Dokumentai svetainėje
Oferta, licencijos sutartis ir duomenų tvarkymo politika prieinamos prieš prisijungiant.

Paprašyti perpardavėjo licencijos · Oferta ir licencijos sutartis