models

Qwen: Qwen3.7 Max

Markdown · JSON

Qwen: Qwen3.7 Max

Qwen3.7 Max — Alibaba компаниясының бағдарламалау, кеңсе жұмысы және ұзақ агенттік тапсырмаларға арналған флагман мәтіндік моделі. Ол миллион токендік контекст, функция шақыруын, JSON Schema бойынша құрылымдалған жауаптарды және қайталанатын контекст үшін құжатталған промпт кэштеуін ұсынады.

Модель туралы

Бұл сипаттама модель мүмкіндіктерін қамтиды. Ailoot жүйесінде таңдалған әдіс үшін қолжетімді кіріс, шығыс және параметрлер төменде берілген.

Qwen3.7 Max — Alibaba компаниясының Qwen3.7 сериясының жетекші мәтін моделі. Жарияланған рөлі агент үдерістеріне, бағдарламалауға, кеңсе мен өнімділік тапсырмаларына және бірнеше қадам бойы жалғасатын жұмысқа бағытталған. Мәтіндік кіріс мәтіндік шығыс береді. Бейінде 1,000,000 токендік контекст терезесі мен 131,072-ге дейін аяқтау токені көрсетілген.

Бағдарламалау және кеңсе артефактілері

Бағдарламалау тапсырмасы жеткізілетін әрекетті, тиісті бастапқы кодты және ағымдағы мәселені анықтайтын бақылауларды көрсетуі тиіс. Нысаналы өзгерісті және оны бағалауға қажет тексерулерді сұраңыз. Кеңсе тапсырмасы есепке, салыстыруға не жоспарлау жазбасына материал беріп, аудиторияны, қажетті қорытындыларды және шығыс құрылымын анықтай алады.

Нақты деректерді, құжат белгілерін және жорамалдарды тапсырмамен бірге сақтаңыз. Есепте дерек қорытындыларын түсіндіруден ажыратыңыз. Электрондық кесте сұрағында тиісті мәндер мен формулаларды беріп, модельден тыс орындалған кез келген нақты есептеу нәтижесін сақтаңыз.

Құралдар және құрылымды нәтижелер

Құжатталған хостинг келісімі функция шақыру мен JSON-schema бойынша құрылымды шығыстарды қолдайды. Қолданбаға қолжетімді операцияларды және нәтижеге қажет өрістерді анықтаңыз. Құрал шақыру көзделген операцияны сипаттайды; қолданба оны орындап, нақты бақылауды береді. Бұл бақылау модельдің келесі шешімімен байланысты қалуы тиіс.

Құрылымды нәтиже үшін түрлерді, бірліктерді және жоқ ақпаратты өңдеуді көрсетіңіз. Қайтарылған жазбаны схемасымен де, деректерімен де тексеріңіз. Ұзағырақ жауапта нақты қорытынды мен оны түсіндіретін дәлелді сұраңыз.

Қайталанатын контекст және жалғасатын жұмыс

Бейін қайталанатын контекст үшін промпт кэшін құжаттайды. Байланысты сұрауларда қайта қолданылатын нұсқаулар мен тұрақты бастапқы материалды бірізді ұстап, ағымдағы тапсырма мен жаңа бақылауларды оңай танылатын жерге орналастырыңыз. Нақты кэш қайта қолданылуы — тек ұқсас тұжырымнан шығарылатын нәтиже емес, қызмет көрсететін сұрау мен оның пайдалану ақпаратының қасиеті.

Жауапқа орын қалдырып, ұзақ контексті тиісті шешімдер мен дерек байланыстарын сақтау үшін қолданыңыз. Аяқталған тапсырма артефактіні, оны қолдайтын бақылауларды және кез келген қалған сұрақты сақтауы тиіс, сонда диалогтың кейінгі айналымы қалыптасқан күйден жалғаса алады.

Практикалық тапсырма

Практикалық тапсырма

Ағылшын тіліндегі техникалық мысал

Review a forecast formula

Review this spreadsheet plan in text. Opening stock is 120 units; receipts are 50; forecast sales are 90. Closing stock formula is =opening_stock+receipts+forecast_sales. Correct the formula, show the arithmetic for the supplied row and give a check for a row where forecast sales exceed available stock. Return a short analyst note.

Күтілетін нәтиже

A corrected formula, a worked row calculation and a validation rule for a negative projected closing balance.

Нәтижені тексеру

Check that sales reduce stock and the negative-balance case is flagged rather than silently replaced with zero.
Ailoot · Anthropic хабарламалары POST /v1/messages qwen3.7-max

qwen3.7-max

Alibaba /qwen3.7-max

Бастау

Qwen3.7 Max — Alibaba компаниясының бағдарламалау, кеңсе жұмысы және ұзақ агенттік тапсырмаларға арналған флагман мәтіндік моделі. Ол миллион токендік контекст, функция шақыруын, JSON Schema бойынша құрылымдалған жауаптарды және қайталанатын контекст үшін құжатталған промпт кэштеуін ұсынады.

Қабылданатын кіріс деректері
Мәтін
Нәтижелер
Мәтін

Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

Ailoot · Anthropic хабарламалары POST /v1/messages
Кіріс
text
Шығыс
text
Контекст
991 808 tokens
Ең үлкен шығыс
131 072 tokens
Шығыс пішімі
json немесе SSE
ӨрісТүріТалапМәндер мен шектеулерӘдепкі
ӨрісmodelТүріstringТалапМіндеттіМәндер мен шектеулер
qwen3.7-max
Әдепкі—
ӨрісmessagesТүріmessage[]ТалапМіндеттіМәндер мен шектеулер
Элементтердің ең аз саны: 1
Әдепкі—
Өрісmessages[].roleТүріstringТалапМіндеттіМәндер мен шектеулер
user, assistant
Әдепкі—
Өрісmessages[].contentТүріstring|content_block[]ТалапМіндеттіМәндер мен шектеулерӘдепкі—
ӨрісsystemТүріstring|content_block[]ТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісmax_tokensТүріintegerТалапМіндеттіМәндер мен шектеулер
Ең азы: 1
Шектеу қолданылатын нысан: таңдалған модельдің/карточканың нақты жоғарғы шегі
Әдепкі—
ӨрісstreamТүріbooleanТалапМіндетті емесМәндер мен шектеулерӘдепкіfalse
ӨрісtemperatureТүріnumberТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtop_pТүріnumberТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісstop_sequencesТүріstring[]ТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісtoolsТүріtool[]ТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtools[].nameТүріstringТалапМіндетті емесМәндер мен шектеулер
Мына жағдайда қолданылады: құрал берілген
Әдепкі—
Өрісtools[].descriptionТүріstringТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісtools[].input_schemaТүріJSON_schemaТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісtool_choiceТүріobjectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісthinking.typeТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісthinking.budget_tokensТүріintegerТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісoutput_config.effortТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісmetadataТүріobjectТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісcache_controlТүріobjectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Кіріс материалдарының үйлесімдері

Мәтін · UTF8 мәтіні

messages[].content немесе type=text блогы

Әдіс параметрлері мен өмірлік циклі
ПараметрПараметр талаптары
Параметрmaterial_typesПараметр талаптарыtext
ПараметрrequiredПараметр талаптарыmodel, messages, max_tokens
Параметрoptional_controlsПараметр талаптарыnull
Параметрcontent_typeПараметр талаптарыapplication/json
Параметрtext_file_materialПараметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет

Өмірлік цикл: exact retained published method

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

Тарифтер

Ailoot әдістерінің мөлшерлемелері

Ailoot Anthropic хабарламаларыPOST /v1/messages
Кіріс
0,0025 $ / 1K
Шығыс
0,0075 $ / 1K
Кэшті оқу
0,00025 $ / 1K
Кэшке жазу
≈0,00313 $ / 1K
Кэшке жазу, 5 мин
≈0,00313 $ / 1K tokens

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. Резервтеу мен төлемді есептеу тәртібі →

Анықтамалық тариф мәліметтері

Модельдің анықтамалық кестелері әдіс таңдауын, баға есебін не төлемді өзгертпейді. Қолданыстағы төлемдер таңдалған Ailoot әдісінің мөлшерлемелерімен есептеледі.

Модельдің анықтамалық кестелері

Баптаулар бойынша бағалар

Әр төлемді көрсетілген шарттармен салыстырыңыз. Балама баптаулардың әр жиыны үшін бір мөлшерлемені қолданыңыз.

