modellar

claude-opus-4-6

Markdown · JSON

claude-opus-4-6

Claude Opus 4.6 katta kod bazalari, xatolarni tuzatish, tadqiqotlar va uzun hujjatlarni tahlil qilish uchun mo‘ljallangan. Adaptiv mulohaza yuritish va 1 mln tokengacha kontekstni qo‘llab-quvvatlaydi.

Model haqida

Bu tavsif model imkoniyatlarini yoritadi. Ailoot da tanlangan usul uchun mavjud kirish, chiqish va parametrlar quyida keltirilgan.

Katta topshiriq va uning qismlari orasidagi bog‘lanishlar

Claude Opus 4.6 bitta kontekstda ko‘p materialni saqlash va ularni o‘qigandan keyin mulohaza yuritish foydali bo‘lgan ishga yo‘naltirilgan. Anthropic yirik kod bazalarida dasturlash, kodni tekshirish, xatolarni tuzatish, moliyaviy tahlil va tadqiqotlarni ta’kidlaydi. Model muhim tafsilotlarni topishi, materiallarning turli qismlaridagi ma’lumotlarni bog‘lashi va ulardan topshiriqni izchil yechishda foydalanishi mumkin.

Dasturlashda bu reja ustida ishlash, notanish tizimni o‘rganish va o‘zgarishlardagi xatolarni qidirishni anglatadi. Professional tahlilda esa hujjatlarni qayta ishlash va jadvallar, hisobotlar yoki taqdimotlar mazmunini tayyorlashni bildiradi. Bunday ssenariylar uchun umumiy mavzu nomi bilan cheklanmay, modelga topshiriqning o‘zini va xulosa chiqarish kerak bo‘lgan materiallarni berish muhim.

Adaptiv mulohaza yuritish

Model adaptiv rejimni qo‘llab-quvvatlaydi: topshiriq mazmuniga qarab, qo‘shimcha tahlil qachon foydali ekanini aniqlaydi. effort parametri puxtalik darajasini belgilaydi; Opus 4.6 uchun low, medium, high va max mavjud, standart qiymat — high. Anthropic ma’lumotiga ko‘ra, chuqur ishlash oddiy vazifalarda javob vaqtini oshirishi mumkin, shuning uchun tanlangan darajani ularning murakkabligiga moslashtirish lozim.

Qo‘lda belgilanadigan budjetli eski extended thinking hali qo‘llab-quvvatlanadi, lekin eskirayotgan deb belgilangan. Bu versiya rejimlari orasida muhim farq bor: vosita chaqiruvlari orasida mulohaza yuritish adaptiv rejimda mavjud, qo‘lda boshqariladigan rejimda esa Opus 4.6 buni bajarmaydi. Vositalar ulanganda adaptiv tahlil bitta amal natijasidan keyingisini tanlashda foydalanishga yordam beradi.

Davomli ish uchun kontekst

Anthropic’ning joriy spetsifikatsiyasi 1 mln token kontekst va oddiy rejimda 128 ming tokengacha javobni belgilaydi. Kirishda matn va tasvirlar qabul qilinadi, javob matnli bo‘lib qoladi. Ichki bilimlarning ishonchli chegarasi — 2025-yil may.

Ishlab chiqaruvchida oddiy vizual kirish formatlari: JPEG/PNG/GIF/WebP, animatsiyaning birinchi kadri. Nativ tahlilda: uzun tomon — 1568 piksel, 1568 vizual token; katta tasvirlar tahlildan oldin kichraytiriladi. Fayllar va parametrlarning qo‘llab-quvvatlanishi ilova metodiga bog‘liq.

Davomli suhbatlar va agent topshiriqlari uchun ishlab chiqaruvchi eski kontekstni siqishni tavsiflaydi: belgilangan chegaraga yaqinlashganda ishning oldingi qismi qisqa mazmun bilan almashtiriladi. Bu imkoniyat tajribaviy deb belgilangan va ilova qo‘llab-quvvatlashini talab qiladi; kontekst hajmining o‘zi cheksiz xotirani o‘z ichiga olmaydi.

