{
  "aboutHtml": "<p>Sora 2 — жазбаша көрініс сипаттамасынан немесе тірек суреттен динамикалық ролик жасайтын OpenAI бейне және аудио генерациялау моделі. Ол көрнекі реттілікті синхрондалған сөйлеумен, әсерлермен және фондық дыбыспен бірге жасайды. Стандартты Sora 2 нұсқасы көрнекі ізденіске, тұжырымдама әзірлеуге, прототиптерге және бастапқы монтажға арналған. Sora 2 Pro — көрнекі дәлдікті арттыруға және жоғары ажыратымдылықта аяқтауға бағытталған бөлек шығарылым.</p><h4>Көруге де, естуге де болатын кадрды сипаттаңыз</h4><p>Өндірушінің промпт нұсқаулығы пайдалы брифті кадрлау, негізгі нысан, әрекет, орта және жарық төңірегінде құрады. Көрініске біртұтас көрнекі стиль беріп, қозғалысты анық кезеңдермен сипаттаңыз. Мысалы, төл өнім тұжырымдамасында шағын механикалық нысан жұмыс үстелінде бір рет айналады, камера баяу жақындайды, терезеден жұмсақ жарық түсіп, мотордың бәсең дыбысы естіледі. Көрермен нені байқауы керегін және әрекет қалай аяқталатынын айтыңыз.</p><p>Әр кадрдағы камера қозғалысы мен нысан әрекеті түсінікті болсын. Күрделі реттілікті әрқайсысының кадрлауы, әрекеті және жарығы бар жеке кадр блоктарына бөлуге болады. Бірнеше ролик бір реттілік құрауы тиіс болса, нысанның бөлшектері мен түстер палитрасын сақтаңыз. Нұсқаулық қысқа кадрлар әдетте нұсқауды сенімдірек орындайтынын және бір промптпен қайталап генерациялағанда әртүрлі түсірілім нұсқалары шығатынын атап көрсетеді.</p><p>Модельдің таныстырылымында шынайы, кинематографиялық және аниме стильдерін қоса алғанда, физикалық мінез-құлық пен кадрлар арасындағы сабақтастықтың жақсарғаны сипатталады. Бұл — бағыттап, тексеруге арналған мүмкіндіктер. Алғашқы кадрдың нанымды көрінуін тұтас реттіліктің үйлесімділігіне кепіл деп қабылдамай, қозғалысты, нысандардың жанасуын, пропорцияларды және сабақтастықты тексеріңіз. Әрекет түсініксіз болса, оны жеңілдетіп, көрінетін басы мен соңын белгілеңіз.</p><h4>Диалог пен дыбысты бөлек бағыттаңыз</h4><p>Айтылатын репликаларды көрнекі сипаттамадан бөлек беріп, сөйлеушілерді бірізді белгілеңіз. Диалог әрекетке және жоспарланған ролик ұзақтығына сыятындай қысқа болсын. Екі кейіпкерлі анимацияда қысқа кадрға ұзақ монолог сыйғызуды сұраудың орнына, қысқа сұрақ пен жауапты кезектестіріңіз. Нұсқаулық күрделі әрі ұзақ диалогтың ырғақ пен синхрондауды бұзуы мүмкін екенін ескертеді.</p><p>Көрініске тән дыбыс ортасын сипаттаңыз: шағын қозғалыстың дыбысы, бөлме шуы немесе қоршаған орта әсерінің ырғағы. Қай дыбыс әрекетпен тұспа-тұс келуі керегін түсіндіріңіз. Алынған сөйлеу мен әсерлерді бейнемен бірге тыңдап, сөйлеуші сәйкестігін, сөздерді және уақытын тексеріңіз. Синхрондалған аудио бөлек мәтіндік жауап емес, жасалған роликтің бір бөлігі болады.</p><h4>Өлшем, ұзақтық және суретке сүйенген бастау</h4><p>Стандартты модельдің құжатта көрсетілген шығыс өлшемдері — тік форматта 720×1280 және көлденең форматта 1280×720. Pro нұсқасындағы жоғары ажыратымдылық өлшемдерін стандартты Sora 2-ге телуге болмайды. Өлшем мен ұзақтық сұраудың нақты параметрлері арқылы беріледі; промптта басқа өлшем жазу немесе ұзағырақ фильм сұрау бұл параметрлерді өзгертпейді. Жасау анықтамасында 4, 8 және 12 секундтық ролик параметрлері көрсетілген, сондықтан кадр дайындағанда қысқа, нақты әрекет кезеңін таңдаңыз. Өндірушінің кеңейтілген жұмыс үдерісінде 16 және 20 секундтық ролик параметрлері де құжатталған.</p><p>Тірек сурет алғашқы кадрды бекітеді, ал мәтін одан кейін не болатынын сипаттайды. Өндіруші JPEG, PNG және WebP тірек суреттерін қолдайды және сурет өлшемі мақсатты бейне өлшемімен сәйкес болуын талап етеді. Сол бастапқы суретте нысанды, ортаны және композицияны дайындап, нақты қозғалыс сұраңыз. Бұл — бастапқы кадрға арналған тірек; ол ролик бойы әр бөлшектің дәл сақталуына кепіл болмайды.</p><h4>Қайта қолданылатын адам емес кейіпкерлер</h4><p>Өндірушінің кеңейтілген жұмыс үдерісі жануардың, маскоттың немесе заттың қысқа тірек бейнесінен қайта қолданылатын кейіпкер активін жасай алады. Дайындау нұсқаулығында шамамен екі-төрт секундтық, 720p–1080p ажыратымдылықтағы, 16:9 не 9:16 пішіміндегі MP4 ролик ұсынылады. Бастапқы және шығыс бейненің арақатынасын сәйкестендіру созылып көрінуді болдырмауға көмектеседі. Генерацияда екіге дейін кейіпкерге сілтеме жасауға болады.</p><p>Кейіпкер идентификаторын сақтап, промптта оның атын атаңыз; идентификаторды ғана беру нұсқаулықтағы толық дайындықты алмастырмайды. Кейіпкер активтерін суретке сүйенген генерациямен бірге қолдануға болады, бірақ бейнені ұзарту оларды қабылдамайды. Өндіруші әдепкіде адамға ұқсас кейіпкерлерді жүктеуді бұғаттайды және құжатталған API үдерісінде адам беті бар тірек суреттерді қабылдамайды. Sora қолданбасындағы жеке кейіпкер мүмкіндіктері — бөлек өнім үдерісі.</p><h4>Аяқталған роликті жалғастырыңыз немесе өңдеңіз</h4><p>Ұзарту аяқталған бастапқы бейне мен жалғастыру промптын қабылдап, бүкіл бастапқы роликті қозғалыс, камера бағыты және көрініс сабақтастығы үшін контекст ретінде пайдаланады. Нұсқаулықта әр ұзартуда 20 секундқа дейін қосу сипатталған. Құжатталған ұзарту кірісі — бастапқы бейне мен мәтін; бұл режимге қосымша кейіпкер не сурет тіректері қосылмайды. Ауысусыз қатысы жоқ көрініс енгізудің орнына, бар әрекеттің қалай жалғасатынын сипаттаңыз.</p><p>Бейне өңдеу бар роликтегі анық өзгеріске бағытталады. Нысаналы түзету кадрдың қалған бөлігін сақтай отырып, заттың түсін немесе көрініс палитрасын өзгерте алады. Өндіруші нұсқаулығы бір жолы бір нақты өзгеріс жасауды ұсынады және генерацияланған бейнені өңдеуді кез келген өзге түсірілімді жүктеуден ажыратады: соңғысының жеке жарамдылық шарты бар. Келесі өңдеуді жасамас бұрын аяқталған бастапқы бейнені сақтап, қажетті түзетуді дәл анықтаңыз.</p><h4>Рендер тапсырмалары және дайын бейне</h4><p>Өндірушінің құжатталған бейне үдерісі асинхронды: жіберілген тапсырма аяқталғанға не сәтсіз аяқталғанға дейін кезекте немесе орындалу үстінде болуы мүмкін. Аяқталған тапсырма MP4 бейне береді; нобай мен спрайт парағы активтері алдын ала қарауға және шолуға көмектеседі. Тапсырма идентификаторын промптпен, тірек материалдармен және қайтарылған активтермен байланыстырып сақтаңыз. Алғашқы тапсырма жауабы — ойнатуға дайын соңғы бейне емес.</p><p>Қалыпты жүктеп алу үдерісінде жүктеу URL-інің жарамдылық мерзімі бір сағат деп сипатталған. Кеңейтілген пакеттік үдеріс әр кадр үшін тұрақты элемент идентификаторлары, жүктелген тірек материалдары және сол кадрмен сәйкестендірілген нәтижесі бар тәуелсіз JSON рендер сұрауларын дайындайды; оның дайын активтерін жүктеу үшін 24 сағатқа дейінгі бөлек мерзім беріледі. Дайын роликті дереу сақтап, таңдалған түсірілім нұсқасы деп қабылдамас бұрын оның нақты бейнесі мен дыбысын тексеріңіз.</p><p>Өндірушінің құжатталған API мазмұн шектеулері материалдың 18 жасқа толмаған аудиторияға жарамды болуын талап етеді және авторлық құқықпен қорғалған кейіпкерлерді, музыканы және шынайы адамдарды генерациялауды қабылдамайды. Көрініс пен тірек материалдарын соған сай дайындаңыз. Модельдің тікелей нәтижесі — дыбысы бар бейне; ол генерацияланған жеке суреттер, сөйлесу құралының жауабы немесе ұзақтығы шексіз фильм емес. Көрнекі тұжырымдаманы жалғастырғанда стандартты модельдің нақты сәйкестігін және қабылданған бастапқы роликті сақтаңыз.</p>",
  "aboutText": "Sora 2 — жазбаша көрініс сипаттамасынан немесе тірек суреттен динамикалық ролик жасайтын OpenAI бейне және аудио генерациялау моделі. Ол көрнекі реттілікті синхрондалған сөйлеумен, әсерлермен және фондық дыбыспен бірге жасайды. Стандартты Sora 2 нұсқасы көрнекі ізденіске, тұжырымдама әзірлеуге, прототиптерге және бастапқы монтажға арналған. Sora 2 Pro — көрнекі дәлдікті арттыруға және жоғары ажыратымдылықта аяқтауға бағытталған бөлек шығарылым.\n\n### Көруге де, естуге де болатын кадрды сипаттаңыз\n\nӨндірушінің промпт нұсқаулығы пайдалы брифті кадрлау, негізгі нысан, әрекет, орта және жарық төңірегінде құрады. Көрініске біртұтас көрнекі стиль беріп, қозғалысты анық кезеңдермен сипаттаңыз. Мысалы, төл өнім тұжырымдамасында шағын механикалық нысан жұмыс үстелінде бір рет айналады, камера баяу жақындайды, терезеден жұмсақ жарық түсіп, мотордың бәсең дыбысы естіледі. Көрермен нені байқауы керегін және әрекет қалай аяқталатынын айтыңыз.\n\nӘр кадрдағы камера қозғалысы мен нысан әрекеті түсінікті болсын. Күрделі реттілікті әрқайсысының кадрлауы, әрекеті және жарығы бар жеке кадр блоктарына бөлуге болады. Бірнеше ролик бір реттілік құрауы тиіс болса, нысанның бөлшектері мен түстер палитрасын сақтаңыз. Нұсқаулық қысқа кадрлар әдетте нұсқауды сенімдірек орындайтынын және бір промптпен қайталап генерациялағанда әртүрлі түсірілім нұсқалары шығатынын атап көрсетеді.\n\nМодельдің таныстырылымында шынайы, кинематографиялық және аниме стильдерін қоса алғанда, физикалық мінез-құлық пен кадрлар арасындағы сабақтастықтың жақсарғаны сипатталады. Бұл — бағыттап, тексеруге арналған мүмкіндіктер. Алғашқы кадрдың нанымды көрінуін тұтас реттіліктің үйлесімділігіне кепіл деп қабылдамай, қозғалысты, нысандардың жанасуын, пропорцияларды және сабақтастықты тексеріңіз. Әрекет түсініксіз болса, оны жеңілдетіп, көрінетін басы мен соңын белгілеңіз.\n\n### Диалог пен дыбысты бөлек бағыттаңыз\n\nАйтылатын репликаларды көрнекі сипаттамадан бөлек беріп, сөйлеушілерді бірізді белгілеңіз. Диалог әрекетке және жоспарланған ролик ұзақтығына сыятындай қысқа болсын. Екі кейіпкерлі анимацияда қысқа кадрға ұзақ монолог сыйғызуды сұраудың орнына, қысқа сұрақ пен жауапты кезектестіріңіз. Нұсқаулық күрделі әрі ұзақ диалогтың ырғақ пен синхрондауды бұзуы мүмкін екенін ескертеді.\n\nКөрініске тән дыбыс ортасын сипаттаңыз: шағын қозғалыстың дыбысы, бөлме шуы немесе қоршаған орта әсерінің ырғағы. Қай дыбыс әрекетпен тұспа-тұс келуі керегін түсіндіріңіз. Алынған сөйлеу мен әсерлерді бейнемен бірге тыңдап, сөйлеуші сәйкестігін, сөздерді және уақытын тексеріңіз. Синхрондалған аудио бөлек мәтіндік жауап емес, жасалған роликтің бір бөлігі болады.\n\n### Өлшем, ұзақтық және суретке сүйенген бастау\n\nСтандартты модельдің құжатта көрсетілген шығыс өлшемдері — тік форматта 720×1280 және көлденең форматта 1280×720. Pro нұсқасындағы жоғары ажыратымдылық өлшемдерін стандартты Sora 2-ге телуге болмайды. Өлшем мен ұзақтық сұраудың нақты параметрлері арқылы беріледі; промптта басқа өлшем жазу немесе ұзағырақ фильм сұрау бұл параметрлерді өзгертпейді. Жасау анықтамасында 4, 8 және 12 секундтық ролик параметрлері көрсетілген, сондықтан кадр дайындағанда қысқа, нақты әрекет кезеңін таңдаңыз. Өндірушінің кеңейтілген жұмыс үдерісінде 16 және 20 секундтық ролик параметрлері де құжатталған.\n\nТірек сурет алғашқы кадрды бекітеді, ал мәтін одан кейін не болатынын сипаттайды. Өндіруші JPEG, PNG және WebP тірек суреттерін қолдайды және сурет өлшемі мақсатты бейне өлшемімен сәйкес болуын талап етеді. Сол бастапқы суретте нысанды, ортаны және композицияны дайындап, нақты қозғалыс сұраңыз. Бұл — бастапқы кадрға арналған тірек; ол ролик бойы әр бөлшектің дәл сақталуына кепіл болмайды.\n\n### Қайта қолданылатын адам емес кейіпкерлер\n\nӨндірушінің кеңейтілген жұмыс үдерісі жануардың, маскоттың немесе заттың қысқа тірек бейнесінен қайта қолданылатын кейіпкер активін жасай алады. Дайындау нұсқаулығында шамамен екі-төрт секундтық, 720p–1080p ажыратымдылықтағы, 16:9 не 9:16 пішіміндегі MP4 ролик ұсынылады. Бастапқы және шығыс бейненің арақатынасын сәйкестендіру созылып көрінуді болдырмауға көмектеседі. Генерацияда екіге дейін кейіпкерге сілтеме жасауға болады.\n\nКейіпкер идентификаторын сақтап, промптта оның атын атаңыз; идентификаторды ғана беру нұсқаулықтағы толық дайындықты алмастырмайды. Кейіпкер активтерін суретке сүйенген генерациямен бірге қолдануға болады, бірақ бейнені ұзарту оларды қабылдамайды. Өндіруші әдепкіде адамға ұқсас кейіпкерлерді жүктеуді бұғаттайды және құжатталған API үдерісінде адам беті бар тірек суреттерді қабылдамайды. Sora қолданбасындағы жеке кейіпкер мүмкіндіктері — бөлек өнім үдерісі.\n\n### Аяқталған роликті жалғастырыңыз немесе өңдеңіз\n\nҰзарту аяқталған бастапқы бейне мен жалғастыру промптын қабылдап, бүкіл бастапқы роликті қозғалыс, камера бағыты және көрініс сабақтастығы үшін контекст ретінде пайдаланады. Нұсқаулықта әр ұзартуда 20 секундқа дейін қосу сипатталған. Құжатталған ұзарту кірісі — бастапқы бейне мен мәтін; бұл режимге қосымша кейіпкер не сурет тіректері қосылмайды. Ауысусыз қатысы жоқ көрініс енгізудің орнына, бар әрекеттің қалай жалғасатынын сипаттаңыз.\n\nБейне өңдеу бар роликтегі анық өзгеріске бағытталады. Нысаналы түзету кадрдың қалған бөлігін сақтай отырып, заттың түсін немесе көрініс палитрасын өзгерте алады. Өндіруші нұсқаулығы бір жолы бір нақты өзгеріс жасауды ұсынады және генерацияланған бейнені өңдеуді кез келген өзге түсірілімді жүктеуден ажыратады: соңғысының жеке жарамдылық шарты бар. Келесі өңдеуді жасамас бұрын аяқталған бастапқы бейнені сақтап, қажетті түзетуді дәл анықтаңыз.\n\n### Рендер тапсырмалары және дайын бейне\n\nӨндірушінің құжатталған бейне үдерісі асинхронды: жіберілген тапсырма аяқталғанға не сәтсіз аяқталғанға дейін кезекте немесе орындалу үстінде болуы мүмкін. Аяқталған тапсырма MP4 бейне береді; нобай мен спрайт парағы активтері алдын ала қарауға және шолуға көмектеседі. Тапсырма идентификаторын промптпен, тірек материалдармен және қайтарылған активтермен байланыстырып сақтаңыз. Алғашқы тапсырма жауабы — ойнатуға дайын соңғы бейне емес.\n\nҚалыпты жүктеп алу үдерісінде жүктеу URL-інің жарамдылық мерзімі бір сағат деп сипатталған. Кеңейтілген пакеттік үдеріс әр кадр үшін тұрақты элемент идентификаторлары, жүктелген тірек материалдары және сол кадрмен сәйкестендірілген нәтижесі бар тәуелсіз JSON рендер сұрауларын дайындайды; оның дайын активтерін жүктеу үшін 24 сағатқа дейінгі бөлек мерзім беріледі. Дайын роликті дереу сақтап, таңдалған түсірілім нұсқасы деп қабылдамас бұрын оның нақты бейнесі мен дыбысын тексеріңіз.\n\nӨндірушінің құжатталған API мазмұн шектеулері материалдың 18 жасқа толмаған аудиторияға жарамды болуын талап етеді және авторлық құқықпен қорғалған кейіпкерлерді, музыканы және шынайы адамдарды генерациялауды қабылдамайды. Көрініс пен тірек материалдарын соған сай дайындаңыз. Модельдің тікелей нәтижесі — дыбысы бар бейне; ол генерацияланған жеке суреттер, сөйлесу құралының жауабы немесе ұзақтығы шексіз фильм емес. Көрнекі тұжырымдаманы жалғастырғанда стандартты модельдің нақты сәйкестігін және қабылданған бастапқы роликті сақтаңыз.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "2783e3d1fbc368c3605c2eb065d53eced2681a1ca57b3037eb289226999d0ae1",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "kk",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">sora-2</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Жабу\">×</button></div><div class=\"idline\"><span>Басқа /</span><code>sora-2</code><button type=\"button\" id=\"copy-id\">ID көшіру</button></div><nav class=\"card-jump-nav\" aria-label=\"Модель карточкасының бөлімдері\"><button type=\"button\" data-card-jump=\"overview\">Бастау</button><button type=\"button\" data-card-jump=\"methods\">Кіріс деректері мен әдістер</button><button type=\"button\" data-card-jump=\"pricing\">Тарифтер</button><button type=\"button\" data-card-jump=\"examples\">Мысалдар</button><button type=\"button\" data-card-jump=\"results\">Нәтижелер</button><button type=\"button\" data-card-jump=\"aliases\">Балама атаулар</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API әдістері\"><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-0\" data-card-method=\"Ultra|messages|/v1/messages|sora-2\">Messages</button><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-1\" data-card-method=\"Ultra|chat_completions|/v1/chat/completions|sora-2\">Chat Completions</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-1\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Бастау</h3><p class=\"mdesc-full\">Sora 2 мәтіннен немесе тірек суреттен диалогы, дыбыстық әсерлері және фондық дыбысы синхрондалған бейне жасайды. Стандартты нұсқа көрнекі ізденіс пен тұжырымдамалық роликтерге арналған; қайта қолданылатын адам емес кейіпкерлер, жалғастыру және бейнені нысаналы өңдеу үшін өндірушінің бөлек жұмыс үдерістері бар.</p><dl class=\"card-io\" data-card-io><div><dt>Қабылданатын кіріс деректері</dt><dd>Мәтін</dd></div><div><dt>Нәтижелер</dt><dd>json · sse</dd></div></dl><details class=\"card-about\"><summary>Модель туралы</summary><p class=\"note-s\" data-model-method-boundary>Бұл сипаттама модель мүмкіндіктерін қамтиды. Ailoot жүйесінде таңдалған әдіс үшін қолжетімді кіріс, шығыс және параметрлер төменде берілген.</p><div class=\"mabout\" id=\"m-about\"><p>Sora 2 — жазбаша көрініс сипаттамасынан немесе тірек суреттен динамикалық ролик жасайтын OpenAI бейне және аудио генерациялау моделі. Ол көрнекі реттілікті синхрондалған сөйлеумен, әсерлермен және фондық дыбыспен бірге жасайды. Стандартты Sora 2 нұсқасы көрнекі ізденіске, тұжырымдама әзірлеуге, прототиптерге және бастапқы монтажға арналған. Sora 2 Pro — көрнекі дәлдікті арттыруға және жоғары ажыратымдылықта аяқтауға бағытталған бөлек шығарылым.</p><h4>Көруге де, естуге де болатын кадрды сипаттаңыз</h4><p>Өндірушінің промпт нұсқаулығы пайдалы брифті кадрлау, негізгі нысан, әрекет, орта және жарық төңірегінде құрады. Көрініске біртұтас көрнекі стиль беріп, қозғалысты анық кезеңдермен сипаттаңыз. Мысалы, төл өнім тұжырымдамасында шағын механикалық нысан жұмыс үстелінде бір рет айналады, камера баяу жақындайды, терезеден жұмсақ жарық түсіп, мотордың бәсең дыбысы естіледі. Көрермен нені байқауы керегін және әрекет қалай аяқталатынын айтыңыз.</p><p>Әр кадрдағы камера қозғалысы мен нысан әрекеті түсінікті болсын. Күрделі реттілікті әрқайсысының кадрлауы, әрекеті және жарығы бар жеке кадр блоктарына бөлуге болады. Бірнеше ролик бір реттілік құрауы тиіс болса, нысанның бөлшектері мен түстер палитрасын сақтаңыз. Нұсқаулық қысқа кадрлар әдетте нұсқауды сенімдірек орындайтынын және бір промптпен қайталап генерациялағанда әртүрлі түсірілім нұсқалары шығатынын атап көрсетеді.</p><p>Модельдің таныстырылымында шынайы, кинематографиялық және аниме стильдерін қоса алғанда, физикалық мінез-құлық пен кадрлар арасындағы сабақтастықтың жақсарғаны сипатталады. Бұл — бағыттап, тексеруге арналған мүмкіндіктер. Алғашқы кадрдың нанымды көрінуін тұтас реттіліктің үйлесімділігіне кепіл деп қабылдамай, қозғалысты, нысандардың жанасуын, пропорцияларды және сабақтастықты тексеріңіз. Әрекет түсініксіз болса, оны жеңілдетіп, көрінетін басы мен соңын белгілеңіз.</p><h4>Диалог пен дыбысты бөлек бағыттаңыз</h4><p>Айтылатын репликаларды көрнекі сипаттамадан бөлек беріп, сөйлеушілерді бірізді белгілеңіз. Диалог әрекетке және жоспарланған ролик ұзақтығына сыятындай қысқа болсын. Екі кейіпкерлі анимацияда қысқа кадрға ұзақ монолог сыйғызуды сұраудың орнына, қысқа сұрақ пен жауапты кезектестіріңіз. Нұсқаулық күрделі әрі ұзақ диалогтың ырғақ пен синхрондауды бұзуы мүмкін екенін ескертеді.</p><p>Көрініске тән дыбыс ортасын сипаттаңыз: шағын қозғалыстың дыбысы, бөлме шуы немесе қоршаған орта әсерінің ырғағы. Қай дыбыс әрекетпен тұспа-тұс келуі керегін түсіндіріңіз. Алынған сөйлеу мен әсерлерді бейнемен бірге тыңдап, сөйлеуші сәйкестігін, сөздерді және уақытын тексеріңіз. Синхрондалған аудио бөлек мәтіндік жауап емес, жасалған роликтің бір бөлігі болады.</p><h4>Өлшем, ұзақтық және суретке сүйенген бастау</h4><p>Стандартты модельдің құжатта көрсетілген шығыс өлшемдері — тік форматта 720×1280 және көлденең форматта 1280×720. Pro нұсқасындағы жоғары ажыратымдылық өлшемдерін стандартты Sora 2-ге телуге болмайды. Өлшем мен ұзақтық сұраудың нақты параметрлері арқылы беріледі; промптта басқа өлшем жазу немесе ұзағырақ фильм сұрау бұл параметрлерді өзгертпейді. Жасау анықтамасында 4, 8 және 12 секундтық ролик параметрлері көрсетілген, сондықтан кадр дайындағанда қысқа, нақты әрекет кезеңін таңдаңыз. Өндірушінің кеңейтілген жұмыс үдерісінде 16 және 20 секундтық ролик параметрлері де құжатталған.</p><p>Тірек сурет алғашқы кадрды бекітеді, ал мәтін одан кейін не болатынын сипаттайды. Өндіруші JPEG, PNG және WebP тірек суреттерін қолдайды және сурет өлшемі мақсатты бейне өлшемімен сәйкес болуын талап етеді. Сол бастапқы суретте нысанды, ортаны және композицияны дайындап, нақты қозғалыс сұраңыз. Бұл — бастапқы кадрға арналған тірек; ол ролик бойы әр бөлшектің дәл сақталуына кепіл болмайды.</p><h4>Қайта қолданылатын адам емес кейіпкерлер</h4><p>Өндірушінің кеңейтілген жұмыс үдерісі жануардың, маскоттың немесе заттың қысқа тірек бейнесінен қайта қолданылатын кейіпкер активін жасай алады. Дайындау нұсқаулығында шамамен екі-төрт секундтық, 720p–1080p ажыратымдылықтағы, 16:9 не 9:16 пішіміндегі MP4 ролик ұсынылады. Бастапқы және шығыс бейненің арақатынасын сәйкестендіру созылып көрінуді болдырмауға көмектеседі. Генерацияда екіге дейін кейіпкерге сілтеме жасауға болады.</p><p>Кейіпкер идентификаторын сақтап, промптта оның атын атаңыз; идентификаторды ғана беру нұсқаулықтағы толық дайындықты алмастырмайды. Кейіпкер активтерін суретке сүйенген генерациямен бірге қолдануға болады, бірақ бейнені ұзарту оларды қабылдамайды. Өндіруші әдепкіде адамға ұқсас кейіпкерлерді жүктеуді бұғаттайды және құжатталған API үдерісінде адам беті бар тірек суреттерді қабылдамайды. Sora қолданбасындағы жеке кейіпкер мүмкіндіктері — бөлек өнім үдерісі.</p><h4>Аяқталған роликті жалғастырыңыз немесе өңдеңіз</h4><p>Ұзарту аяқталған бастапқы бейне мен жалғастыру промптын қабылдап, бүкіл бастапқы роликті қозғалыс, камера бағыты және көрініс сабақтастығы үшін контекст ретінде пайдаланады. Нұсқаулықта әр ұзартуда 20 секундқа дейін қосу сипатталған. Құжатталған ұзарту кірісі — бастапқы бейне мен мәтін; бұл режимге қосымша кейіпкер не сурет тіректері қосылмайды. Ауысусыз қатысы жоқ көрініс енгізудің орнына, бар әрекеттің қалай жалғасатынын сипаттаңыз.</p><p>Бейне өңдеу бар роликтегі анық өзгеріске бағытталады. Нысаналы түзету кадрдың қалған бөлігін сақтай отырып, заттың түсін немесе көрініс палитрасын өзгерте алады. Өндіруші нұсқаулығы бір жолы бір нақты өзгеріс жасауды ұсынады және генерацияланған бейнені өңдеуді кез келген өзге түсірілімді жүктеуден ажыратады: соңғысының жеке жарамдылық шарты бар. Келесі өңдеуді жасамас бұрын аяқталған бастапқы бейнені сақтап, қажетті түзетуді дәл анықтаңыз.</p><h4>Рендер тапсырмалары және дайын бейне</h4><p>Өндірушінің құжатталған бейне үдерісі асинхронды: жіберілген тапсырма аяқталғанға не сәтсіз аяқталғанға дейін кезекте немесе орындалу үстінде болуы мүмкін. Аяқталған тапсырма MP4 бейне береді; нобай мен спрайт парағы активтері алдын ала қарауға және шолуға көмектеседі. Тапсырма идентификаторын промптпен, тірек материалдармен және қайтарылған активтермен байланыстырып сақтаңыз. Алғашқы тапсырма жауабы — ойнатуға дайын соңғы бейне емес.</p><p>Қалыпты жүктеп алу үдерісінде жүктеу URL-інің жарамдылық мерзімі бір сағат деп сипатталған. Кеңейтілген пакеттік үдеріс әр кадр үшін тұрақты элемент идентификаторлары, жүктелген тірек материалдары және сол кадрмен сәйкестендірілген нәтижесі бар тәуелсіз JSON рендер сұрауларын дайындайды; оның дайын активтерін жүктеу үшін 24 сағатқа дейінгі бөлек мерзім беріледі. Дайын роликті дереу сақтап, таңдалған түсірілім нұсқасы деп қабылдамас бұрын оның нақты бейнесі мен дыбысын тексеріңіз.</p><p>Өндірушінің құжатталған API мазмұн шектеулері материалдың 18 жасқа толмаған аудиторияға жарамды болуын талап етеді және авторлық құқықпен қорғалған кейіпкерлерді, музыканы және шынайы адамдарды генерациялауды қабылдамайды. Көрініс пен тірек материалдарын соған сай дайындаңыз. Модельдің тікелей нәтижесі — дыбысы бар бейне; ол генерацияланған жеке суреттер, сөйлесу құралының жауабы немесе ұзақтығы шексіз фильм емес. Көрнекі тұжырымдаманы жалғастырғанда стандартты модельдің нақты сәйкестігін және қабылданған бастапқы роликті сақтаңыз.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Chat Completions</b> <code>POST /v1/chat/completions</code></summary><dl class=\"method-capabilities\"><div><dt>Кіріс</dt><dd><code>text</code></dd></div><div><dt>Шығыс</dt><dd><code>json</code>, <code>sse</code></dd></div><div><dt>Шығыс пішімі</dt><dd>JSON немесе text/event-stream</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Өріс</th><th>Түрі</th><th>Талап</th><th>Мәндер мен шектеулер</th><th>Әдепкі</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>string</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span><div>sora-2</div></td><td data-cell-label=\"Әдепкі\" data-default=\"unspecified\"><span class=\"card-cell-label\">Әдепкі</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>message[]</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span></td><td data-cell-label=\"Әдепкі\" data-default=\"unspecified\"><span class=\"card-cell-label\">Әдепкі</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>string</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span></td><td data-cell-label=\"Әдепкі\" data-default=\"unspecified\"><span class=\"card-cell-label\">Әдепкі</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>string</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span></td><td data-cell-label=\"Әдепкі\" data-default=\"unspecified\"><span class=\"card-cell-label\">Әдепкі</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>boolean</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті емес</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span></td><td data-cell-label=\"Әдепкі\" data-default=\"known\"><span class=\"card-cell-label\">Әдепкі</span>false</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Кіріс материалдарының үйлесімдері</summary><p class=\"note-s\"><b>owned_text_messages</b></p></details><details class=\"note-s\" data-method-contract><summary>Әдіс параметрлері мен өмірлік циклі</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Параметр</th><th>Параметр талаптары</th></tr></thead><tbody><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>content_type</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>application/json</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>required</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>model, messages</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>material_types</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>text</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>messages</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>role өрісі және жол түріндегі тікелей content мазмұны бар хабарламалар массиві</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>file_material</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>Нақты UTF-8 материалын жол түріндегі тікелей мазмұн ретінде енгізуге болады; файлға сілтеме бар деп тұжырымдалмайды.</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>optional_controls</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>stream</td></tr></tbody></table></div><p>Өмірлік цикл: <code>synchronous_json_or_sse</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Тарифтер</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Тариф анықтамасы сұрау мүмкіндіктерін қоспайды. Қолдау көрсетілетін параметрлер таңдалған әдісте берілген.</p><dl data-price-conditions><dt>Жылдам режим</dt><dd>Көрсетілмеген <span class=\"note-s\">Жылдам режим таңдалғанда</span></dd><dt>Икемді режим</dt><dd>Көрсетілмеген <span class=\"note-s\">flex режимі таңдалғанда</span></dd><dt>Ой қорытудың ең жоғары деңгейі</dt><dd>Көрсетілмеген <span class=\"note-s\">Ой қорыту деңгейі ең жоғары болып, default түзетуі қолданылғанда</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot мөлшерлемелері</h4><h4>Баптаулар бойынша бағалар</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Баптау</th><th>Мөлшерлемелер кестесі</th><th>Төлем</th></tr></thead><tbody><tr><th data-cell-label=\"Баптау\" scope=\"row\"><span class=\"card-cell-label\">Баптау</span>Токендердің базалық тарифтері</th><td data-cell-label=\"Мөлшерлемелер кестесі\"><span class=\"card-cell-label\">Мөлшерлемелер кестесі</span>Негізгі мөлшерлеме</td><td data-cell-label=\"Төлем\"><span class=\"card-cell-label\">Төлем</span><div><span>Кіріс · Кіріс токендері</span> <b>$0</b> <span class=\"price-unit\">/ 1K токен</span></div><div><span>Шығыс · Шығыс токендері</span> <b>$0.2</b> <span class=\"price-unit\">/ 1K токен</span></div><div><span>Кіріс · Кэшті оқу</span> <b>$0</b> <span class=\"price-unit\">/ 1K токен</span></div><div><span>Кіріс · Кэшке жазу</span> <b>$0</b> <span class=\"price-unit\">/ 1K токен</span></div><div><span>Кіріс · Кэшке жазу, 1 сағ</span> <b>—</b> <span class=\"price-unit\">/ 1K токен</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. <a href=\"/docs/kk/billing/reserve/\">Резервтеу мен төлемді есептеу тәртібі →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Сұрау мысалдары</h3><h4>Ailoot Ultra · Chat Completions</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Код нұсқалары\"><button class=\"cg-tab\" id=\"model-code-2605-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2605-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · толық JSON жауабы</button><button class=\"cg-tab\" id=\"model-code-2605-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2605-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK · толық JSON жауабы</button><button class=\"cg-tab\" id=\"model-code-2605-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2605-panel-2\" aria-selected=\"false\" tabindex=\"-1\">curl · SSE ағынын сақтаңыз</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Кодты көшіру\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2605-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2605-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;:&quot;sora-2&quot;,&quot;messages&quot;:[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;hello&quot;}],&quot;stream&quot;:false}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nfrom pathlib import Path\nprint(Path(&quot;result.json&quot;).read_text(encoding=&quot;utf-8&quot;))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2605-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2605-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\n\nif not os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;).strip(): raise SystemExit(&quot;Set AILOOT_API_KEY before making a request&quot;)\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nresult=client.chat.completions.create(model=&quot;sora-2&quot;, messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;hello&quot;}], stream=False)\nimport json\nfrom pathlib import Path\n\ndata = result.to_dict(mode=&quot;json&quot;)\nPath(&quot;result.json&quot;).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\nprint(json.dumps(data, ensure_ascii=False, indent=2))\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2605-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2605-tab-2\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;:&quot;sora-2&quot;,&quot;messages&quot;:[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;hello&quot;}],&quot;stream&quot;:true}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.sse\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Нәтижелерді алу және сақтау</h3><h4>Ailoot Ultra · Chat Completions</h4><p class=\"note-s\">JSON немесе text/event-stream</p><div class=\"card-result-process\" data-all-results><h5>Барлық дайын нәтижені сақтау</h5><p class=\"note-s\">Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.</p><p class=\"note-s\">JSON немесе SSE байттарын толық, жауап тақырыптарын, қайтарылған пайдалану деректерін және берілген барлық нәтиже өрістерін сақтаңыз. Модельге тән шығыс санаты туралы тұжырым жасалмайды.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Бастапқы жауапты тексеру қажет болса</h5><p class=\"note-s\">Бастапқы жауапты және әрекет идентификаторын сақтаңыз; бұдан жаңа тапсырма күйін сұрау немесе қайта жіберу қажет деген қорытынды шықпайды.</p></div><details class=\"card-about\" data-output-fields><summary>Жауап өрістері</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Өріс</th><th>Түрі</th><th>Мағынасы</th></tr></thead><tbody><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">complete response JSON</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>object</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Модельге тән нәтиже санаты бар деп жорамалдамай, қайтарылған әрбір өрісті сақтаңыз.</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">SSE data events</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>stream</td><td data-cell-label=\"Мағынасы\"><span class=\"card-cell-label\">Мағынасы</span>Тек мәтін өрістерін іріктемей, қайтарылған әрбір оқиғаны және аяқталу маркерін сақтаңыз.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Балама атаулар</h3><h4>Модельдердің балама атаулары</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=sora-2&amp;route=Ultra&amp;caller=sora-2&amp;fmt=chat_completions\"><code>sora-2</code></a></span></p><h4>Әдіс жолдарының балама атаулары</h4><p class=\"note-s\">Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.</p><h4>Шақыруға арналған байланысты ID</h4><p class=\"note-s\"><a href=\"#m=sora-2&amp;route=Ultra&amp;caller=sora-2&amp;fmt=chat_completions\"><code>sora-2</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "sora-2",
        "fmt": "chat_completions",
        "http": "POST",
        "path": "/v1/chat/completions",
        "request_model_id": "sora-2",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|chat_completions|/v1/chat/completions|sora-2",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "example_body": {
              "messages": [
                {
                  "content": "hello",
                  "role": "user"
                }
              ],
              "model": "sora-2",
              "stream": false
            },
            "hints": [
              "Supply owned text as messages[].content.",
              "Use stream:false for JSON or stream:true for SSE; keep the complete response."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel": null,
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_json_or_sse",
              "status_poll": null,
              "unknown": "Бастапқы жауапты және әрекет идентификаторын сақтаңыз; бұдан жаңа тапсырма күйін сұрау немесе қайта жіберу қажет деген қорытынды шықпайды."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "message[] with literal string content"
                ],
                "mode": "owned_text_messages"
              }
            ],
            "outputs": {
              "all_results": "JSON немесе SSE байттарын толық, жауап тақырыптарын, қайтарылған пайдалану деректерін және берілген барлық нәтиже өрістерін сақтаңыз. Модельге тән шығыс санаты туралы тұжырым жасалмайды.",
              "family": "protocol",
              "fields": [
                {
                  "description": "Модельге тән нәтиже санаты бар деп жорамалдамай, қайтарылған әрбір өрісті сақтаңыз.",
                  "name": "complete response JSON",
                  "type": "object"
                },
                {
                  "description": "Тек мәтін өрістерін іріктемей, қайтарылған әрбір оқиғаны және аяқталу маркерін сақтаңыз.",
                  "name": "SSE data events",
                  "type": "stream"
                }
              ],
              "format": "JSON немесе text/event-stream"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "sora-2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Current d09 shared client interface only; model-specific provider output and acceptance are not claimed.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "image_url": {
                                      "properties": {
                                        "detail": {
                                          "type": "string"
                                        },
                                        "url": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "url"
                                      ],
                                      "type": "object"
                                    },
                                    "type": {
                                      "const": "image_url"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "image_url"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "sora-2"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages"
              ],
              "type": "object"
            },
            "schema_template": {
              "messages": [
                {
                  "content": "hello",
                  "role": "user"
                }
              ],
              "model": "sora-2",
              "stream": false
            },
            "unsupported": [
              "Model-specific optional tools or structured-output controls are not part of this minimal profile.",
              "No image/audio/video request controls, dimensions or foreign model limits are inherited.",
              "No asynchronous media job route or manufacturer output capability is inferred."
            ]
          },
          "input": {
            "content_type": "application/json",
            "file_material": "Нақты UTF-8 материалын жол түріндегі тікелей мазмұн ретінде енгізуге болады; файлға сілтеме бар деп тұжырымдалмайды.",
            "material_types": [
              "text"
            ],
            "messages": "role өрісі және жол түріндегі тікелей content мазмұны бар хабарламалар массиві",
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "cancel": null,
            "create": {
              "http": "POST",
              "path": "/v1/chat/completions"
            },
            "job_read": null,
            "mode": "synchronous_json_or_sse",
            "status_poll": null,
            "unknown": "Preserve the original response and attempt identity; no new job polling or resubmission is inferred."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "operation_modes": [
            "request_response",
            "response_stream"
          ],
          "output": {
            "all_results": "Retain the complete JSON or SSE bytes, response headers, returned usage and all supplied result fields. No model-specific output family is asserted.",
            "family": "protocol",
            "format": "JSON or text/event-stream",
            "manufacturer_output_family": null
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Токендердің базалық тарифтері",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.2000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\":\"sora-2\",\"messages\":[{\"role\":\"user\",\"content\":\"hello\"}],\"stream\":false}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nfrom pathlib import Path\nprint(Path(\"result.json\").read_text(encoding=\"utf-8\"))\nPY_RESULT\n",
            "label": "curl · complete JSON response",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model=\"sora-2\", messages=[{\"role\":\"user\",\"content\":\"hello\"}], stream=False)\nimport json\nfrom pathlib import Path\n\ndata = result.to_dict(mode=\"json\")\nPath(\"result.json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\nprint(json.dumps(data, ensure_ascii=False, indent=2))\n",
            "label": "Python SDK · complete JSON response",
            "language": "python"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\":\"sora-2\",\"messages\":[{\"role\":\"user\",\"content\":\"hello\"}],\"stream\":true}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.sse\n",
            "label": "curl · preserve SSE stream",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "chat_completions",
        "hints": [
          "Supply owned text as messages[].content.",
          "Use stream:false for JSON or stream:true for SSE; keep the complete response."
        ],
        "http": "POST",
        "in": 0,
        "input": [
          "text"
        ],
        "label": "Chat Completions",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 200,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.2000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "sora-2",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.2000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    },
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">sora-2</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Жабу\">×</button></div><div class=\"idline\"><span>Басқа /</span><code>sora-2</code><button type=\"button\" id=\"copy-id\">ID көшіру</button></div><nav class=\"card-jump-nav\" aria-label=\"Модель карточкасының бөлімдері\"><button type=\"button\" data-card-jump=\"overview\">Бастау</button><button type=\"button\" data-card-jump=\"methods\">Кіріс деректері мен әдістер</button><button type=\"button\" data-card-jump=\"pricing\">Тарифтер</button><button type=\"button\" data-card-jump=\"examples\">Мысалдар</button><button type=\"button\" data-card-jump=\"results\">Нәтижелер</button><button type=\"button\" data-card-jump=\"aliases\">Балама атаулар</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API әдістері\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|messages|/v1/messages|sora-2\">Messages</button><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-1\" data-card-method=\"Ultra|chat_completions|/v1/chat/completions|sora-2\">Chat Completions</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Бастау</h3><p class=\"mdesc-full\">Sora 2 мәтіннен немесе тірек суреттен диалогы, дыбыстық әсерлері және фондық дыбысы синхрондалған бейне жасайды. Стандартты нұсқа көрнекі ізденіс пен тұжырымдамалық роликтерге арналған; қайта қолданылатын адам емес кейіпкерлер, жалғастыру және бейнені нысаналы өңдеу үшін өндірушінің бөлек жұмыс үдерістері бар.</p><dl class=\"card-io\" data-card-io><div><dt>Қабылданатын кіріс деректері</dt><dd>Мәтін</dd></div><div><dt>Нәтижелер</dt><dd>json · sse</dd></div></dl><details class=\"card-about\"><summary>Модель туралы</summary><p class=\"note-s\" data-model-method-boundary>Бұл сипаттама модель мүмкіндіктерін қамтиды. Ailoot жүйесінде таңдалған әдіс үшін қолжетімді кіріс, шығыс және параметрлер төменде берілген.</p><div class=\"mabout\" id=\"m-about\"><p>Sora 2 — жазбаша көрініс сипаттамасынан немесе тірек суреттен динамикалық ролик жасайтын OpenAI бейне және аудио генерациялау моделі. Ол көрнекі реттілікті синхрондалған сөйлеумен, әсерлермен және фондық дыбыспен бірге жасайды. Стандартты Sora 2 нұсқасы көрнекі ізденіске, тұжырымдама әзірлеуге, прототиптерге және бастапқы монтажға арналған. Sora 2 Pro — көрнекі дәлдікті арттыруға және жоғары ажыратымдылықта аяқтауға бағытталған бөлек шығарылым.</p><h4>Көруге де, естуге де болатын кадрды сипаттаңыз</h4><p>Өндірушінің промпт нұсқаулығы пайдалы брифті кадрлау, негізгі нысан, әрекет, орта және жарық төңірегінде құрады. Көрініске біртұтас көрнекі стиль беріп, қозғалысты анық кезеңдермен сипаттаңыз. Мысалы, төл өнім тұжырымдамасында шағын механикалық нысан жұмыс үстелінде бір рет айналады, камера баяу жақындайды, терезеден жұмсақ жарық түсіп, мотордың бәсең дыбысы естіледі. Көрермен нені байқауы керегін және әрекет қалай аяқталатынын айтыңыз.</p><p>Әр кадрдағы камера қозғалысы мен нысан әрекеті түсінікті болсын. Күрделі реттілікті әрқайсысының кадрлауы, әрекеті және жарығы бар жеке кадр блоктарына бөлуге болады. Бірнеше ролик бір реттілік құрауы тиіс болса, нысанның бөлшектері мен түстер палитрасын сақтаңыз. Нұсқаулық қысқа кадрлар әдетте нұсқауды сенімдірек орындайтынын және бір промптпен қайталап генерациялағанда әртүрлі түсірілім нұсқалары шығатынын атап көрсетеді.</p><p>Модельдің таныстырылымында шынайы, кинематографиялық және аниме стильдерін қоса алғанда, физикалық мінез-құлық пен кадрлар арасындағы сабақтастықтың жақсарғаны сипатталады. Бұл — бағыттап, тексеруге арналған мүмкіндіктер. Алғашқы кадрдың нанымды көрінуін тұтас реттіліктің үйлесімділігіне кепіл деп қабылдамай, қозғалысты, нысандардың жанасуын, пропорцияларды және сабақтастықты тексеріңіз. Әрекет түсініксіз болса, оны жеңілдетіп, көрінетін басы мен соңын белгілеңіз.</p><h4>Диалог пен дыбысты бөлек бағыттаңыз</h4><p>Айтылатын репликаларды көрнекі сипаттамадан бөлек беріп, сөйлеушілерді бірізді белгілеңіз. Диалог әрекетке және жоспарланған ролик ұзақтығына сыятындай қысқа болсын. Екі кейіпкерлі анимацияда қысқа кадрға ұзақ монолог сыйғызуды сұраудың орнына, қысқа сұрақ пен жауапты кезектестіріңіз. Нұсқаулық күрделі әрі ұзақ диалогтың ырғақ пен синхрондауды бұзуы мүмкін екенін ескертеді.</p><p>Көрініске тән дыбыс ортасын сипаттаңыз: шағын қозғалыстың дыбысы, бөлме шуы немесе қоршаған орта әсерінің ырғағы. Қай дыбыс әрекетпен тұспа-тұс келуі керегін түсіндіріңіз. Алынған сөйлеу мен әсерлерді бейнемен бірге тыңдап, сөйлеуші сәйкестігін, сөздерді және уақытын тексеріңіз. Синхрондалған аудио бөлек мәтіндік жауап емес, жасалған роликтің бір бөлігі болады.</p><h4>Өлшем, ұзақтық және суретке сүйенген бастау</h4><p>Стандартты модельдің құжатта көрсетілген шығыс өлшемдері — тік форматта 720×1280 және көлденең форматта 1280×720. Pro нұсқасындағы жоғары ажыратымдылық өлшемдерін стандартты Sora 2-ге телуге болмайды. Өлшем мен ұзақтық сұраудың нақты параметрлері арқылы беріледі; промптта басқа өлшем жазу немесе ұзағырақ фильм сұрау бұл параметрлерді өзгертпейді. Жасау анықтамасында 4, 8 және 12 секундтық ролик параметрлері көрсетілген, сондықтан кадр дайындағанда қысқа, нақты әрекет кезеңін таңдаңыз. Өндірушінің кеңейтілген жұмыс үдерісінде 16 және 20 секундтық ролик параметрлері де құжатталған.</p><p>Тірек сурет алғашқы кадрды бекітеді, ал мәтін одан кейін не болатынын сипаттайды. Өндіруші JPEG, PNG және WebP тірек суреттерін қолдайды және сурет өлшемі мақсатты бейне өлшемімен сәйкес болуын талап етеді. Сол бастапқы суретте нысанды, ортаны және композицияны дайындап, нақты қозғалыс сұраңыз. Бұл — бастапқы кадрға арналған тірек; ол ролик бойы әр бөлшектің дәл сақталуына кепіл болмайды.</p><h4>Қайта қолданылатын адам емес кейіпкерлер</h4><p>Өндірушінің кеңейтілген жұмыс үдерісі жануардың, маскоттың немесе заттың қысқа тірек бейнесінен қайта қолданылатын кейіпкер активін жасай алады. Дайындау нұсқаулығында шамамен екі-төрт секундтық, 720p–1080p ажыратымдылықтағы, 16:9 не 9:16 пішіміндегі MP4 ролик ұсынылады. Бастапқы және шығыс бейненің арақатынасын сәйкестендіру созылып көрінуді болдырмауға көмектеседі. Генерацияда екіге дейін кейіпкерге сілтеме жасауға болады.</p><p>Кейіпкер идентификаторын сақтап, промптта оның атын атаңыз; идентификаторды ғана беру нұсқаулықтағы толық дайындықты алмастырмайды. Кейіпкер активтерін суретке сүйенген генерациямен бірге қолдануға болады, бірақ бейнені ұзарту оларды қабылдамайды. Өндіруші әдепкіде адамға ұқсас кейіпкерлерді жүктеуді бұғаттайды және құжатталған API үдерісінде адам беті бар тірек суреттерді қабылдамайды. Sora қолданбасындағы жеке кейіпкер мүмкіндіктері — бөлек өнім үдерісі.</p><h4>Аяқталған роликті жалғастырыңыз немесе өңдеңіз</h4><p>Ұзарту аяқталған бастапқы бейне мен жалғастыру промптын қабылдап, бүкіл бастапқы роликті қозғалыс, камера бағыты және көрініс сабақтастығы үшін контекст ретінде пайдаланады. Нұсқаулықта әр ұзартуда 20 секундқа дейін қосу сипатталған. Құжатталған ұзарту кірісі — бастапқы бейне мен мәтін; бұл режимге қосымша кейіпкер не сурет тіректері қосылмайды. Ауысусыз қатысы жоқ көрініс енгізудің орнына, бар әрекеттің қалай жалғасатынын сипаттаңыз.</p><p>Бейне өңдеу бар роликтегі анық өзгеріске бағытталады. Нысаналы түзету кадрдың қалған бөлігін сақтай отырып, заттың түсін немесе көрініс палитрасын өзгерте алады. Өндіруші нұсқаулығы бір жолы бір нақты өзгеріс жасауды ұсынады және генерацияланған бейнені өңдеуді кез келген өзге түсірілімді жүктеуден ажыратады: соңғысының жеке жарамдылық шарты бар. Келесі өңдеуді жасамас бұрын аяқталған бастапқы бейнені сақтап, қажетті түзетуді дәл анықтаңыз.</p><h4>Рендер тапсырмалары және дайын бейне</h4><p>Өндірушінің құжатталған бейне үдерісі асинхронды: жіберілген тапсырма аяқталғанға не сәтсіз аяқталғанға дейін кезекте немесе орындалу үстінде болуы мүмкін. Аяқталған тапсырма MP4 бейне береді; нобай мен спрайт парағы активтері алдын ала қарауға және шолуға көмектеседі. Тапсырма идентификаторын промптпен, тірек материалдармен және қайтарылған активтермен байланыстырып сақтаңыз. Алғашқы тапсырма жауабы — ойнатуға дайын соңғы бейне емес.</p><p>Қалыпты жүктеп алу үдерісінде жүктеу URL-інің жарамдылық мерзімі бір сағат деп сипатталған. Кеңейтілген пакеттік үдеріс әр кадр үшін тұрақты элемент идентификаторлары, жүктелген тірек материалдары және сол кадрмен сәйкестендірілген нәтижесі бар тәуелсіз JSON рендер сұрауларын дайындайды; оның дайын активтерін жүктеу үшін 24 сағатқа дейінгі бөлек мерзім беріледі. Дайын роликті дереу сақтап, таңдалған түсірілім нұсқасы деп қабылдамас бұрын оның нақты бейнесі мен дыбысын тексеріңіз.</p><p>Өндірушінің құжатталған API мазмұн шектеулері материалдың 18 жасқа толмаған аудиторияға жарамды болуын талап етеді және авторлық құқықпен қорғалған кейіпкерлерді, музыканы және шынайы адамдарды генерациялауды қабылдамайды. Көрініс пен тірек материалдарын соған сай дайындаңыз. Модельдің тікелей нәтижесі — дыбысы бар бейне; ол генерацияланған жеке суреттер, сөйлесу құралының жауабы немесе ұзақтығы шексіз фильм емес. Көрнекі тұжырымдаманы жалғастырғанда стандартты модельдің нақты сәйкестігін және қабылданған бастапқы роликті сақтаңыз.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Anthropic хабарламалары</b> <code>POST /v1/messages</code></summary><dl class=\"method-capabilities\"><div><dt>Кіріс</dt><dd><code>text</code></dd></div><div><dt>Шығыс</dt><dd><code>json</code>, <code>sse</code></dd></div><div><dt>Шығыс пішімі</dt><dd>JSON немесе SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Өріс</th><th>Түрі</th><th>Талап</th><th>Мәндер мен шектеулер</th><th>Әдепкі</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>string</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span><div>sora-2</div></td><td data-cell-label=\"Әдепкі\" data-default=\"unspecified\"><span class=\"card-cell-label\">Әдепкі</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>message[]</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span></td><td data-cell-label=\"Әдепкі\" data-default=\"unspecified\"><span class=\"card-cell-label\">Әдепкі</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>string</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span><div>user, assistant</div></td><td data-cell-label=\"Әдепкі\" data-default=\"unspecified\"><span class=\"card-cell-label\">Әдепкі</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>string</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span></td><td data-cell-label=\"Әдепкі\" data-default=\"unspecified\"><span class=\"card-cell-label\">Әдепкі</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">max_tokens</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>integer</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span></td><td data-cell-label=\"Әдепкі\" data-default=\"unspecified\"><span class=\"card-cell-label\">Әдепкі</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span><code>boolean</code></td><td data-cell-label=\"Талап\"><span class=\"card-cell-label\">Талап</span>Міндетті емес</td><td data-cell-label=\"Мәндер мен шектеулер\"><span class=\"card-cell-label\">Мәндер мен шектеулер</span></td><td data-cell-label=\"Әдепкі\" data-default=\"known\"><span class=\"card-cell-label\">Әдепкі</span>false</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Кіріс материалдарының үйлесімдері</summary><p class=\"note-s\"><b>Мәтін</b> · UTF-8 мәтіні</p><p class=\"note-s\"><code>messages[].content жолы</code></p></details><details class=\"note-s\" data-method-contract><summary>Әдіс параметрлері мен өмірлік циклі</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Параметр</th><th>Параметр талаптары</th></tr></thead><tbody><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>content_type</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>application/json</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>required</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>model, messages, max_tokens</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>optional_controls</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>stream</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>material_types</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>text</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>text_file_material</code></th><td data-cell-label=\"Параметр талаптары\"><span class=\"card-cell-label\">Параметр талаптары</span>Нақты UTF-8 құжатын оқып, оның мәтінін көрсетілген кіріс жолына немесе хабарлама мазмұнының жолына қойыңыз.</td></tr></tbody></table></div><p>Өмірлік цикл: <code>synchronous_or_streamed</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Тарифтер</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Тариф анықтамасы сұрау мүмкіндіктерін қоспайды. Қолдау көрсетілетін параметрлер таңдалған әдісте берілген.</p><dl data-price-conditions><dt>Жылдам режим</dt><dd>Көрсетілмеген <span class=\"note-s\">Жылдам режим таңдалғанда</span></dd><dt>Икемді режим</dt><dd>Көрсетілмеген <span class=\"note-s\">flex режимі таңдалғанда</span></dd><dt>Ой қорытудың ең жоғары деңгейі</dt><dd>Көрсетілмеген <span class=\"note-s\">Ой қорыту деңгейі ең жоғары болып, default түзетуі қолданылғанда</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ailoot мөлшерлемелері</h4><h4>Баптаулар бойынша бағалар</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Баптау</th><th>Мөлшерлемелер кестесі</th><th>Төлем</th></tr></thead><tbody><tr><th data-cell-label=\"Баптау\" scope=\"row\"><span class=\"card-cell-label\">Баптау</span>Токендердің базалық тарифтері</th><td data-cell-label=\"Мөлшерлемелер кестесі\"><span class=\"card-cell-label\">Мөлшерлемелер кестесі</span>Негізгі мөлшерлеме</td><td data-cell-label=\"Төлем\"><span class=\"card-cell-label\">Төлем</span><div><span>Кіріс · Кіріс токендері</span> <b>$0</b> <span class=\"price-unit\">/ 1K токен</span></div><div><span>Шығыс · Шығыс токендері</span> <b>$0.2</b> <span class=\"price-unit\">/ 1K токен</span></div><div><span>Кіріс · Кэшті оқу</span> <b>$0</b> <span class=\"price-unit\">/ 1K токен</span></div><div><span>Кіріс · Кэшке жазу</span> <b>$0</b> <span class=\"price-unit\">/ 1K токен</span></div><div><span>Кіріс · Кэшке жазу, 1 сағ</span> <b>—</b> <span class=\"price-unit\">/ 1K токен</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. <a href=\"/docs/kk/billing/reserve/\">Резервтеу мен төлемді есептеу тәртібі →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Сұрау мысалдары</h3><h4>Ailoot Ultra · Anthropic хабарламалары</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Код нұсқалары\"><button class=\"cg-tab\" id=\"model-code-2606-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2606-panel-0\" aria-selected=\"true\" tabindex=\"0\">Ең ықшам толық JSON сұрау денесі</button><button class=\"cg-tab\" id=\"model-code-2606-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2606-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · өзіңіздің UTF-8 құжатыңызды қолданыңыз</button><button class=\"cg-tab\" id=\"model-code-2606-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2606-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python · нәтижені толық сақтаңыз</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Кодты көшіру\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2606-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2606-tab-0\"><pre data-lang=\"json\"><code>{\n  &quot;model&quot;: &quot;sora-2&quot;,\n  &quot;max_tokens&quot;: 128,\n  &quot;messages&quot;: [\n    {\n      &quot;role&quot;: &quot;user&quot;,\n      &quot;content&quot;: &quot;Summarize the incident report.&quot;\n    }\n  ],\n  &quot;stream&quot;: false\n}</code></pre></div><div class=\"cg-pane\" id=\"model-code-2606-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2606-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;sora-2&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nPath(&#39;request.json&#39;).write_text(json.dumps(payload, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H &quot;x-api-key: $AILOOT_API_KEY&quot; -H &#39;anthropic-version: 2023-06-01&#39; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2606-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2606-tab-2\" hidden><pre data-lang=\"python\"><code>import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;sora-2&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ[&#39;AILOOT_API_KEY&#39;]\nif not api_key.strip():\n    raise SystemExit(&#39;Set AILOOT_API_KEY before making a request&#39;)\nheaders = {&#39;x-api-key&#39;: &#39;PLACEHOLDER_KEY&#39;, &#39;anthropic-version&#39;: &#39;2023-06-01&#39;, &#39;Content-Type&#39;: &#39;application/json&#39;}\nheaders[&#39;x-api-key&#39;] = api_key\nrequest = Request(&#39;https://api.ailoot.ai/v1/messages&#39;, data=json.dumps(payload, ensure_ascii=False).encode(&#39;utf-8&#39;), headers=headers, method=&#39;POST&#39;)\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path(&#39;response-headers.txt&#39;).write_text(str(response.headers), encoding=&#39;utf-8&#39;)\nexcept HTTPError as error:\n    Path(&#39;result.json&#39;).write_bytes(error.read())\n    Path(&#39;response-headers.txt&#39;).write_text(str(error.headers), encoding=&#39;utf-8&#39;)\n    raise\nPath(&#39;result.json&#39;).write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Нәтижелерді алу және сақтау</h3><h4>Ailoot Ultra · Anthropic хабарламалары</h4><p class=\"note-s\">JSON немесе SSE</p><div class=\"card-result-process\" data-all-results><h5>Барлық дайын нәтижені сақтау</h5><p class=\"note-s\">Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.</p><p class=\"note-s\">Барлық мазмұн блоктарын, пайымдау қолтаңбаларын және құрал қолданудың нақты ID мәндерін сақтаңыз. SSE блоктарының барлық өзгерістерін жинаңыз; алғашқы мәтіндік блок толық шығыс емес.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Бастапқы жауапты тексеру қажет болса</h5><p class=\"note-s\">Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.</p></div><details class=\"card-about\" data-output-fields><summary>Жауап өрістері</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Өріс</th><th>Түрі</th></tr></thead><tbody><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>string</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>string</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">content[]</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>text|thinking|tool_use|other content block</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">stop_reason</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>string|null</td></tr><tr><th data-cell-label=\"Өріс\" scope=\"row\"><span class=\"card-cell-label\">Өріс</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Түрі\" data-field-type><span class=\"card-cell-label\">Түрі</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Қателер және келесі қадамдар</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Жауап</th><th>Шарт</th><th>Келесі қадам</th></tr></thead><tbody><tr><th data-cell-label=\"Жауап\" scope=\"row\"><span class=\"card-cell-label\">Жауап</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Шарт\"><span class=\"card-cell-label\">Шарт</span>Міндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате</td><td data-cell-label=\"Келесі қадам\"><span class=\"card-cell-label\">Келесі қадам</span>Жаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Балама атаулар</h3><h4>Модельдердің балама атаулары</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=sora-2&amp;route=Ultra&amp;caller=sora-2&amp;fmt=messages\"><code>sora-2</code></a></span></p><h4>Әдіс жолдарының балама атаулары</h4><p class=\"note-s\">Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.</p><h4>Шақыруға арналған байланысты ID</h4><p class=\"note-s\"><a href=\"#m=sora-2&amp;route=Ultra&amp;caller=sora-2&amp;fmt=messages\"><code>sora-2</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "sora-2",
        "fmt": "messages",
        "http": "POST",
        "path": "/v1/messages",
        "request_model_id": "sora-2",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|messages|/v1/messages|sora-2",
      "ordinal": 1,
      "rawMethod": {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "Міндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате",
                "http_status": 400,
                "recovery": "Жаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз.",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "sora-2",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content жолы",
                "required_material": "UTF-8 мәтіні"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "Барлық мазмұн блоктарын, пайымдау қолтаңбаларын және құрал қолданудың нақты ID мәндерін сақтаңыз. SSE блоктарының барлық өзгерістерін жинаңыз; алғашқы мәтіндік блок толық шығыс емес.",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON немесе SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "sora-2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "sora-2"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "sora-2",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "Нақты UTF-8 құжатын оқып, оның мәтінін көрсетілген кіріс жолына немесе хабарлама мазмұнының жолына қойыңыз."
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Токендердің базалық тарифтері",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.2000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"model\": \"sora-2\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'sora-2', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'sora-2', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "messages",
        "http": "POST",
        "in": 0,
        "input": [
          "text"
        ],
        "label": "Anthropic хабарламалары",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 200,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.2000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "sora-2",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.2000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "sora-2",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "e731fb096b9291a01fc4c98a2623c4d7604c76723e7e672e11d8f5d5a1595085",
    "input_html_sha256": "d09fb386cc73f61e39dd371abef9862a420143d631843b3bed11963aaf1a32da",
    "private_audit_sha256": "0b7ebd536db1b499947b9a87bdf018eff7277f3fcfb11c426ded9551f1135334",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/kk/sora-2/",
    "description": "Sora 2 мәтіннен немесе тірек суреттен диалогы, дыбыстық әсерлері және фондық дыбысы синхрондалған бейне жасайды. Стандартты нұсқа көрнекі ізденіс пен тұжырымдамалық роликтерге арналған; қайта қолданылатын адам емес кейіпкерлер, жалғастыру және бейнені нысаналы өңдеу үшін өндірушінің бөлек жұмыс үдерістері бар.",
    "locale": "kk",
    "md_url": "https://ailoot.ai/models/kk/sora-2/index.md",
    "title": "sora-2 — Ailoot",
    "url": "https://ailoot.ai/models/kk/sora-2/"
  },
  "rawModel": {
    "about": "Sora 2 — жазбаша көрініс сипаттамасынан немесе тірек суреттен динамикалық ролик жасайтын OpenAI бейне және аудио генерациялау моделі. Ол көрнекі реттілікті синхрондалған сөйлеумен, әсерлермен және фондық дыбыспен бірге жасайды. Стандартты Sora 2 нұсқасы көрнекі ізденіске, тұжырымдама әзірлеуге, прототиптерге және бастапқы монтажға арналған. Sora 2 Pro — көрнекі дәлдікті арттыруға және жоғары ажыратымдылықта аяқтауға бағытталған бөлек шығарылым.\n\n### Көруге де, естуге де болатын кадрды сипаттаңыз\n\nӨндірушінің промпт нұсқаулығы пайдалы брифті кадрлау, негізгі нысан, әрекет, орта және жарық төңірегінде құрады. Көрініске біртұтас көрнекі стиль беріп, қозғалысты анық кезеңдермен сипаттаңыз. Мысалы, төл өнім тұжырымдамасында шағын механикалық нысан жұмыс үстелінде бір рет айналады, камера баяу жақындайды, терезеден жұмсақ жарық түсіп, мотордың бәсең дыбысы естіледі. Көрермен нені байқауы керегін және әрекет қалай аяқталатынын айтыңыз.\n\nӘр кадрдағы камера қозғалысы мен нысан әрекеті түсінікті болсын. Күрделі реттілікті әрқайсысының кадрлауы, әрекеті және жарығы бар жеке кадр блоктарына бөлуге болады. Бірнеше ролик бір реттілік құрауы тиіс болса, нысанның бөлшектері мен түстер палитрасын сақтаңыз. Нұсқаулық қысқа кадрлар әдетте нұсқауды сенімдірек орындайтынын және бір промптпен қайталап генерациялағанда әртүрлі түсірілім нұсқалары шығатынын атап көрсетеді.\n\nМодельдің таныстырылымында шынайы, кинематографиялық және аниме стильдерін қоса алғанда, физикалық мінез-құлық пен кадрлар арасындағы сабақтастықтың жақсарғаны сипатталады. Бұл — бағыттап, тексеруге арналған мүмкіндіктер. Алғашқы кадрдың нанымды көрінуін тұтас реттіліктің үйлесімділігіне кепіл деп қабылдамай, қозғалысты, нысандардың жанасуын, пропорцияларды және сабақтастықты тексеріңіз. Әрекет түсініксіз болса, оны жеңілдетіп, көрінетін басы мен соңын белгілеңіз.\n\n### Диалог пен дыбысты бөлек бағыттаңыз\n\nАйтылатын репликаларды көрнекі сипаттамадан бөлек беріп, сөйлеушілерді бірізді белгілеңіз. Диалог әрекетке және жоспарланған ролик ұзақтығына сыятындай қысқа болсын. Екі кейіпкерлі анимацияда қысқа кадрға ұзақ монолог сыйғызуды сұраудың орнына, қысқа сұрақ пен жауапты кезектестіріңіз. Нұсқаулық күрделі әрі ұзақ диалогтың ырғақ пен синхрондауды бұзуы мүмкін екенін ескертеді.\n\nКөрініске тән дыбыс ортасын сипаттаңыз: шағын қозғалыстың дыбысы, бөлме шуы немесе қоршаған орта әсерінің ырғағы. Қай дыбыс әрекетпен тұспа-тұс келуі керегін түсіндіріңіз. Алынған сөйлеу мен әсерлерді бейнемен бірге тыңдап, сөйлеуші сәйкестігін, сөздерді және уақытын тексеріңіз. Синхрондалған аудио бөлек мәтіндік жауап емес, жасалған роликтің бір бөлігі болады.\n\n### Өлшем, ұзақтық және суретке сүйенген бастау\n\nСтандартты модельдің құжатта көрсетілген шығыс өлшемдері — тік форматта 720×1280 және көлденең форматта 1280×720. Pro нұсқасындағы жоғары ажыратымдылық өлшемдерін стандартты Sora 2-ге телуге болмайды. Өлшем мен ұзақтық сұраудың нақты параметрлері арқылы беріледі; промптта басқа өлшем жазу немесе ұзағырақ фильм сұрау бұл параметрлерді өзгертпейді. Жасау анықтамасында 4, 8 және 12 секундтық ролик параметрлері көрсетілген, сондықтан кадр дайындағанда қысқа, нақты әрекет кезеңін таңдаңыз. Өндірушінің кеңейтілген жұмыс үдерісінде 16 және 20 секундтық ролик параметрлері де құжатталған.\n\nТірек сурет алғашқы кадрды бекітеді, ал мәтін одан кейін не болатынын сипаттайды. Өндіруші JPEG, PNG және WebP тірек суреттерін қолдайды және сурет өлшемі мақсатты бейне өлшемімен сәйкес болуын талап етеді. Сол бастапқы суретте нысанды, ортаны және композицияны дайындап, нақты қозғалыс сұраңыз. Бұл — бастапқы кадрға арналған тірек; ол ролик бойы әр бөлшектің дәл сақталуына кепіл болмайды.\n\n### Қайта қолданылатын адам емес кейіпкерлер\n\nӨндірушінің кеңейтілген жұмыс үдерісі жануардың, маскоттың немесе заттың қысқа тірек бейнесінен қайта қолданылатын кейіпкер активін жасай алады. Дайындау нұсқаулығында шамамен екі-төрт секундтық, 720p–1080p ажыратымдылықтағы, 16:9 не 9:16 пішіміндегі MP4 ролик ұсынылады. Бастапқы және шығыс бейненің арақатынасын сәйкестендіру созылып көрінуді болдырмауға көмектеседі. Генерацияда екіге дейін кейіпкерге сілтеме жасауға болады.\n\nКейіпкер идентификаторын сақтап, промптта оның атын атаңыз; идентификаторды ғана беру нұсқаулықтағы толық дайындықты алмастырмайды. Кейіпкер активтерін суретке сүйенген генерациямен бірге қолдануға болады, бірақ бейнені ұзарту оларды қабылдамайды. Өндіруші әдепкіде адамға ұқсас кейіпкерлерді жүктеуді бұғаттайды және құжатталған API үдерісінде адам беті бар тірек суреттерді қабылдамайды. Sora қолданбасындағы жеке кейіпкер мүмкіндіктері — бөлек өнім үдерісі.\n\n### Аяқталған роликті жалғастырыңыз немесе өңдеңіз\n\nҰзарту аяқталған бастапқы бейне мен жалғастыру промптын қабылдап, бүкіл бастапқы роликті қозғалыс, камера бағыты және көрініс сабақтастығы үшін контекст ретінде пайдаланады. Нұсқаулықта әр ұзартуда 20 секундқа дейін қосу сипатталған. Құжатталған ұзарту кірісі — бастапқы бейне мен мәтін; бұл режимге қосымша кейіпкер не сурет тіректері қосылмайды. Ауысусыз қатысы жоқ көрініс енгізудің орнына, бар әрекеттің қалай жалғасатынын сипаттаңыз.\n\nБейне өңдеу бар роликтегі анық өзгеріске бағытталады. Нысаналы түзету кадрдың қалған бөлігін сақтай отырып, заттың түсін немесе көрініс палитрасын өзгерте алады. Өндіруші нұсқаулығы бір жолы бір нақты өзгеріс жасауды ұсынады және генерацияланған бейнені өңдеуді кез келген өзге түсірілімді жүктеуден ажыратады: соңғысының жеке жарамдылық шарты бар. Келесі өңдеуді жасамас бұрын аяқталған бастапқы бейнені сақтап, қажетті түзетуді дәл анықтаңыз.\n\n### Рендер тапсырмалары және дайын бейне\n\nӨндірушінің құжатталған бейне үдерісі асинхронды: жіберілген тапсырма аяқталғанға не сәтсіз аяқталғанға дейін кезекте немесе орындалу үстінде болуы мүмкін. Аяқталған тапсырма MP4 бейне береді; нобай мен спрайт парағы активтері алдын ала қарауға және шолуға көмектеседі. Тапсырма идентификаторын промптпен, тірек материалдармен және қайтарылған активтермен байланыстырып сақтаңыз. Алғашқы тапсырма жауабы — ойнатуға дайын соңғы бейне емес.\n\nҚалыпты жүктеп алу үдерісінде жүктеу URL-інің жарамдылық мерзімі бір сағат деп сипатталған. Кеңейтілген пакеттік үдеріс әр кадр үшін тұрақты элемент идентификаторлары, жүктелген тірек материалдары және сол кадрмен сәйкестендірілген нәтижесі бар тәуелсіз JSON рендер сұрауларын дайындайды; оның дайын активтерін жүктеу үшін 24 сағатқа дейінгі бөлек мерзім беріледі. Дайын роликті дереу сақтап, таңдалған түсірілім нұсқасы деп қабылдамас бұрын оның нақты бейнесі мен дыбысын тексеріңіз.\n\nӨндірушінің құжатталған API мазмұн шектеулері материалдың 18 жасқа толмаған аудиторияға жарамды болуын талап етеді және авторлық құқықпен қорғалған кейіпкерлерді, музыканы және шынайы адамдарды генерациялауды қабылдамайды. Көрініс пен тірек материалдарын соған сай дайындаңыз. Модельдің тікелей нәтижесі — дыбысы бар бейне; ол генерацияланған жеке суреттер, сөйлесу құралының жауабы немесе ұзақтығы шексіз фильм емес. Көрнекі тұжырымдаманы жалғастырғанда стандартты модельдің нақты сәйкестігін және қабылданған бастапқы роликті сақтаңыз.",
    "alias_of": null,
    "aliases": [],
    "author": "Other",
    "capabilities": {
      "context_length": 60000,
      "manufacturer_input": [],
      "manufacturer_output": []
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.2000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "Конфигурация бағалары туралы толық ақпарат — егжей-тегжейлі мәліметтерде."
      }
    ],
    "ctx": null,
    "formats": [
      "chat_completions",
      "messages"
    ],
    "id": "sora-2",
    "input": [
      "text"
    ],
    "kind": "text",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "example_body": {
              "messages": [
                {
                  "content": "hello",
                  "role": "user"
                }
              ],
              "model": "sora-2",
              "stream": false
            },
            "hints": [
              "Supply owned text as messages[].content.",
              "Use stream:false for JSON or stream:true for SSE; keep the complete response."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel": null,
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_json_or_sse",
              "status_poll": null,
              "unknown": "Бастапқы жауапты және әрекет идентификаторын сақтаңыз; бұдан жаңа тапсырма күйін сұрау немесе қайта жіберу қажет деген қорытынды шықпайды."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "message[] with literal string content"
                ],
                "mode": "owned_text_messages"
              }
            ],
            "outputs": {
              "all_results": "JSON немесе SSE байттарын толық, жауап тақырыптарын, қайтарылған пайдалану деректерін және берілген барлық нәтиже өрістерін сақтаңыз. Модельге тән шығыс санаты туралы тұжырым жасалмайды.",
              "family": "protocol",
              "fields": [
                {
                  "description": "Модельге тән нәтиже санаты бар деп жорамалдамай, қайтарылған әрбір өрісті сақтаңыз.",
                  "name": "complete response JSON",
                  "type": "object"
                },
                {
                  "description": "Тек мәтін өрістерін іріктемей, қайтарылған әрбір оқиғаны және аяқталу маркерін сақтаңыз.",
                  "name": "SSE data events",
                  "type": "stream"
                }
              ],
              "format": "JSON немесе text/event-stream"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "sora-2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Current d09 shared client interface only; model-specific provider output and acceptance are not claimed.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "image_url": {
                                      "properties": {
                                        "detail": {
                                          "type": "string"
                                        },
                                        "url": {
                                          "type": "string"
                                        }
                                      },
                                      "required": [
                                        "url"
                                      ],
                                      "type": "object"
                                    },
                                    "type": {
                                      "const": "image_url"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "image_url"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "sora-2"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages"
              ],
              "type": "object"
            },
            "schema_template": {
              "messages": [
                {
                  "content": "hello",
                  "role": "user"
                }
              ],
              "model": "sora-2",
              "stream": false
            },
            "unsupported": [
              "Model-specific optional tools or structured-output controls are not part of this minimal profile.",
              "No image/audio/video request controls, dimensions or foreign model limits are inherited.",
              "No asynchronous media job route or manufacturer output capability is inferred."
            ]
          },
          "input": {
            "content_type": "application/json",
            "file_material": "Нақты UTF-8 материалын жол түріндегі тікелей мазмұн ретінде енгізуге болады; файлға сілтеме бар деп тұжырымдалмайды.",
            "material_types": [
              "text"
            ],
            "messages": "role өрісі және жол түріндегі тікелей content мазмұны бар хабарламалар массиві",
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "cancel": null,
            "create": {
              "http": "POST",
              "path": "/v1/chat/completions"
            },
            "job_read": null,
            "mode": "synchronous_json_or_sse",
            "status_poll": null,
            "unknown": "Preserve the original response and attempt identity; no new job polling or resubmission is inferred."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "operation_modes": [
            "request_response",
            "response_stream"
          ],
          "output": {
            "all_results": "Retain the complete JSON or SSE bytes, response headers, returned usage and all supplied result fields. No model-specific output family is asserted.",
            "family": "protocol",
            "format": "JSON or text/event-stream",
            "manufacturer_output_family": null
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Токендердің базалық тарифтері",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.2000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\":\"sora-2\",\"messages\":[{\"role\":\"user\",\"content\":\"hello\"}],\"stream\":false}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nfrom pathlib import Path\nprint(Path(\"result.json\").read_text(encoding=\"utf-8\"))\nPY_RESULT\n",
            "label": "curl · complete JSON response",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model=\"sora-2\", messages=[{\"role\":\"user\",\"content\":\"hello\"}], stream=False)\nimport json\nfrom pathlib import Path\n\ndata = result.to_dict(mode=\"json\")\nPath(\"result.json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\nprint(json.dumps(data, ensure_ascii=False, indent=2))\n",
            "label": "Python SDK · complete JSON response",
            "language": "python"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\":\"sora-2\",\"messages\":[{\"role\":\"user\",\"content\":\"hello\"}],\"stream\":true}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.sse\n",
            "label": "curl · preserve SSE stream",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "chat_completions",
        "hints": [
          "Supply owned text as messages[].content.",
          "Use stream:false for JSON or stream:true for SSE; keep the complete response."
        ],
        "http": "POST",
        "in": 0,
        "input": [
          "text"
        ],
        "label": "Chat Completions",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 200,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.2000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "sora-2",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.2000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      },
      {
        "available": null,
        "cache_read": 0,
        "cache_write": 0,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "errors": [
              {
                "code": null,
                "condition": "Міндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате",
                "http_status": 400,
                "recovery": "Жаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз.",
                "type": "invalid_request_error"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "sora-2",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content жолы",
                "required_material": "UTF-8 мәтіні"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "Барлық мазмұн блоктарын, пайымдау қолтаңбаларын және құрал қолданудың нақты ID мәндерін сақтаңыз. SSE блоктарының барлық өзгерістерін жинаңыз; алғашқы мәтіндік блок толық шығыс емес.",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "JSON немесе SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "sora-2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "sora-2"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "sora-2",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "Нақты UTF-8 құжатын оқып, оның мәтінін көрсетілген кіріс жолына немесе хабарлама мазмұнының жолына қойыңыз."
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Токендердің базалық тарифтері",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.2000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "{\n  \"model\": \"sora-2\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'sora-2', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'sora-2', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "messages",
        "http": "POST",
        "in": 0,
        "input": [
          "text"
        ],
        "label": "Anthropic хабарламалары",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": 200,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.2000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.0002",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "sora-2",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.2000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.0002",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "sora-2",
        "request_model_id": "sora-2",
        "route_label": "Ultra"
      }
    ],
    "name": "sora-2",
    "price": {
      "in": 0,
      "in_label": null,
      "out": 200,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0,
      "sort_out": 200,
      "varies": false
    },
    "short": "Sora 2 мәтіннен немесе тірек суреттен диалогы, дыбыстық әсерлері және фондық дыбысы синхрондалған бейне жасайды. Стандартты нұсқа көрнекі ізденіс пен тұжырымдамалық роликтерге арналған; қайта қолданылатын адам емес кейіпкерлер, жалғастыру және бейнені нысаналы өңдеу үшін өндірушінің бөлек жұмыс үдерістері бар."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        },
        {
          "contract_json_pointer": "/methods/1/rawMethod/contract",
          "html_json_pointer": "/methods/1/html",
          "method_ordinal": 1
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod",
        "/methods/1/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Sora 2 мәтіннен немесе тірек суреттен диалогы, дыбыстық әсерлері және фондық дыбысы синхрондалған бейне жасайды. Стандартты нұсқа көрнекі ізденіс пен тұжырымдамалық роликтерге арналған; қайта қолданылатын адам емес кейіпкерлер, жалғастыру және бейнені нысаналы өңдеу үшін өндірушінің бөлек жұмыс үдерістері бар.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "707228d93f523ae6aad71a6e3e3d8a0d96e6fee705130cc588e78cf9221ff78a",
    "renderer_sha256": "def3bb6e69c8ddb72f88ec6540bbe55d0e503790f964d84073ecda781b13bedf"
  },
  "sourceRevision": "af14e48ee4bec700139fd30903ee0a45281ed76a96402b647efca5fe2d228413"
}