БаптауМөлшерлемелер кестесіКонтекст токендерінің саны мынадан көпКонтекст токендерінің саны мынадан аспайды, шегі кіредіТөлем
БаптауOpenAI Chat · Токендердің базалық тарифтеріМөлшерлемелер кестесіНегізгі мөлшерлемеКонтекст токендерінің саны мынадан көп—Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауOpenAI Chat · Сұрау ұзындығы бойынша 1-деңгейМөлшерлемелер кестесі—Контекст токендерінің саны мынадан көп0Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауAnthropic Messages · Токендердің базалық тарифтеріМөлшерлемелер кестесіНегізгі мөлшерлемеКонтекст токендерінің саны мынадан көп—Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауAnthropic Messages · Сұрау ұзындығы бойынша 1-деңгейМөлшерлемелер кестесі—Контекст токендерінің саны мынадан көп0Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен

Сұрау мысалдары

Ailoot · Anthropic хабарламалары

Мәтін мысалыPython SDKNode.js SDKPython ағыны
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": "qwen3.7-max", "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="qwen3.7-max",
    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: "qwen3.7-max",
  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='qwen3.7-max',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")

Нәтижелерді алу және сақтау

Ailoot · Anthropic хабарламалары

json немесе SSE

Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Барлық мазмұн блоктарын, пайымдау қолтаңбаларын және құрал қолданудың нақты ID мәндерін сақтаңыз. SSE блоктарының барлық өзгерістерін жинаңыз; алғашқы мәтіндік блок толық шығыс емес.

Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері
ӨрісТүрі
ӨрісidТүріstring
ӨрісmodelТүріstring
Өрісcontent[]Түріtext|thinking|tool_use|other content block
Өрісstop_reasonТүріstring|null
ӨрісusageТүріobject
Қателер және келесі қадамдар
ЖауапШартКелесі қадам
Жауап400 · invalid_request_errorШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қатеКелесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз.

Балама атаулар

Модельдердің балама атаулары

Ailoot qwen3.7-max, auto
Ailoot Ultra qwen3.7-max, qwen/qwen3.7-max

Әдіс жолдарының балама атаулары

/chat/completions

Шақыруға арналған байланысты ID

qwen/qwen3.7-max, auto, qwen3.7-max, qwen3.7-max

Ailoot · OpenAI Responses POST /v1/responses qwen3.7-max

qwen3.7-max

Alibaba /qwen3.7-max
Модель ID
  • qwen3.7-max
  • auto

Бастау

Qwen3.7 Max — Alibaba компаниясының бағдарламалау, кеңсе жұмысы және ұзақ агенттік тапсырмаларға арналған флагман мәтіндік моделі. Ол миллион токендік контекст, функция шақыруын, JSON Schema бойынша құрылымдалған жауаптарды және қайталанатын контекст үшін құжатталған промпт кэштеуін ұсынады.

Қабылданатын кіріс деректері
Мәтін
Нәтижелер
Мәтін

Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

Ailoot · OpenAI Responses POST /v1/responses
Кіріс
text
Шығыс
text
Контекст
991 808 tokens
Ең үлкен шығыс
131 072 tokens
Шығыс пішімі
json немесе SSE
ӨрісТүріТалапМәндер мен шектеулерӘдепкі
ӨрісmodelТүріstringТалапМіндеттіМәндер мен шектеулер
qwen3.7-max
Әдепкі—
ӨрісinputТүріstring|input_item[]ТалапМіндеттіМәндер мен шектеулерӘдепкі—
ӨрісinstructionsТүріstringТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісinput[].typeТүріstringТалапМіндетті емесМәндер мен шектеулер
message, reasoning, function_call, function_call_output
Әдепкі—
Өрісinput[].contentТүріstring|content_part[]ТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісinput[].call_idТүріstringТалапМіндетті емесМәндер мен шектеулер
Мына жағдайда қолданылады: function_call_output; нақты қайтарылған call_id мәнін сақтаңыз
Әдепкі—
Өрісinput[].outputТүріstring|content_part[]ТалапМіндетті емесМәндер мен шектеулер
Мына жағдайда қолданылады: function_call_output
Әдепкі—
Өрісmax_output_tokensТүріintegerТалапМіндетті емесМәндер мен шектеулер
Ең азы: 1
Модельге байланысты
Әдепкі—
ӨрісstreamТүріbooleanТалапМіндетті емесМәндер мен шектеулерӘдепкіfalse
ӨрісtemperatureТүріnumberТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtop_pТүріnumberТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісtoolsТүріtool[]ТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtool_choiceТүріstring|objectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісparallel_tool_callsТүріbooleanТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісreasoning.effortТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісreasoning.summaryТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtext.formatТүріobjectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtext.verbosityТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісincludeТүріstring[]ТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісstoreТүріbooleanТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісprevious_response_idТүріstringТалапМіндетті емесМәндер мен шектеулер
ID талабы: Қолдау көрсетілетін жалғастырудан алынған нақты жауап ID-і ғана
Модельге байланысты
Әдепкі—
Өрісservice_tierТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісprompt_cache_keyТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісprompt_cache_optionsТүріobjectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Кіріс материалдарының үйлесімдері

Мәтін · UTF8 мәтіні

кіріс мәтіні немесе input_text бөлігі

Әдіс параметрлері мен өмірлік циклі
ПараметрПараметр талаптары
Параметрmaterial_typesПараметр талаптарыtext
ПараметрrequiredПараметр талаптарыmodel, input
Параметрoptional_controlsПараметр талаптарыnull
Параметрcontent_typeПараметр талаптарыapplication/json
Параметрtext_file_materialПараметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет

Өмірлік цикл: exact retained published method

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

Тарифтер

Ailoot әдістерінің мөлшерлемелері

Ailoot OpenAI ResponsesPOST /v1/responses
Кіріс
0,0025 $ / 1K
Шығыс
0,0075 $ / 1K
Кэшті оқу
0,0005 $ / 1K
Кэшке жазу
≈0,00313 $ / 1K
Кэшке жазу, 5 мин
≈0,00313 $ / 1K tokens
code_interpreter_call
0,00 $ әр шақыру үшін
web_extractor_call
0,00 $ әр шақыру үшін
web_search_call
0,01 $ әр шақыру үшін
Шақырулардың ең көп саны: code_interpreter_call
8
Шақырулардың ең көп саны: web_extractor_call
8
Шақырулардың ең көп саны: web_search_call
8

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. Резервтеу мен төлемді есептеу тәртібі →

Анықтамалық тариф мәліметтері

Модельдің анықтамалық кестелері әдіс таңдауын, баға есебін не төлемді өзгертпейді. Қолданыстағы төлемдер таңдалған Ailoot әдісінің мөлшерлемелерімен есептеледі.

Модельдің анықтамалық кестелері

Баптаулар бойынша бағалар

Әр төлемді көрсетілген шарттармен салыстырыңыз. Балама баптаулардың әр жиыны үшін бір мөлшерлемені қолданыңыз.

БаптауМөлшерлемелер кестесіКонтекст токендерінің саны мынадан көпКонтекст токендерінің саны мынадан аспайды, шегі кіредіТөлем
БаптауOpenAI Chat · Токендердің базалық тарифтеріМөлшерлемелер кестесіНегізгі мөлшерлемеКонтекст токендерінің саны мынадан көп—Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауOpenAI Chat · Сұрау ұзындығы бойынша 1-деңгейМөлшерлемелер кестесі—Контекст токендерінің саны мынадан көп0Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауAnthropic Messages · Токендердің базалық тарифтеріМөлшерлемелер кестесіНегізгі мөлшерлемеКонтекст токендерінің саны мынадан көп—Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауAnthropic Messages · Сұрау ұзындығы бойынша 1-деңгейМөлшерлемелер кестесі—Контекст токендерінің саны мынадан көп0Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен

Сұрау мысалдары

Ailoot · OpenAI Responses

Мәтін мысалыPython SDKNode.js SDKPython ағыны
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": "qwen3.7-max", "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="qwen3.7-max", 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: "qwen3.7-max", 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="qwen3.7-max", 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")

Нәтижелерді алу және сақтау

Ailoot · OpenAI Responses

json немесе SSE

Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Әр шығыс элементін және мазмұн бөлігін, функцияның нақты call_id мәнін, шифрланған пайымдауды және пайдалану деректерін сақтаңыз. Ағында оқиғалар мен элементтердің барлық сәйкестендіру деректерін сақтаңыз.

Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері
ӨрісТүрі
ӨрісidТүріstring
ӨрісstatusТүріstring
Өрісoutput[]Түріmessage|reasoning|function_call|other item
Өрісoutput[].content[]Түріcontent part
ӨрісusageТүріobject
Қателер және келесі қадамдар
ЖауапШартКелесі қадам
Жауап400 · invalid_request_errorШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қатеКелесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз.