Vositalar va natijani tekshirish

Opus 4.6 qidiruv, kod va boshqa mavjud vositalar bilan ko‘p bosqichli ishlashga mo‘ljallangan. Ilova muhiti materiallarni o‘qish, buyruqlarni bajarish yoki fayllarni chiqarishni taqdim etishi kerak. Ishlab chiqarishdagi amallar, interfeysni boshqarish va tayyor taqdimot yaratish shu vositalarga bog‘liq; matn modeli ularni avtomatik ravishda olmaydi.

Anthropic kiberxavfsizlikdagi ehtimoliy xavfli vazifalar uchun xavfsizlik tekshiruvlari va himoya choralarini alohida tavsiflaydi. Oddiy dasturlashda model zaifliklarni topish va tuzatishga yordam berishi mumkin, lekin so‘rov xususiyati javob berish imkoniyatiga ta’sir qiladi. Katta materiallar to‘plami bo‘yicha xulosalar va taklif etilgan o‘zgarishlarni ma’lumotlarning o‘zi hamda bajarish natijasi asosida tekshirish kerak.

Amaliy vazifa

Amaliy vazifa

Ingliz tilidagi texnik misol

Trace a cache invalidation defect

Review this change using the supplied contract. Contract: changing an account's role must affect the next permission check. Current flow: update_role writes the database; can_edit reads a role cache with a 15-minute TTL. Propose the smallest correction, explain the failure window, and give regression tests for a demotion and an unrelated account. Do not assume any framework.

Kutiladigan natija

A code-review note containing cause, a targeted invalidation strategy and two regression-test specifications.

Natijani tekshirish

A demoted account cannot retain edit permission until the cache expires, while another account's entry remains valid.
Ailoot · Anthropic Messages POST /v1/messages claude-opus-4-6

claude-opus-4-6

Anthropic /claude-opus-4-6

Boshlash

Claude Opus 4.6 katta kod bazalari, xatolarni tuzatish, tadqiqotlar va uzun hujjatlarni tahlil qilish uchun mo‘ljallangan. Adaptiv mulohaza yuritish va 1 mln tokengacha kontekstni qo‘llab-quvvatlaydi.

Qabul qilinadigan kirish ma’lumotlari
Matn · Rasmlar
Natijalar
Matn

Ailoot da mavjud · kirish ma’lumotlari va usullar

Ailoot · Anthropic Messages POST /v1/messages
Kirish
text, image
Chiqish
text
Kontekst
1 000 000 tokens
Eng katta chiqish
131 072 tokens
Chiqish formati
json yoki SSE
MaydonTurTalabQiymatlar va cheklovlarStandart
MaydonmodelTurstringTalabMajburiyQiymatlar va cheklovlar
claude-opus-4-6
Standart—
MaydonmessagesTurmessage[]TalabMajburiyQiymatlar va cheklovlar
Elementlarning eng kam soni: 1
Standart—
Maydonmessages[].roleTurstringTalabMajburiyQiymatlar va cheklovlar
user, assistant
Standart—
Maydonmessages[].contentTurstring|content_block[]TalabMajburiyQiymatlar va cheklovlarStandart—
MaydonsystemTurstring|content_block[]TalabIxtiyoriyQiymatlar va cheklovlarStandart—
Maydonmax_tokensTurintegerTalabMajburiyQiymatlar va cheklovlar
Eng kam: 1
Cheklov qo‘llanadigan obyekt: Tanlangan model yoki kartaning aniq yuqori chegarasi
Standart—
MaydonstreamTurbooleanTalabIxtiyoriyQiymatlar va cheklovlarStandartfalse
MaydontemperatureTurnumberTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydontop_pTurnumberTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonstop_sequencesTurstring[]TalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
MaydontoolsTurtool[]TalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydontools[].nameTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Quyidagi holatda qo‘llanadi: Vosita taqdim etilgan
Standart—
Maydontools[].descriptionTurstringTalabIxtiyoriyQiymatlar va cheklovlarStandart—
Maydontools[].input_schemaTurJSON_schemaTalabIxtiyoriyQiymatlar va cheklovlarStandart—
Maydontool_choiceTurobjectTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonthinking.typeTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonthinking.budget_tokensTurintegerTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonoutput_config.effortTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
MaydonmetadataTurobjectTalabIxtiyoriyQiymatlar va cheklovlarStandart—
Maydoncache_controlTurobjectTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Kirish materiallari birikmalari