Балама атаулар

Модельдердің балама атаулары

Ailoot qwen3.7-max, auto
Ailoot Ultra qwen3.7-max, qwen/qwen3.7-max

Әдіс жолдарының балама атаулары

/chat/completions

Шақыруға арналған байланысты ID

qwen/qwen3.7-max, auto, qwen3.7-max, qwen3.7-max

Ailoot · OpenAI чаты POST /v1/chat/completions qwen3.7-max

qwen3.7-max

Alibaba /qwen3.7-max
Модель ID
  • qwen3.7-max
  • auto

Бастау

Qwen3.7 Max — Alibaba компаниясының бағдарламалау, кеңсе жұмысы және ұзақ агенттік тапсырмаларға арналған флагман мәтіндік моделі. Ол миллион токендік контекст, функция шақыруын, JSON Schema бойынша құрылымдалған жауаптарды және қайталанатын контекст үшін құжатталған промпт кэштеуін ұсынады.

Қабылданатын кіріс деректері
Мәтін
Нәтижелер
Мәтін

Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

Ailoot · OpenAI чаты POST /v1/chat/completions
Кіріс
text
Шығыс
text
Контекст
991 808 tokens
Ең үлкен шығыс
131 072 tokens
Шығыс пішімі
json немесе SSE
ӨрісТүріТалапМәндер мен шектеулерӘдепкі
ӨрісmodelТүріstringТалапМіндеттіМәндер мен шектеулер
qwen3.7-max
Әдепкі—
ӨрісmessagesТүріmessage[]ТалапМіндеттіМәндер мен шектеулер
Элементтердің ең аз саны: 1
Әдепкі—
Өрісmessages[].roleТүріstringТалапМіндеттіМәндер мен шектеулер
Мысалдар: system, user, assistant, tool, function
Шарттар: Бұл рөлдер бастапқы кодтағы үйлесімділік түрлерінде айқын көрсетілген; рөлдердің нақты жиыны әр модельге байланысты.
Модельге байланысты
Әдепкі—
Өрісmessages[].contentТүріstring|content_part[]|nullТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісmessages[].tool_callsТүріtool_call[]ТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісmessages[].tool_call_idТүріstringТалапМіндетті емесМәндер мен шектеулер
Мына жағдайда қолданылады: role=tool; нақты қайтарылған ID мәнін пайдаланыңыз
Әдепкі—
Өрісmessages[].nameТүріstringТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісmessages[].reasoning_contentТүріstringТалапМіндетті емесМәндер мен шектеулер
Мына жағдайда қолданылады: Модель пайымдауды пайдаланса, нақты қайтарылған пайымдауды қайта жіберіңіз
Әдепкі—
Өрісmessages[].reasoning_detailsТүріobject|arrayТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісmax_tokensТүріintegerТалапМіндетті емесМәндер мен шектеулер
Ең азы: 1
Модельге байланысты
Әдепкі—
Өрісmax_completion_tokensТүріintegerТалапМіндетті емесМәндер мен шектеулер
Ең азы: 1
Модельге байланысты
Әдепкі—
ӨрісstreamТүріbooleanТалапМіндетті емесМәндер мен шектеулерӘдепкіfalse
Өрісstream_options.include_usageТүріbooleanТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісtemperatureТүріnumberТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtop_pТүріnumberТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісstopТүріstring|string[]ТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісtoolsТүріfunction_tool[]ТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtools[].typeТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtools[].function.nameТүріstringТалапМіндеттіМәндер мен шектеулер
Мына жағдайда қолданылады: функция құралы берілген
Әдепкі—
Өрісtools[].function.descriptionТүріstringТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісtools[].function.parametersТүріJSON_schemaТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісtool_choiceТүріstring|objectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісparallel_tool_callsТүріbooleanТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісresponse_formatТүріobjectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісreasoning_effortТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісreasoningТүріobjectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісservice_tierТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісinstructionsТүріstringТалапМіндетті емесМәндер мен шектеулер
Үйлесімділік өрісі
Әдепкі—
ӨрісfunctionsТүріfunction[]ТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісfunction_callТүріstring|objectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісprompt_cache_optionsТүріobjectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Кіріс материалдарының үйлесімдері

Мәтін · UTF8 мәтіні

messages[].content

Әдіс параметрлері мен өмірлік циклі
ПараметрПараметр талаптары
Параметрmaterial_typesПараметр талаптарыtext
ПараметрrequiredПараметр талаптарыmodel, messages
Параметрoptional_controlsПараметр талаптарыnull
Параметрcontent_typeПараметр талаптарыapplication/json
Параметрtext_file_materialПараметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет

Өмірлік цикл: exact retained published method

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

Тарифтер

Ailoot әдістерінің мөлшерлемелері

Ailoot OpenAI чатыPOST /v1/chat/completions
Кіріс
0,0025 $ / 1K
Шығыс
0,0075 $ / 1K
Кэшті оқу
0,0005 $ / 1K
Кэшке жазу
≈0,00313 $ / 1K
Кэшке жазу, 5 мин
≈0,00313 $ / 1K tokens

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. Резервтеу мен төлемді есептеу тәртібі →

Анықтамалық тариф мәліметтері

Модельдің анықтамалық кестелері әдіс таңдауын, баға есебін не төлемді өзгертпейді. Қолданыстағы төлемдер таңдалған Ailoot әдісінің мөлшерлемелерімен есептеледі.

Модельдің анықтамалық кестелері

Баптаулар бойынша бағалар

Әр төлемді көрсетілген шарттармен салыстырыңыз. Балама баптаулардың әр жиыны үшін бір мөлшерлемені қолданыңыз.

БаптауМөлшерлемелер кестесіКонтекст токендерінің саны мынадан көпКонтекст токендерінің саны мынадан аспайды, шегі кіредіТөлем
БаптауOpenAI Chat · Токендердің базалық тарифтеріМөлшерлемелер кестесіНегізгі мөлшерлемеКонтекст токендерінің саны мынадан көп—Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауOpenAI Chat · Сұрау ұзындығы бойынша 1-деңгейМөлшерлемелер кестесі—Контекст токендерінің саны мынадан көп0Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауAnthropic Messages · Токендердің базалық тарифтеріМөлшерлемелер кестесіНегізгі мөлшерлемеКонтекст токендерінің саны мынадан көп—Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауAnthropic Messages · Сұрау ұзындығы бойынша 1-деңгейМөлшерлемелер кестесі—Контекст токендерінің саны мынадан көп0Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен

Сұрау мысалдары

Ailoot · OpenAI чаты

Мәтін мысалыPython SDKNode.js SDKPython ағыны
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": "qwen3.7-max", "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="qwen3.7-max",
    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: "qwen3.7-max",
  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='qwen3.7-max',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")

Нәтижелерді алу және сақтау

Ailoot · OpenAI чаты

json немесе SSE

Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Әр жауап нұсқасын оның мазмұнымен, құрал шақыруларымен және пайымдауымен бірге сақтаңыз. SSE өзгерістерін жауап нұсқасы мен құрал индексі бойынша жинап, соңғы аяқталу себебі мен пайдалану деректерін сақтаңыз.

Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері
ӨрісТүрі
Өрісchoices[].indexТүріinteger
Өрісchoices[].message.contentТүріstring|null
Өрісchoices[].message.tool_callsТүріtool_call[]
Өрісchoices[].message.reasoning_contentТүріstring
Өрісchoices[].message.reasoning_detailsТүріobject|array
Өрісchoices[].finish_reasonТүріstring|null
ӨрісusageТүріobject
Қателер және келесі қадамдар
ЖауапШартКелесі қадам
Жауап400 · invalid_request_errorШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қатеКелесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз.

Балама атаулар

Модельдердің балама атаулары

Ailoot qwen3.7-max, auto
Ailoot Ultra qwen3.7-max, qwen/qwen3.7-max

Әдіс жолдарының балама атаулары

/chat/completions

Шақыруға арналған байланысты ID

qwen/qwen3.7-max, auto, qwen3.7-max, qwen3.7-max

Ailoot Ultra · OpenAI чаты POST /v1/chat/completions qwen3.7-max

qwen3.7-max

Alibaba /qwen3.7-max
Модель ID
  • qwen3.7-max
  • qwen/qwen3.7-max

Бастау

Qwen3.7 Max — Alibaba компаниясының бағдарламалау, кеңсе жұмысы және ұзақ агенттік тапсырмаларға арналған флагман мәтіндік моделі. Ол миллион токендік контекст, функция шақыруын, JSON Schema бойынша құрылымдалған жауаптарды және қайталанатын контекст үшін құжатталған промпт кэштеуін ұсынады.

Қабылданатын кіріс деректері
Мәтін
Нәтижелер
Мәтін

Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

Ailoot Ultra · OpenAI чаты POST /v1/chat/completions
Кіріс
text
Шығыс
text
Шығыс пішімі
json немесе SSE
ӨрісТүріТалапМәндер мен шектеулерӘдепкі
ӨрісmodelТүріstringТалапМіндеттіМәндер мен шектеулер
qwen3.7-max
Әдепкі—
ӨрісmessagesТүріmessage[]ТалапМіндеттіМәндер мен шектеулер
Элементтердің ең аз саны: 1
Әдепкі—
Өрісmessages[].roleТүріstringТалапМіндеттіМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісmessages[].contentТүріstringТалапМіндетті емесМәндер мен шектеулер
Мына жағдайда қолданылады: Мәтіндік әңгіме
Әдепкі—
ӨрісstreamТүріbooleanТалапМіндетті емесМәндер мен шектеулерӘдепкіfalse
Кіріс материалдарының үйлесімдері

Мәтін · UTF8 мәтіні

messages[].content

Әдіс параметрлері мен өмірлік циклі
ПараметрПараметр талаптары
Параметрcontent_typeПараметр талаптарыapplication/json
ПараметрrequiredПараметр талаптарыmodel, messages
Параметрmaterial_typesПараметр талаптарыtext
ПараметрmessagesПараметр талаптарыrole/content құрылымы бар хабарламалар жиымы
Параметрfile_materialПараметр талаптарынақты UTF-8 құжаты сөзбе-сөз мәтін ретінде енгізіледі; файл ID-і болжанбайды
Параметрoptional_controlsПараметр талаптарыstream
Параметрcontrol_scopeПараметр талаптарыМәтіндік әңгіме; stream — логикалық мән, әдепкісі false.
Параметрoutput_modalitiesПараметр талаптарыtext
Параметрhosted_operationsПараметр талаптарыfalse
Параметрmultimodal_input_bindingПараметр талаптарыnull

Әдістің балама атаулары: /chat/completions

Өмірлік цикл: synchronous_or_streamed

Модельдің дәл ID мәнін messages деректерімен бірге жіберіңіз.

Контекст ұзындығы шығыстың жоғарғы шегі емес.

Мәтіндік файл сөзбе-сөз мәтінді бере алады; кіріс суреттері, аудио және файл нысандары дәл байланыстыруды қажет етеді.

Тарифтер

Тариф анықтамасы сұрау мүмкіндіктерін қоспайды. Қолдау көрсетілетін параметрлер таңдалған әдісте берілген.

Жылдам режим
Стандартты тариф Жылдам режим таңдалғанда
Икемді режим
Стандартты тариф flex режимі таңдалғанда
Ой қорытудың ең жоғары деңгейі
Стандартты тариф Ой қорыту деңгейі ең жоғары болып, default түзетуі қолданылғанда

Ailoot мөлшерлемелері

Баптаулар бойынша бағалар

Әр төлемді көрсетілген шарттармен салыстырыңыз. Балама баптаулардың әр жиыны үшін бір мөлшерлемені қолданыңыз.

БаптауМөлшерлемелер кестесіКонтекст токендерінің саны мынадан көпКонтекст токендерінің саны мынадан аспайды, шегі кіредіТөлем
БаптауТокендердің базалық тарифтеріМөлшерлемелер кестесіНегізгі мөлшерлемеКонтекст токендерінің саны мынадан көп—Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауСұрау ұзындығының 1-деңгейіМөлшерлемелер кестесі—Контекст токендерінің саны мынадан көп0Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. Резервтеу мен төлемді есептеу тәртібі →

Сұрау мысалдары

Ailoot Ultra · OpenAI чаты

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":"qwen3.7-max","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="qwen3.7-max", 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"))

Нәтижелерді алу және сақтау

Ailoot Ultra · OpenAI чаты

json немесе SSE

Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Әр жауап нұсқасын оның мазмұнымен, құрал шақыруларымен және пайымдауымен бірге сақтаңыз. SSE өзгерістерін жауап нұсқасы мен құрал индексі бойынша жинап, соңғы аяқталу себебі мен пайдалану деректерін сақтаңыз.

Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері
ӨрісТүрі
Өрісchoices[].indexТүріinteger
Өрісchoices[].message.contentТүріstring|null
Өрісchoices[].message.tool_callsТүріtool_call[]
Өрісchoices[].message.reasoning_contentТүріstring
Өрісchoices[].message.reasoning_detailsТүріobject|array
Өрісchoices[].finish_reasonТүріstring|null
ӨрісusageТүріobject
Қателер және келесі қадамдар
ЖауапШартКелесі қадам
Жауап400 · invalid_request_errorШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қатеКелесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз.

Балама атаулар

Модельдердің балама атаулары

Ailoot qwen3.7-max, auto
Ailoot Ultra qwen3.7-max, qwen/qwen3.7-max

Әдіс жолдарының балама атаулары

/chat/completions

Шақыруға арналған байланысты ID

qwen/qwen3.7-max, auto, qwen3.7-max, qwen3.7-max

Ailoot Ultra · Anthropic хабарламалары POST /v1/messages qwen3.7-max

qwen3.7-max

Alibaba /qwen3.7-max
Модель ID
  • qwen3.7-max
  • qwen/qwen3.7-max

Бастау

Qwen3.7 Max — Alibaba компаниясының бағдарламалау, кеңсе жұмысы және ұзақ агенттік тапсырмаларға арналған флагман мәтіндік моделі. Ол миллион токендік контекст, функция шақыруын, JSON Schema бойынша құрылымдалған жауаптарды және қайталанатын контекст үшін құжатталған промпт кэштеуін ұсынады.

Қабылданатын кіріс деректері
Мәтін
Нәтижелер
json · sse

Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

Ailoot Ultra · Anthropic хабарламалары POST /v1/messages
Кіріс
text
Шығыс
json, sse
Шығыс пішімі
JSON немесе SSE
ӨрісТүріТалапМәндер мен шектеулерӘдепкі
ӨрісmodelТүріstringТалапМіндеттіМәндер мен шектеулер
qwen3.7-max
Әдепкі—
ӨрісmessagesТүріmessage[]ТалапМіндеттіМәндер мен шектеулерӘдепкі—
Өрісmessages[].roleТүріstringТалапМіндеттіМәндер мен шектеулер
user, assistant
Әдепкі—
Өрісmessages[].contentТүріstringТалапМіндеттіМәндер мен шектеулерӘдепкі—
Өрісmax_tokensТүріintegerТалапМіндеттіМәндер мен шектеулерӘдепкі—
ӨрісstreamТүріbooleanТалапМіндетті емесМәндер мен шектеулерӘдепкіfalse
Кіріс материалдарының үйлесімдері

Мәтін · UTF-8 мәтіні

messages[].content жолы

Әдіс параметрлері мен өмірлік циклі
ПараметрПараметр талаптары
Параметрcontent_typeПараметр талаптарыapplication/json
ПараметрrequiredПараметр талаптарыmodel, messages, max_tokens
Параметрoptional_controlsПараметр талаптарыstream
Параметрmaterial_typesПараметр талаптарыtext
Параметрtext_file_materialПараметр талаптарыНақты UTF-8 құжатын оқып, оның мәтінін көрсетілген кіріс жолына немесе хабарлама мазмұнының жолына қойыңыз.

Өмірлік цикл: synchronous_or_streamed

Тарифтер

Тариф анықтамасы сұрау мүмкіндіктерін қоспайды. Қолдау көрсетілетін параметрлер таңдалған әдісте берілген.

Жылдам режим
Стандартты тариф Жылдам режим таңдалғанда
Икемді режим
Стандартты тариф flex режимі таңдалғанда
Ой қорытудың ең жоғары деңгейі
Стандартты тариф Ой қорыту деңгейі ең жоғары болып, default түзетуі қолданылғанда

Ailoot мөлшерлемелері

Баптаулар бойынша бағалар

Әр төлемді көрсетілген шарттармен салыстырыңыз. Балама баптаулардың әр жиыны үшін бір мөлшерлемені қолданыңыз.

БаптауМөлшерлемелер кестесіКонтекст токендерінің саны мынадан көпКонтекст токендерінің саны мынадан аспайды, шегі кіредіТөлем
БаптауТокендердің базалық тарифтеріМөлшерлемелер кестесіНегізгі мөлшерлемеКонтекст токендерінің саны мынадан көп—Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауСұрау ұзындығының 1-деңгейіМөлшерлемелер кестесі—Контекст токендерінің саны мынадан көп0Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. Резервтеу мен төлемді есептеу тәртібі →