Matn · UTF8 matni

messages[].content yoki type=text bloki

Matn + rasm

{type:image,source:{type:base64,media_type,data}} yoki type=url turidagi manba

Usul parametrlari va hayot sikli
ParametrParametr talablari
Parametrmaterial_typesParametr talablaritext, image
ParametrrequiredParametr talablarimodel, messages, max_tokens
Parametroptional_controlsParametr talablarinull
Parametrcontent_typeParametr talablariapplication/json
Parametrtext_file_materialParametr talablariHaqiqiy UTF-8 kontenti matn sifatida kiritiladi; fayl IDlari/URLs uchun alohida aniq qo‘llab-quvvatlash kerak

Hayot sikli: exact retained published method

Metod tuzilishlari va IDlari aniq; yetkazib beruvchining imkoniyati so‘rovni qabul qilishga ruxsatdan alohida.

Tariflar

Ailoot usullari tariflari

Ailoot Anthropic MessagesPOST /v1/messages
Kirish
0,005 US$ / 1K
Chiqish
0,025 US$ / 1K
Keshdan o‘qish
0,0005 US$ / 1K
Keshga yozish
0,00625 US$ / 1K
Keshga yozish, 5 daqiqa
0,00625 US$ / 1K tokens
Keshga yozish, 1 soat
0,01 US$ / 1K tokens
web_search_call
0,01 US$ har chaqiruv uchun
Maks. chaqiruvlar web_search_call
8

Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. Summani band qilish va to‘lovni hisoblash tartibi →

Ma’lumot uchun tarif tafsilotlari

Modelning ma’lumot jadvallari usul tanlash, narx hisobi yoki to‘lovlarni o‘zgartirmaydi. Amaldagi to‘lovlar tanlangan Ailoot usuli tariflari bo‘yicha hisoblanadi.

claude-opus-4-6

Sozlamalar bo‘yicha narxlar

SozlamaTo‘lovni hisoblash shartlariTo‘lov
Sozlamaclaude-opus-4-6 · Standart sozlamaTo‘lovni hisoblash shartlariStandart konfiguratsiyaTo‘lov
Kirish · Kirish 0,02 US$ / 1K token
Chiqish · Chiqish 0,075 US$ / 1K token
Kirish · Keshga yozish 0,025 US$ / 1K token
Kirish · Keshdan o‘qish 0,002 US$ / 1K token
claude-opus-4-6

Sozlamalar bo‘yicha narxlar

SozlamaTo‘lovni hisoblash shartlariTo‘lov
Sozlamaclaude-opus-4-6 · Standart sozlamaTo‘lovni hisoblash shartlariStandart konfiguratsiyaTo‘lov
Kirish · Kirish 0,01 US$ / 1K token
Chiqish · Chiqish 0,05 US$ / 1K token

So‘rov namunalari