Сұрау мысалдары

Ailoot Ultra · Anthropic хабарламалары

Ең ықшам толық JSON сұрау денесіcurl · өзіңіздің UTF-8 құжатыңызды қолданыңызPython · нәтижені толық сақтаңыз
{
  "model": "qwen3.7-max",
  "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': 'qwen3.7-max', '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': 'qwen3.7-max', '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))

Нәтижелерді алу және сақтау

Ailoot Ultra · Anthropic хабарламалары

JSON немесе SSE

Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Барлық мазмұн блоктарын, пайымдау қолтаңбаларын және құрал қолданудың нақты ID мәндерін сақтаңыз. SSE блоктарының барлық өзгерістерін жинаңыз; алғашқы мәтіндік блок толық шығыс емес.

Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері
ӨрісТүрі
ӨрісidТүріstring
ӨрісmodelТүріstring
Өрісcontent[]Түріtext|thinking|tool_use|other content block
Өрісstop_reasonТүріstring|null
ӨрісusageТүріobject
Қателер және келесі қадамдар
ЖауапШартКелесі қадам
Жауап400 · invalid_request_errorШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қатеКелесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз.

Балама атаулар

Модельдердің балама атаулары

Ailoot qwen3.7-max, auto
Ailoot Ultra qwen3.7-max, qwen/qwen3.7-max

Әдіс жолдарының балама атаулары

/chat/completions

Шақыруға арналған байланысты ID

qwen/qwen3.7-max, auto, qwen3.7-max, qwen3.7-max

Ailoot · OpenAI Responses POST /v1/responses auto

auto

Alibaba /auto
Модель ID
  • qwen3.7-max
  • auto

Бастау

Qwen3.7 Max — Alibaba компаниясының бағдарламалау, кеңсе жұмысы және ұзақ агенттік тапсырмаларға арналған флагман мәтіндік моделі. Ол миллион токендік контекст, функция шақыруын, JSON Schema бойынша құрылымдалған жауаптарды және қайталанатын контекст үшін құжатталған промпт кэштеуін ұсынады.

Қабылданатын кіріс деректері
Мәтін
Нәтижелер
Мәтін

Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

Ailoot · OpenAI Responses POST /v1/responses
Кіріс
text
Шығыс
text
Контекст
991 808 tokens
Ең үлкен шығыс
131 072 tokens
Шығыс пішімі
json немесе SSE
ӨрісТүріТалапМәндер мен шектеулерӘдепкі
ӨрісmodelТүріstringТалапМіндеттіМәндер мен шектеулер
auto
Әдепкі—
ӨрісinputТүріstring|input_item[]ТалапМіндеттіМәндер мен шектеулерӘдепкі—
ӨрісinstructionsТүріstringТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісinput[].typeТүріstringТалапМіндетті емесМәндер мен шектеулер
message, reasoning, function_call, function_call_output
Әдепкі—
Өрісinput[].contentТүріstring|content_part[]ТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісinput[].call_idТүріstringТалапМіндетті емесМәндер мен шектеулер
Мына жағдайда қолданылады: function_call_output; нақты қайтарылған call_id мәнін сақтаңыз
Әдепкі—
Өрісinput[].outputТүріstring|content_part[]ТалапМіндетті емесМәндер мен шектеулер
Мына жағдайда қолданылады: function_call_output
Әдепкі—
Өрісmax_output_tokensТүріintegerТалапМіндетті емесМәндер мен шектеулер
Ең азы: 1
Модельге байланысты
Әдепкі—
ӨрісstreamТүріbooleanТалапМіндетті емесМәндер мен шектеулерӘдепкіfalse
ӨрісtemperatureТүріnumberТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtop_pТүріnumberТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісtoolsТүріtool[]ТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtool_choiceТүріstring|objectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісparallel_tool_callsТүріbooleanТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісreasoning.effortТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісreasoning.summaryТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtext.formatТүріobjectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtext.verbosityТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісincludeТүріstring[]ТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісstoreТүріbooleanТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісprevious_response_idТүріstringТалапМіндетті емесМәндер мен шектеулер
ID талабы: Қолдау көрсетілетін жалғастырудан алынған нақты жауап ID-і ғана
Модельге байланысты
Әдепкі—
Өрісservice_tierТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісprompt_cache_keyТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісprompt_cache_optionsТүріobjectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Кіріс материалдарының үйлесімдері

Мәтін · UTF8 мәтіні

кіріс мәтіні немесе input_text бөлігі

Әдіс параметрлері мен өмірлік циклі
ПараметрПараметр талаптары
Параметрmaterial_typesПараметр талаптарыtext
ПараметрrequiredПараметр талаптарыmodel, input
Параметрoptional_controlsПараметр талаптарыnull
Параметрcontent_typeПараметр талаптарыapplication/json
Параметрtext_file_materialПараметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет

Өмірлік цикл: exact retained published method

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

Тарифтер

Ailoot әдістерінің мөлшерлемелері

Ailoot OpenAI ResponsesPOST /v1/responses
Кіріс
0,0025 $ / 1K
Шығыс
0,0075 $ / 1K
Кэшті оқу
0,0005 $ / 1K
Кэшке жазу
≈0,00313 $ / 1K
Кэшке жазу, 5 мин
≈0,00313 $ / 1K tokens
code_interpreter_call
0,00 $ әр шақыру үшін
web_extractor_call
0,00 $ әр шақыру үшін
web_search_call
0,01 $ әр шақыру үшін
Шақырулардың ең көп саны: code_interpreter_call
8
Шақырулардың ең көп саны: web_extractor_call
8
Шақырулардың ең көп саны: web_search_call
8

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. Резервтеу мен төлемді есептеу тәртібі →

Анықтамалық тариф мәліметтері

Модельдің анықтамалық кестелері әдіс таңдауын, баға есебін не төлемді өзгертпейді. Қолданыстағы төлемдер таңдалған Ailoot әдісінің мөлшерлемелерімен есептеледі.

Модельдің анықтамалық кестелері

Баптаулар бойынша бағалар

Әр төлемді көрсетілген шарттармен салыстырыңыз. Балама баптаулардың әр жиыны үшін бір мөлшерлемені қолданыңыз.

БаптауМөлшерлемелер кестесіКонтекст токендерінің саны мынадан көпКонтекст токендерінің саны мынадан аспайды, шегі кіредіТөлем
БаптауOpenAI Chat · Токендердің базалық тарифтеріМөлшерлемелер кестесіНегізгі мөлшерлемеКонтекст токендерінің саны мынадан көп—Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауOpenAI Chat · Сұрау ұзындығы бойынша 1-деңгейМөлшерлемелер кестесі—Контекст токендерінің саны мынадан көп0Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауAnthropic Messages · Токендердің базалық тарифтеріМөлшерлемелер кестесіНегізгі мөлшерлемеКонтекст токендерінің саны мынадан көп—Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауAnthropic Messages · Сұрау ұзындығы бойынша 1-деңгейМөлшерлемелер кестесі—Контекст токендерінің саны мынадан көп0Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен

Сұрау мысалдары

Ailoot · OpenAI Responses

Мәтін мысалыPython SDKNode.js SDKPython ағыны
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": "auto", "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="auto", 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: "auto", 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="auto", 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")

Нәтижелерді алу және сақтау

Ailoot · OpenAI Responses

json немесе SSE

Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Әр шығыс элементін және мазмұн бөлігін, функцияның нақты call_id мәнін, шифрланған пайымдауды және пайдалану деректерін сақтаңыз. Ағында оқиғалар мен элементтердің барлық сәйкестендіру деректерін сақтаңыз.

Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері
ӨрісТүрі
ӨрісidТүріstring
ӨрісstatusТүріstring
Өрісoutput[]Түріmessage|reasoning|function_call|other item
Өрісoutput[].content[]Түріcontent part
ӨрісusageТүріobject
Қателер және келесі қадамдар
ЖауапШартКелесі қадам
Жауап400 · invalid_request_errorШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қатеКелесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз.

Балама атаулар

Модельдердің балама атаулары

Ailoot qwen3.7-max, auto
Ailoot Ultra qwen3.7-max, qwen/qwen3.7-max

Әдіс жолдарының балама атаулары

/chat/completions

Шақыруға арналған байланысты ID

qwen/qwen3.7-max, auto, qwen3.7-max, qwen3.7-max

Ailoot · OpenAI чаты POST /v1/chat/completions auto

auto

Alibaba /auto
Модель ID
  • qwen3.7-max
  • auto

Бастау

Qwen3.7 Max — Alibaba компаниясының бағдарламалау, кеңсе жұмысы және ұзақ агенттік тапсырмаларға арналған флагман мәтіндік моделі. Ол миллион токендік контекст, функция шақыруын, JSON Schema бойынша құрылымдалған жауаптарды және қайталанатын контекст үшін құжатталған промпт кэштеуін ұсынады.

Қабылданатын кіріс деректері
Мәтін
Нәтижелер
Мәтін

Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

Ailoot · OpenAI чаты POST /v1/chat/completions
Кіріс
text
Шығыс
text
Контекст
991 808 tokens
Ең үлкен шығыс
131 072 tokens
Шығыс пішімі
json немесе SSE
ӨрісТүріТалапМәндер мен шектеулерӘдепкі
ӨрісmodelТүріstringТалапМіндеттіМәндер мен шектеулер
auto
Әдепкі—
ӨрісmessagesТүріmessage[]ТалапМіндеттіМәндер мен шектеулер
Элементтердің ең аз саны: 1
Әдепкі—
Өрісmessages[].roleТүріstringТалапМіндеттіМәндер мен шектеулер
Мысалдар: system, user, assistant, tool, function
Шарттар: Бұл рөлдер бастапқы кодтағы үйлесімділік түрлерінде айқын көрсетілген; рөлдердің нақты жиыны әр модельге байланысты.
Модельге байланысты
Әдепкі—
Өрісmessages[].contentТүріstring|content_part[]|nullТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісmessages[].tool_callsТүріtool_call[]ТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісmessages[].tool_call_idТүріstringТалапМіндетті емесМәндер мен шектеулер
Мына жағдайда қолданылады: role=tool; нақты қайтарылған ID мәнін пайдаланыңыз
Әдепкі—
Өрісmessages[].nameТүріstringТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісmessages[].reasoning_contentТүріstringТалапМіндетті емесМәндер мен шектеулер
Мына жағдайда қолданылады: Модель пайымдауды пайдаланса, нақты қайтарылған пайымдауды қайта жіберіңіз
Әдепкі—
Өрісmessages[].reasoning_detailsТүріobject|arrayТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісmax_tokensТүріintegerТалапМіндетті емесМәндер мен шектеулер
Ең азы: 1
Модельге байланысты
Әдепкі—
Өрісmax_completion_tokensТүріintegerТалапМіндетті емесМәндер мен шектеулер
Ең азы: 1
Модельге байланысты
Әдепкі—
ӨрісstreamТүріbooleanТалапМіндетті емесМәндер мен шектеулерӘдепкіfalse
Өрісstream_options.include_usageТүріbooleanТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісtemperatureТүріnumberТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtop_pТүріnumberТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісstopТүріstring|string[]ТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісtoolsТүріfunction_tool[]ТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtools[].typeТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtools[].function.nameТүріstringТалапМіндеттіМәндер мен шектеулер
Мына жағдайда қолданылады: функция құралы берілген
Әдепкі—
Өрісtools[].function.descriptionТүріstringТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісtools[].function.parametersТүріJSON_schemaТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісtool_choiceТүріstring|objectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісparallel_tool_callsТүріbooleanТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісresponse_formatТүріobjectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісreasoning_effortТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісreasoningТүріobjectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісservice_tierТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісinstructionsТүріstringТалапМіндетті емесМәндер мен шектеулер
Үйлесімділік өрісі
Әдепкі—
ӨрісfunctionsТүріfunction[]ТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісfunction_callТүріstring|objectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісprompt_cache_optionsТүріobjectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Кіріс материалдарының үйлесімдері

Мәтін · UTF8 мәтіні

messages[].content

Әдіс параметрлері мен өмірлік циклі
ПараметрПараметр талаптары
Параметрmaterial_typesПараметр талаптарыtext
ПараметрrequiredПараметр талаптарыmodel, messages
Параметрoptional_controlsПараметр талаптарыnull
Параметрcontent_typeПараметр талаптарыapplication/json
Параметрtext_file_materialПараметр талаптарынақты UTF-8 мазмұны мәтін ретінде енгізіледі; файл ID мәндері мен URLs үшін бөлек нақты қолдау қажет

Өмірлік цикл: exact retained published method

Әдіс құрылымдары мен ID мәндері дәл берілген; жеткізушінің мүмкіндігі сұрауды қабылдаудан бөлек қаралады.

Тарифтер

Ailoot әдістерінің мөлшерлемелері

Ailoot OpenAI чатыPOST /v1/chat/completions
Кіріс
0,0025 $ / 1K
Шығыс
0,0075 $ / 1K
Кэшті оқу
0,0005 $ / 1K
Кэшке жазу
≈0,00313 $ / 1K
Кэшке жазу, 5 мин
≈0,00313 $ / 1K tokens

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. Резервтеу мен төлемді есептеу тәртібі →

Анықтамалық тариф мәліметтері

Модельдің анықтамалық кестелері әдіс таңдауын, баға есебін не төлемді өзгертпейді. Қолданыстағы төлемдер таңдалған Ailoot әдісінің мөлшерлемелерімен есептеледі.

Модельдің анықтамалық кестелері

Баптаулар бойынша бағалар

Әр төлемді көрсетілген шарттармен салыстырыңыз. Балама баптаулардың әр жиыны үшін бір мөлшерлемені қолданыңыз.

БаптауМөлшерлемелер кестесіКонтекст токендерінің саны мынадан көпКонтекст токендерінің саны мынадан аспайды, шегі кіредіТөлем
БаптауOpenAI Chat · Токендердің базалық тарифтеріМөлшерлемелер кестесіНегізгі мөлшерлемеКонтекст токендерінің саны мынадан көп—Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауOpenAI Chat · Сұрау ұзындығы бойынша 1-деңгейМөлшерлемелер кестесі—Контекст токендерінің саны мынадан көп0Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауAnthropic Messages · Токендердің базалық тарифтеріМөлшерлемелер кестесіНегізгі мөлшерлемеКонтекст токендерінің саны мынадан көп—Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауAnthropic Messages · Сұрау ұзындығы бойынша 1-деңгейМөлшерлемелер кестесі—Контекст токендерінің саны мынадан көп0Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен

Сұрау мысалдары

Ailoot · OpenAI чаты

Мәтін мысалыPython SDKNode.js SDKPython ағыны
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": "auto", "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="auto",
    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: "auto",
  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='auto',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")

Нәтижелерді алу және сақтау

Ailoot · OpenAI чаты

json немесе SSE

Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Әр жауап нұсқасын оның мазмұнымен, құрал шақыруларымен және пайымдауымен бірге сақтаңыз. SSE өзгерістерін жауап нұсқасы мен құрал индексі бойынша жинап, соңғы аяқталу себебі мен пайдалану деректерін сақтаңыз.

Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері
ӨрісТүрі
Өрісchoices[].indexТүріinteger
Өрісchoices[].message.contentТүріstring|null
Өрісchoices[].message.tool_callsТүріtool_call[]
Өрісchoices[].message.reasoning_contentТүріstring
Өрісchoices[].message.reasoning_detailsТүріobject|array
Өрісchoices[].finish_reasonТүріstring|null
ӨрісusageТүріobject
Қателер және келесі қадамдар
ЖауапШартКелесі қадам
Жауап400 · invalid_request_errorШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қатеКелесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз.

Балама атаулар

Модельдердің балама атаулары

Ailoot qwen3.7-max, auto
Ailoot Ultra qwen3.7-max, qwen/qwen3.7-max

Әдіс жолдарының балама атаулары

/chat/completions

Шақыруға арналған байланысты ID

qwen/qwen3.7-max, auto, qwen3.7-max, qwen3.7-max

Ailoot Ultra · OpenAI чаты POST /v1/chat/completions qwen/qwen3.7-max

qwen/qwen3.7-max

Alibaba /qwen/qwen3.7-max
Модель ID
  • qwen3.7-max
  • qwen/qwen3.7-max

Бастау

Qwen3.7 Max — Alibaba компаниясының бағдарламалау, кеңсе жұмысы және ұзақ агенттік тапсырмаларға арналған флагман мәтіндік моделі. Ол миллион токендік контекст, функция шақыруын, JSON Schema бойынша құрылымдалған жауаптарды және қайталанатын контекст үшін құжатталған промпт кэштеуін ұсынады.

Қабылданатын кіріс деректері
Мәтін
Нәтижелер
Мәтін

Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

Ailoot Ultra · OpenAI чаты POST /v1/chat/completions
Кіріс
text
Шығыс
text
Шығыс пішімі
json немесе SSE
ӨрісТүріТалапМәндер мен шектеулерӘдепкі
ӨрісmodelТүріstringТалапМіндеттіМәндер мен шектеулер
qwen/qwen3.7-max
Әдепкі—
ӨрісmessagesТүріmessage[]ТалапМіндеттіМәндер мен шектеулер
Элементтердің ең аз саны: 1
Әдепкі—
Өрісmessages[].roleТүріstringТалапМіндеттіМәндер мен шектеулер
Мысалдар: system, user, assistant, tool, function
Шарттар: Бұл рөлдер бастапқы кодтағы үйлесімділік түрлерінде айқын көрсетілген; рөлдердің нақты жиыны әр модельге байланысты.
Модельге байланысты
Әдепкі—
Өрісmessages[].contentТүріstring|content_part[]|nullТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісmessages[].tool_callsТүріtool_call[]ТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісmessages[].tool_call_idТүріstringТалапМіндетті емесМәндер мен шектеулер
Мына жағдайда қолданылады: role=tool; нақты қайтарылған ID мәнін пайдаланыңыз
Әдепкі—
Өрісmessages[].nameТүріstringТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісmessages[].reasoning_contentТүріstringТалапМіндетті емесМәндер мен шектеулер
Мына жағдайда қолданылады: Модель пайымдауды пайдаланса, нақты қайтарылған пайымдауды қайта жіберіңіз
Әдепкі—
Өрісmessages[].reasoning_detailsТүріobject|arrayТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісmax_tokensТүріintegerТалапМіндетті емесМәндер мен шектеулер
Ең азы: 1
Модельге байланысты
Әдепкі—
Өрісmax_completion_tokensТүріintegerТалапМіндетті емесМәндер мен шектеулер
Ең азы: 1
Модельге байланысты
Әдепкі—
ӨрісstreamТүріbooleanТалапМіндетті емесМәндер мен шектеулерӘдепкіfalse
Өрісstream_options.include_usageТүріbooleanТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісtemperatureТүріnumberТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtop_pТүріnumberТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісstopТүріstring|string[]ТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісtoolsТүріfunction_tool[]ТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісtools[].typeТүріstringТалапМіндетті емесМәндер мен шектеулер
function
Модельге байланысты
Әдепкі—
Өрісtools[].function.nameТүріstringТалапМіндеттіМәндер мен шектеулер
Мына жағдайда қолданылады: функция құралы берілген
Әдепкі—
Өрісtools[].function.descriptionТүріstringТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісtools[].function.parametersТүріJSON_schemaТалапМіндетті емесМәндер мен шектеулерӘдепкі—
Өрісtool_choiceТүріstring|objectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісparallel_tool_callsТүріbooleanТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісresponse_formatТүріobjectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісreasoning_effortТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісreasoningТүріobjectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісservice_tierТүріstringТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісinstructionsТүріstringТалапМіндетті емесМәндер мен шектеулер
Үйлесімділік өрісі
Әдепкі—
ӨрісfunctionsТүріfunction[]ТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісfunction_callТүріstring|objectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
Өрісprompt_cache_optionsТүріobjectТалапМіндетті емесМәндер мен шектеулер
Модельге байланысты
Әдепкі—
ӨрісmodalitiesТүріstring[]ТалапМіндетті емесМәндер мен шектеулер
text
Әдепкі—
ӨрісproviderТүріobjectТалапМіндетті емесМәндер мен шектеулер
Шарттар: Осы Ultra мәтіндік бағытында provider.options қабылданбайды
Әдепкі—
Өрісcache_control.ttlТүріstringТалапМіндетті емесМәндер мен шектеулер
Шарттар: Сұрау кэшінің нақты орындарында 1h қабылданбайды
Әдепкі—
Кіріс материалдарының үйлесімдері

Мәтін · UTF8 мәтіні

messages[].content

Әдіс параметрлері мен өмірлік циклі
ПараметрПараметр талаптары
Параметрcontent_typeПараметр талаптарыapplication/json
ПараметрrequiredПараметр талаптарыmodel, messages
Параметрmaterial_typesПараметр талаптарыtext
ПараметрmessagesПараметр талаптарыrole/content құрылымы бар хабарламалар жиымы
Параметрfile_materialПараметр талаптарынақты UTF-8 құжаты сөзбе-сөз мәтін ретінде енгізіледі; файл ID-і болжанбайды
Параметрoptional_controlsПараметр талаптарыstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Параметрcontrol_scopeПараметр талаптарымодельге байланысты; пайдаланушының функция құралдары қызмет жағында орындалатын құралдардан өзгеше
Параметрoutput_modalitiesПараметр талаптарыtext
Параметрhosted_operationsПараметр талаптарыfalse
Параметрmultimodal_input_bindingПараметр талаптарыnull

Өмірлік цикл: synchronous_or_streamed

Модельдің дәл ID мәнін messages деректерімен бірге жіберіңіз.

Контекст ұзындығы шығыстың жоғарғы шегі емес.

Мәтіндік файл сөзбе-сөз мәтінді бере алады; кіріс суреттері, аудио және файл нысандары дәл байланыстыруды қажет етеді.

Тарифтер

Тариф анықтамасы сұрау мүмкіндіктерін қоспайды. Қолдау көрсетілетін параметрлер таңдалған әдісте берілген.

Жылдам режим
Стандартты тариф Жылдам режим таңдалғанда
Икемді режим
Стандартты тариф flex режимі таңдалғанда
Ой қорытудың ең жоғары деңгейі
Стандартты тариф Ой қорыту деңгейі ең жоғары болып, default түзетуі қолданылғанда

Ailoot мөлшерлемелері

Баптаулар бойынша бағалар

Әр төлемді көрсетілген шарттармен салыстырыңыз. Балама баптаулардың әр жиыны үшін бір мөлшерлемені қолданыңыз.

БаптауМөлшерлемелер кестесіКонтекст токендерінің саны мынадан көпКонтекст токендерінің саны мынадан аспайды, шегі кіредіТөлем
БаптауТокендердің базалық тарифтеріМөлшерлемелер кестесіНегізгі мөлшерлемеКонтекст токендерінің саны мынадан көп—Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауСұрау ұзындығының 1-деңгейіМөлшерлемелер кестесі—Контекст токендерінің саны мынадан көп0Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. Резервтеу мен төлемді есептеу тәртібі →

Сұрау мысалдары

Ailoot Ultra · OpenAI чаты

curlPython SDKPython ағыны
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "qwen/qwen3.7-max", "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='qwen/qwen3.7-max',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='qwen/qwen3.7-max',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")

Нәтижелерді алу және сақтау

Ailoot Ultra · OpenAI чаты

json немесе SSE

Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Әр жауап нұсқасын оның мазмұнымен, құрал шақыруларымен және пайымдауымен бірге сақтаңыз. SSE өзгерістерін жауап нұсқасы мен құрал индексі бойынша жинап, соңғы аяқталу себебі мен пайдалану деректерін сақтаңыз.

Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері
ӨрісТүрі
Өрісchoices[].indexТүріinteger
Өрісchoices[].message.contentТүріstring|null
Өрісchoices[].message.tool_callsТүріtool_call[]
Өрісchoices[].message.reasoning_contentТүріstring
Өрісchoices[].message.reasoning_detailsТүріobject|array
Өрісchoices[].finish_reasonТүріstring|null
ӨрісusageТүріobject
Қателер және келесі қадамдар
ЖауапШартКелесі қадам
Жауап400 · invalid_request_errorШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қатеКелесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз.

Балама атаулар

Модельдердің балама атаулары

Ailoot qwen3.7-max, auto
Ailoot Ultra qwen3.7-max, qwen/qwen3.7-max

Әдіс жолдарының балама атаулары

/chat/completions

Шақыруға арналған байланысты ID

qwen/qwen3.7-max, auto, qwen3.7-max, qwen3.7-max