Ailoot · Anthropic Messages

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

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = anthropic.Anthropic(base_url="https://api.ailoot.ai", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
msg = client.messages.create(
    model="claude-opus-4-6",
    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: "claude-opus-4-6",
  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='claude-opus-4-6',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")

Natijalarni olish va saqlash

Ailoot · Anthropic Messages

json yoki SSE

Barcha tayyor natijalarni saqlash

Qaytarilgan har bir to‘liq javob, fayl va kontent qismini saqlang.

Barcha kontent bloklari, fikrlash imzolari va haqiqiy vosita ishlatish IDlarini saqlang. SSE bloklarining barcha o‘zgarish qismlarini yig‘ing; birinchi matn bloki to‘liq chiqish emas.

Asl javobni tekshirish kerak bo‘lsa

So‘rov va javob IDlari hamda sarlavhalarini saqlang. Matn vazifasini olish uchun umumiy URL taqdim etilmagan.

Javob maydonlari
MaydonTur
MaydonidTurstring
MaydonmodelTurstring
Maydoncontent[]Turtext|thinking|tool_use|other content block
Maydonstop_reasonTurstring|null
MaydonusageTurobject
Xatolar va keyingi qadamlar
JavobShartKeyingi qadam
Javob400 · invalid_request_errorShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘riKeyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating.

Taxalluslar

Model taxalluslari

Ailoot claude-opus-4-6

Usul yo‘llari taxalluslari

Yuqorida ko‘rsatilgan usul yo‘llaridan foydalaning.

Chaqirish uchun tegishli ID lar

claude-opus-4-6

Ailoot · OpenAI Responses POST /v1/responses claude-opus-4-6

claude-opus-4-6

Anthropic /claude-opus-4-6

Boshlash

Claude Opus 4.6 katta kod bazalari, xatolarni tuzatish, tadqiqotlar va uzun hujjatlarni tahlil qilish uchun mo‘ljallangan. Adaptiv mulohaza yuritish va 1 mln tokengacha kontekstni qo‘llab-quvvatlaydi.

Qabul qilinadigan kirish ma’lumotlari
Matn · Rasmlar
Natijalar
Matn

Ailoot da mavjud · kirish ma’lumotlari va usullar

Ailoot · OpenAI Responses POST /v1/responses
Kirish
text, image
Chiqish
text
Kontekst
1 000 000 tokens
Eng katta chiqish
131 072 tokens
Chiqish formati
json yoki SSE
MaydonTurTalabQiymatlar va cheklovlarStandart
MaydonmodelTurstringTalabMajburiyQiymatlar va cheklovlar
claude-opus-4-6
Standart—
MaydoninputTurstring|input_item[]TalabMajburiyQiymatlar va cheklovlarStandart—
MaydoninstructionsTurstringTalabIxtiyoriyQiymatlar va cheklovlarStandart—
Maydoninput[].typeTurstringTalabIxtiyoriyQiymatlar va cheklovlar
message, reasoning, function_call, function_call_output
Standart—
Maydoninput[].contentTurstring|content_part[]TalabIxtiyoriyQiymatlar va cheklovlarStandart—
Maydoninput[].call_idTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Quyidagi holatda qo‘llanadi: function_call_output; haqiqatan qaytarilgan call_id qiymatini saqlang
Standart—
Maydoninput[].outputTurstring|content_part[]TalabIxtiyoriyQiymatlar va cheklovlar
Quyidagi holatda qo‘llanadi: function_call_output
Standart—
Maydonmax_output_tokensTurintegerTalabIxtiyoriyQiymatlar va cheklovlar
Eng kam: 1
Modelga bogʻliq
Standart—
MaydonstreamTurbooleanTalabIxtiyoriyQiymatlar va cheklovlarStandartfalse
MaydontemperatureTurnumberTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydontop_pTurnumberTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
MaydontoolsTurtool[]TalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydontool_choiceTurstring|objectTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonparallel_tool_callsTurbooleanTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonreasoning.effortTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonreasoning.summaryTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydontext.formatTurobjectTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydontext.verbosityTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
MaydonincludeTurstring[]TalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
MaydonstoreTurbooleanTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonprevious_response_idTurstringTalabIxtiyoriyQiymatlar va cheklovlar
ID talabi: Faqat qo‘llab-quvvatlanadigan davom ettirishdan olingan haqiqiy javob IDsi
Modelga bogʻliq
Standart—
Maydonservice_tierTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonprompt_cache_keyTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonprompt_cache_optionsTurobjectTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Kirish materiallari birikmalari

Matn · UTF8 matni

Kirish matni yoki input_text qismi

Matn + rasm

{type:input_image,image_url}

Usul parametrlari va hayot sikli
ParametrParametr talablari
Parametrmaterial_typesParametr talablaritext, image
ParametrrequiredParametr talablarimodel, input
Parametroptional_controlsParametr talablarinull
Parametrcontent_typeParametr talablariapplication/json
Parametrtext_file_materialParametr talablariHaqiqiy UTF-8 kontenti matn sifatida kiritiladi; fayl IDlari/URLs uchun alohida aniq qo‘llab-quvvatlash kerak

Hayot sikli: exact retained published method

Metod tuzilishlari va IDlari aniq; yetkazib beruvchining imkoniyati so‘rovni qabul qilishga ruxsatdan alohida.

Tariflar

Ailoot usullari tariflari

Ailoot OpenAI ResponsesPOST /v1/responses
Kirish
0,005 US$ / 1K
Chiqish
0,025 US$ / 1K
Keshdan o‘qish
0,0005 US$ / 1K
Keshga yozish
0,00625 US$ / 1K
Keshga yozish, 5 daqiqa
0,00625 US$ / 1K tokens
Keshga yozish, 1 soat
0,01 US$ / 1K tokens
web_search_call
0,01 US$ har chaqiruv uchun
Maks. chaqiruvlar web_search_call
8

Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. Summani band qilish va to‘lovni hisoblash tartibi →

Ma’lumot uchun tarif tafsilotlari

Modelning ma’lumot jadvallari usul tanlash, narx hisobi yoki to‘lovlarni o‘zgartirmaydi. Amaldagi to‘lovlar tanlangan Ailoot usuli tariflari bo‘yicha hisoblanadi.

claude-opus-4-6

Sozlamalar bo‘yicha narxlar

SozlamaTo‘lovni hisoblash shartlariTo‘lov
Sozlamaclaude-opus-4-6 · Standart sozlamaTo‘lovni hisoblash shartlariStandart konfiguratsiyaTo‘lov
Kirish · Kirish 0,02 US$ / 1K token
Chiqish · Chiqish 0,075 US$ / 1K token
Kirish · Keshga yozish 0,025 US$ / 1K token
Kirish · Keshdan o‘qish 0,002 US$ / 1K token
claude-opus-4-6

Sozlamalar bo‘yicha narxlar

SozlamaTo‘lovni hisoblash shartlariTo‘lov
Sozlamaclaude-opus-4-6 · Standart sozlamaTo‘lovni hisoblash shartlariStandart konfiguratsiyaTo‘lov
Kirish · Kirish 0,01 US$ / 1K token
Chiqish · Chiqish 0,05 US$ / 1K token

So‘rov namunalari

Ailoot · OpenAI Responses

Matn namunasiKirish, rasmPython SDKNode.js SDKPython oqimi
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": "claude-opus-4-6", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]="Summarize this material and quote supporting source passages.\n\n"+text
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json
from pathlib import Path

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

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

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

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

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.responses.create(model="claude-opus-4-6", 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: "claude-opus-4-6", 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="claude-opus-4-6", 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")

Natijalarni olish va saqlash

Ailoot · OpenAI Responses

json yoki SSE

Barcha tayyor natijalarni saqlash

Qaytarilgan har bir to‘liq javob, fayl va kontent qismini saqlang.

Har bir chiqish elementi va kontent qismini, funksiyaning haqiqiy call_id qiymatini, shifrlangan fikrlash ma’lumotlari va sarfni saqlang. Oqimli uzatishda hodisa va elementning to‘liq identifikatsiyasini saqlang.

Asl javobni tekshirish kerak bo‘lsa

So‘rov va javob IDlari hamda sarlavhalarini saqlang. Matn vazifasini olish uchun umumiy URL taqdim etilmagan.

Javob maydonlari
MaydonTur
MaydonidTurstring
MaydonstatusTurstring
Maydonoutput[]Turmessage|reasoning|function_call|other item
Maydonoutput[].content[]Turcontent part
MaydonusageTurobject
Xatolar va keyingi qadamlar
JavobShartKeyingi qadam
Javob400 · invalid_request_errorShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘riKeyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating.

Taxalluslar

Model taxalluslari

Ailoot claude-opus-4-6

Usul yo‘llari taxalluslari

Yuqorida ko‘rsatilgan usul yo‘llaridan foydalaning.

Chaqirish uchun tegishli ID lar

claude-opus-4-6

Ailoot · OpenAI Chat POST /v1/chat/completions claude-opus-4-6

claude-opus-4-6

Anthropic /claude-opus-4-6

Boshlash

Claude Opus 4.6 katta kod bazalari, xatolarni tuzatish, tadqiqotlar va uzun hujjatlarni tahlil qilish uchun mo‘ljallangan. Adaptiv mulohaza yuritish va 1 mln tokengacha kontekstni qo‘llab-quvvatlaydi.

Qabul qilinadigan kirish ma’lumotlari
Matn · Rasmlar
Natijalar
Matn

Ailoot da mavjud · kirish ma’lumotlari va usullar

Ailoot · OpenAI Chat POST /v1/chat/completions
Kirish
text, image
Chiqish
text
Kontekst
1 000 000 tokens
Eng katta chiqish
131 072 tokens
Chiqish formati
json yoki SSE
MaydonTurTalabQiymatlar va cheklovlarStandart
MaydonmodelTurstringTalabMajburiyQiymatlar va cheklovlar
claude-opus-4-6
Standart—
MaydonmessagesTurmessage[]TalabMajburiyQiymatlar va cheklovlar
Elementlarning eng kam soni: 1
Standart—
Maydonmessages[].roleTurstringTalabMajburiyQiymatlar va cheklovlar
Namunalar: system, user, assistant, tool, function
Shartlar: Bu rollar manba kodining moslik turlarida ochiq ifodalangan; aniq rollar to‘plami har bir modelga xos bo‘lib qoladi.
Modelga bogʻliq
Standart—
Maydonmessages[].contentTurstring|content_part[]|nullTalabIxtiyoriyQiymatlar va cheklovlarStandart—
Maydonmessages[].tool_callsTurtool_call[]TalabIxtiyoriyQiymatlar va cheklovlarStandart—
Maydonmessages[].tool_call_idTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Quyidagi holatda qo‘llanadi: role=tool; haqiqatan qaytarilgan IDdan foydalaning
Standart—
Maydonmessages[].nameTurstringTalabIxtiyoriyQiymatlar va cheklovlarStandart—
Maydonmessages[].reasoning_contentTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Quyidagi holatda qo‘llanadi: Ushbu model foydalanganda, haqiqatan qaytarilgan fikrlash ma’lumotlarini keyingi so‘rovda qayta yuboring
Standart—
Maydonmessages[].reasoning_detailsTurobject|arrayTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonmax_tokensTurintegerTalabIxtiyoriyQiymatlar va cheklovlar
Eng kam: 1
Modelga bogʻliq
Standart—
Maydonmax_completion_tokensTurintegerTalabIxtiyoriyQiymatlar va cheklovlar
Eng kam: 1
Modelga bogʻliq
Standart—
MaydonstreamTurbooleanTalabIxtiyoriyQiymatlar va cheklovlarStandartfalse
Maydonstream_options.include_usageTurbooleanTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
MaydontemperatureTurnumberTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydontop_pTurnumberTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
MaydonstopTurstring|string[]TalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
MaydontoolsTurfunction_tool[]TalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydontools[].typeTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydontools[].function.nameTurstringTalabMajburiyQiymatlar va cheklovlar
Quyidagi holatda qo‘llanadi: Funksiya vositasi taqdim etilgan
Standart—
Maydontools[].function.descriptionTurstringTalabIxtiyoriyQiymatlar va cheklovlarStandart—
Maydontools[].function.parametersTurJSON_schemaTalabIxtiyoriyQiymatlar va cheklovlarStandart—
Maydontool_choiceTurstring|objectTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonparallel_tool_callsTurbooleanTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonresponse_formatTurobjectTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonreasoning_effortTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
MaydonreasoningTurobjectTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonservice_tierTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
MaydoninstructionsTurstringTalabIxtiyoriyQiymatlar va cheklovlar
Moslik maydoni
Standart—
MaydonfunctionsTurfunction[]TalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonfunction_callTurstring|objectTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Maydonprompt_cache_optionsTurobjectTalabIxtiyoriyQiymatlar va cheklovlar
Modelga bogʻliq
Standart—
Kirish materiallari birikmalari

Matn · UTF8 matni

messages[].content

Matn + rasm

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

Usul parametrlari va hayot sikli
ParametrParametr talablari
Parametrmaterial_typesParametr talablaritext, image
ParametrrequiredParametr talablarimodel, messages
Parametroptional_controlsParametr talablarinull
Parametrcontent_typeParametr talablariapplication/json
Parametrtext_file_materialParametr talablariHaqiqiy UTF-8 kontenti matn sifatida kiritiladi; fayl IDlari/URLs uchun alohida aniq qo‘llab-quvvatlash kerak

Hayot sikli: exact retained published method

Metod tuzilishlari va IDlari aniq; yetkazib beruvchining imkoniyati so‘rovni qabul qilishga ruxsatdan alohida.

Tariflar

Ailoot usullari tariflari

Ailoot OpenAI ChatPOST /v1/chat/completions
Kirish
0,005 US$ / 1K
Chiqish
0,025 US$ / 1K
Keshdan o‘qish
0,0005 US$ / 1K
Keshga yozish
0,00625 US$ / 1K
Keshga yozish, 5 daqiqa
0,00625 US$ / 1K tokens
Keshga yozish, 1 soat
0,01 US$ / 1K tokens
web_search_call
0,01 US$ har chaqiruv uchun
Maks. chaqiruvlar web_search_call
8

Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. Summani band qilish va to‘lovni hisoblash tartibi →

Ma’lumot uchun tarif tafsilotlari

Modelning ma’lumot jadvallari usul tanlash, narx hisobi yoki to‘lovlarni o‘zgartirmaydi. Amaldagi to‘lovlar tanlangan Ailoot usuli tariflari bo‘yicha hisoblanadi.

claude-opus-4-6

Sozlamalar bo‘yicha narxlar

SozlamaTo‘lovni hisoblash shartlariTo‘lov
Sozlamaclaude-opus-4-6 · Standart sozlamaTo‘lovni hisoblash shartlariStandart konfiguratsiyaTo‘lov
Kirish · Kirish 0,02 US$ / 1K token
Chiqish · Chiqish 0,075 US$ / 1K token
Kirish · Keshga yozish 0,025 US$ / 1K token
Kirish · Keshdan o‘qish 0,002 US$ / 1K token
claude-opus-4-6

Sozlamalar bo‘yicha narxlar

SozlamaTo‘lovni hisoblash shartlariTo‘lov
Sozlamaclaude-opus-4-6 · Standart sozlamaTo‘lovni hisoblash shartlariStandart konfiguratsiyaTo‘lov
Kirish · Kirish 0,01 US$ / 1K token
Chiqish · Chiqish 0,05 US$ / 1K token

So‘rov namunalari

Ailoot · OpenAI Chat

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

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.chat.completions.create(
    model="claude-opus-4-6",
    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: "claude-opus-4-6",
  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='claude-opus-4-6',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")

Natijalarni olish va saqlash

Ailoot · OpenAI Chat

json yoki SSE

Barcha tayyor natijalarni saqlash

Qaytarilgan har bir to‘liq javob, fayl va kontent qismini saqlang.

Har bir javob variantini va uning kontenti, vosita chaqiruvlari hamda fikrlash ma’lumotlarini saqlang. SSEda o‘zgarish qismlarini variant va vosita indeksi bo‘yicha yig‘ing, yakuniy tugash sababi va sarf ma’lumotlarini saqlang.

Asl javobni tekshirish kerak bo‘lsa

So‘rov va javob IDlari hamda sarlavhalarini saqlang. Matn vazifasini olish uchun umumiy URL taqdim etilmagan.

Javob maydonlari
MaydonTur
Maydonchoices[].indexTurinteger
Maydonchoices[].message.contentTurstring|null
Maydonchoices[].message.tool_callsTurtool_call[]
Maydonchoices[].message.reasoning_contentTurstring
Maydonchoices[].message.reasoning_detailsTurobject|array
Maydonchoices[].finish_reasonTurstring|null
MaydonusageTurobject
Xatolar va keyingi qadamlar
JavobShartKeyingi qadam
Javob400 · invalid_request_errorShartMajburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘riKeyingi qadamYangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating.

Taxalluslar

Model taxalluslari

Ailoot claude-opus-4-6

Usul yo‘llari taxalluslari

Yuqorida ko‘rsatilgan usul yo‘llaridan foydalaning.

Chaqirish uchun tegishli ID lar

claude-opus-4-6

FAQ · claude-opus-4-6
Qanday kirish ma’lumotlari va natijalar mavjud?

POST /v1/messages · claude-opus-4-6: text, image → text

POST /v1/responses · claude-opus-4-6: text, image → text

POST /v1/chat/completions · claude-opus-4-6: text, image → text

So‘rov qaysi maydonlardan foydalanadi?

POST /v1/messages · claude-opus-4-6: model, messages, system, max_tokens, stream, metadata

POST /v1/responses · claude-opus-4-6: model, input, instructions, stream

POST /v1/chat/completions · claude-opus-4-6: model, messages, stream

Qanday cheklovlar amal qiladi?

POST /v1/messages · claude-opus-4-6: ctx: 1000000; max_out: 131072; messages.min_items: 1; max_tokens.minimum: 1

POST /v1/responses · claude-opus-4-6: ctx: 1000000; max_out: 131072

POST /v1/chat/completions · claude-opus-4-6: ctx: 1000000; max_out: 131072; messages.min_items: 1

Batafsil

Ailoot’ni Claude Code, OpenCode, Hermes yoki ilovangizga ulang.

Kompaniya va uning loyihalar portfeli

Kompaniya va uning loyihalar portfeli: millionlab mijozlar; oylik sotuvlar hajmi milliardlarda.

Tokenlarni chegirma bilan xarid qiling.

Muntazam ish uchun obuna chegirmasi. Token xaridiga promokodlar — 50% gacha.

Obuna
Muntazam so‘rovlaringiz uchun chegirmali tarif tanlang.
50% gacha promokod
Xaridda kod kiriting. Narx amaldagi aksiya bilan qayta hisoblanadi.
Tarixdagi xarajatlar
Har so‘rov uchun model, token va summa saqlanadi.

Obuna tanlash · Model narxlarini ko‘rish

API’ni sotadigan mahsulotingizga ulang.

SaaS, ilova va botlar Ailoot ofertasi hamda litsenziya shartnomasiga muvofiq. Qayta sotishga reseller litsenziyasi so‘rang.

Tijorat ilovasi
Xizmatingizning pullik funksiyalariga matn, rasm, video va ovoz yaratishni qo‘shing.
Reseller litsenziyasi
Loyiha tavsifi va kirish sxemasini yuboring. Foydalanish va qayta sotishga yozma shartlarni so‘rang.
Saytdagi hujjatlar
Oferta, litsenziya shartnomasi va ma’lumotlar siyosati ulashdan oldin ochiq.

Reseller litsenziyasini so‘rash · Oferta va litsenziya shartnomasi