Ailoot Ultra · Anthropic хабарламалары POST /v1/messages qwen/qwen3.7-max

qwen/qwen3.7-max

Alibaba /qwen/qwen3.7-max
Модель ID
  • qwen3.7-max
  • qwen/qwen3.7-max

Бастау

Qwen3.7 Max — Alibaba компаниясының бағдарламалау, кеңсе жұмысы және ұзақ агенттік тапсырмаларға арналған флагман мәтіндік моделі. Ол миллион токендік контекст, функция шақыруын, JSON Schema бойынша құрылымдалған жауаптарды және қайталанатын контекст үшін құжатталған промпт кэштеуін ұсынады.

Қабылданатын кіріс деректері
Мәтін
Нәтижелер
json · sse

Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер

Ailoot Ultra · Anthropic хабарламалары POST /v1/messages
Кіріс
text
Шығыс
json, sse
Шығыс пішімі
JSON немесе SSE
ӨрісТүріТалапМәндер мен шектеулерӘдепкі
ӨрісmodelТүріstringТалапМіндеттіМәндер мен шектеулер
qwen/qwen3.7-max
Әдепкі—
ӨрісmessagesТүріmessage[]ТалапМіндеттіМәндер мен шектеулерӘдепкі—
Өрісmessages[].roleТүріstringТалапМіндеттіМәндер мен шектеулер
user, assistant
Әдепкі—
Өрісmessages[].contentТүріstringТалапМіндеттіМәндер мен шектеулерӘдепкі—
Өрісmax_tokensТүріintegerТалапМіндеттіМәндер мен шектеулерӘдепкі—
ӨрісstreamТүріbooleanТалапМіндетті емесМәндер мен шектеулерӘдепкіfalse
Кіріс материалдарының үйлесімдері

Мәтін · UTF-8 мәтіні

messages[].content жолы

Әдіс параметрлері мен өмірлік циклі
ПараметрПараметр талаптары
Параметрcontent_typeПараметр талаптарыapplication/json
ПараметрrequiredПараметр талаптарыmodel, messages, max_tokens
Параметрoptional_controlsПараметр талаптарыstream
Параметрmaterial_typesПараметр талаптарыtext
Параметрtext_file_materialПараметр талаптарыНақты UTF-8 құжатын оқып, оның мәтінін көрсетілген кіріс жолына немесе хабарлама мазмұнының жолына қойыңыз.

Өмірлік цикл: synchronous_or_streamed

Тарифтер

Тариф анықтамасы сұрау мүмкіндіктерін қоспайды. Қолдау көрсетілетін параметрлер таңдалған әдісте берілген.

Жылдам режим
Стандартты тариф Жылдам режим таңдалғанда
Икемді режим
Стандартты тариф flex режимі таңдалғанда
Ой қорытудың ең жоғары деңгейі
Стандартты тариф Ой қорыту деңгейі ең жоғары болып, default түзетуі қолданылғанда

Ailoot мөлшерлемелері

Баптаулар бойынша бағалар

Әр төлемді көрсетілген шарттармен салыстырыңыз. Балама баптаулардың әр жиыны үшін бір мөлшерлемені қолданыңыз.

БаптауМөлшерлемелер кестесіКонтекст токендерінің саны мынадан көпКонтекст токендерінің саны мынадан аспайды, шегі кіредіТөлем
БаптауТокендердің базалық тарифтеріМөлшерлемелер кестесіНегізгі мөлшерлемеКонтекст токендерінің саны мынадан көп—Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен
БаптауСұрау ұзындығының 1-деңгейіМөлшерлемелер кестесі—Контекст токендерінің саны мынадан көп0Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқТөлем
Кіріс · Кіріс токендері $0.00295 / 1K токен
Шығыс · Шығыс токендері $0.00885 / 1K токен
Кіріс · Кэшті оқу $0.00059 / 1K токен
Кіріс · Кэшке жазу $0.0036875 / 1K токен
Кіріс · Кэшке жазу, 1 сағ — / 1K токен

Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. Резервтеу мен төлемді есептеу тәртібі →

Сұрау мысалдары

Ailoot Ultra · Anthropic хабарламалары

Ең ықшам толық JSON сұрау денесіcurl · өзіңіздің UTF-8 құжатыңызды қолданыңызPython · нәтижені толық сақтаңыз
{
  "model": "qwen/qwen3.7-max",
  "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': 'qwen/qwen3.7-max', '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': 'qwen/qwen3.7-max', '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))

Нәтижелерді алу және сақтау

Ailoot Ultra · Anthropic хабарламалары

JSON немесе SSE

Барлық дайын нәтижені сақтау

Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.

Барлық мазмұн блоктарын, пайымдау қолтаңбаларын және құрал қолданудың нақты ID мәндерін сақтаңыз. SSE блоктарының барлық өзгерістерін жинаңыз; алғашқы мәтіндік блок толық шығыс емес.

Бастапқы жауапты тексеру қажет болса

Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.

Жауап өрістері
ӨрісТүрі
ӨрісidТүріstring
ӨрісmodelТүріstring
Өрісcontent[]Түріtext|thinking|tool_use|other content block
Өрісstop_reasonТүріstring|null
ӨрісusageТүріobject
Қателер және келесі қадамдар
ЖауапШартКелесі қадам
Жауап400 · invalid_request_errorШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қатеКелесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз.

Балама атаулар

Модельдердің балама атаулары

Ailoot qwen3.7-max, auto
Ailoot Ultra qwen3.7-max, qwen/qwen3.7-max

Әдіс жолдарының балама атаулары

/chat/completions

Шақыруға арналған байланысты ID

qwen/qwen3.7-max, auto, qwen3.7-max, qwen3.7-max

FAQ · Qwen: Qwen3.7 Max
Қандай кіріс деректері мен нәтижелер қолжетімді?

POST /v1/messages · qwen3.7-max: text → text

POST /v1/responses · qwen3.7-max: text → text

POST /v1/chat/completions · qwen3.7-max: text → text

POST /v1/chat/completions · qwen3.7-max: text → text

POST /v1/messages · qwen3.7-max: text → json, sse

POST /v1/responses · auto: text → text

POST /v1/chat/completions · auto: text → text

POST /v1/chat/completions · qwen/qwen3.7-max: text → text

POST /v1/messages · qwen/qwen3.7-max: text → json, sse

Сұрау қандай өрістерді пайдаланады?

POST /v1/messages · qwen3.7-max: model, messages, system, max_tokens, stream, metadata

POST /v1/responses · qwen3.7-max: model, input, instructions, stream

POST /v1/chat/completions · qwen3.7-max: model, messages, stream

POST /v1/chat/completions · qwen3.7-max: model, messages, stream

POST /v1/messages · qwen3.7-max: model, messages, max_tokens, stream

POST /v1/responses · auto: model, input, instructions, stream

POST /v1/chat/completions · auto: model, messages, stream

POST /v1/chat/completions · qwen/qwen3.7-max: model, messages, stream, modalities, provider

POST /v1/messages · qwen/qwen3.7-max: model, messages, max_tokens, stream

Қандай шектеулер қолданылады?

POST /v1/messages · qwen3.7-max: ctx: 991808; max_out: 131072; messages.min_items: 1; max_tokens.minimum: 1

POST /v1/responses · qwen3.7-max: ctx: 991808; max_out: 131072

POST /v1/chat/completions · qwen3.7-max: ctx: 991808; max_out: 131072; messages.min_items: 1

POST /v1/chat/completions · qwen3.7-max: messages.min_items: 1

POST /v1/responses · auto: ctx: 991808; max_out: 131072

POST /v1/chat/completions · auto: ctx: 991808; max_out: 131072; messages.min_items: 1

POST /v1/chat/completions · qwen/qwen3.7-max: messages.min_items: 1

Толығырақ

Ailoot-ты Claude Code, OpenCode, Hermes не қолданбаңызға қосыңыз.

Компания және оның жобалар портфелі

Компания және оның жобалар портфелі: миллиондаған клиент; ай сайынғы сату көлемі миллиардтармен есептеледі.

Токенді жеңілдікпен сатып алыңыз.

Тұрақты жұмысқа жазылым жеңілдігі. Токен сатып алуға промокодтар — 50% дейін.

Жазылым
Тұрақты сұрауыңызға жеңілдікті тариф таңдаңыз.
50% дейінгі промокод
Сатып алғанда код енгізіңіз. Баға қазіргі науқанмен қайта есептеледі.
Тарихтағы шығындар
Әр сұрауға модель, токен және сома сақталады.

Жазылым таңдау · Модель бағасын көру

API-ді сататын өніміңізге қосыңыз.

SaaS, қолданба мен бот Ailoot офертасы және лицензиялық шартына сай. Қайта сатуға реселлер лицензиясын сұраңыз.

Коммерциялық қолданба
Қызметіңіздің ақылы функциясына мәтін, сурет, бейне және дыбыс жасауды қосыңыз.
Реселлер лицензиясы
Жоба сипаттамасы мен кіру схемасын жіберіңіз. Пайдалану мен қайта сатуға жазбаша шарт сұраңыз.
Сайттағы құжаттар
Оферта, лицензиялық шарт және дерек саясаты қоспай тұрып қолжетімді.

Реселлер лицензиясын сұрау · Оферта мен лицензиялық шарт