Mistral: Codestral 2508
Codestral 2508 — Mistral AI компаниясының код жасауға және контексті ескеріп толықтыруға арналған мәтін моделі. Ол редактордағы жиі тапсырмаларға, соның ішінде код ортасындағы бос орынды толтыруға және бірнеше жолды өңдеуге оңтайландырылған; өндіруші көрсеткен 128 мың токендік контексті және құжатталған чат, құрылымдалған шығыс пен құрал мүмкіндіктерін ұсынады.
- Ailoot Ultra · OpenAI чаты
POST /v1/chat/completionsmistralai/codestral-2508 - Ailoot Ultra · Anthropic хабарламалары
POST /v1/messagesmistralai/codestral-2508
Модель туралы
Бұл сипаттама модель мүмкіндіктерін қамтиды. Ailoot жүйесінде таңдалған әдіс үшін қолжетімді кіріс, шығыс және параметрлер төменде берілген.
Codestral 2508 — Mistral AI компаниясының жиі орындалатын, кідіріске сезімтал толықтыру және код жасау тапсырмаларына арналған кодтау моделі. Ол бастапқы код пен мәтіндік талаптарды қабылдап, іске асыру, толықтыру, түзету немесе түсіндірме қамтитын мәтін қайтарады. Аталған 2508 шығарылымы ендірілім моделі немесе өздігінен толыққанды репозиторий агенті болудан гөрі әзірлеушінің ағымдағы өңдеу контекстіне бағытталған.
Кодты толықтыру және 2508 жаңартуы
Өндіруші Codestral моделін код ортасындағы бос орынды толтыруға және бірнеше жолды өңдеуге арнайды. Шығарылым сипаттамасында шамадан тыс генерацияны азайтуды қамтитын толықтыру әрекетінің жақсаруы, сондай-ақ чат режимінде нұсқауларды орындау мен код тапсырмаларының жақсаруы аталады. Бұлар осы Codestral шығарылымындағы өзгерістер; айналасындағы кодтау құралдары жүйесінің ақпарат іздеу және автономды агент мүмкіндіктері бөлек аталған компоненттерге тиесілі.
Толықтыру тапсырмасында қатысты функция сигнатурасын, жарияланымдарды және шақыру контекстін меңзер орнымен бірге сақтаңыз. Қажетті нәтиже тек жетіспейтін код па, әлде толық түзетілген функция ма — соны көрсетіңіз. Редакторға тән сұрау қолданыстағы қайтару түрін сақтайтын, қайталанатын мәндерді қалдыратын және шақырушының кірісін өзгертпейтін цикл денесін сұрауы мүмкін. Сонда нәтижені енгізетін нақты орын мен анықталған әрекет болады.
Код ортасындағы бос орынды толтыруға дайындау
Өндірушінің FIM интерфейсінде промпт толықтырылатын мәтінді немесе кодты береді, ал міндетті емес суффикс бос орыннан кейінгі материалды береді. Екеуі де берілсе, модель олардың арасын толтырады. Суффикс болмаса, промпттан әрі жалғастырады. Бұл код өзгерісі мен түсіндірмені сұрайтын қалыпты әңгімелесу сұрауынан өзгеше; әр дайындау тәсілі бөлек шығыс шартын анықтайды.
Бос орынды толтыруға пайдалы кіріс функцияның басын, енгізілетін бөліктен кейін тұруға тиіс кодты және қатысты түр не көмекші функция анықтамаларын қамтиды. Қайтарылған мәтін қолданыстағы үзіндіге үйлесуі үшін шегіністер мен бөлгіштерді сақтаңыз. Тапсырмаға тек жетіспейтін дене қажет болса, бүкіл файлды қайта жазуды емес, сол денені сұраңыз. Бөлек чат сұрағы толықтырылған үзінді талапқа неліктен сай екенін түсіндіре алады.
Ресми FIM құжаттамасы шығыс токендерінің бюджетін белгілеуге мүмкіндік береді және промпт пен осы бюджет модельдің контекст шегінде қалуын талап етеді. Онда тоқтату тізбектері мен жасалған мазмұнды ағынмен беру де құжатталған. Нәтиже кодтағы бос орынға дәл келуге тиіс болса, толықтыру үдерісін, ал тапсырма код пен түсіндірмені бірге сұраса, әңгімелесу үдерісін таңдаңыз.
Контекст және қосымша мүмкіндіктер
Модель бетінде 128 мың токендік контекст терезесі көрсетілген. Контексті көзделген өзгерісті анықтайтын бастапқы код пен жарияланымдарды сақтауға пайдаланып, нақты өңдеу тапсырмасын айқын қалдырыңыз. Қатені түзету сұрауы үшін қатысты функцияны, нақты сәтсіз кірісті, күтілетін нәтижені және қатені немесе байқалған әрекетті беріңіз. Ұсынылған түзетуді оның түсіндірмесі мен мысалдарынан бөлек сұраңыз.
Бетте чат пен FIM мүмкіндіктерімен қатар құрылымдалған шығыс, функция шақыруы, болжамды шығыс, құжат бойынша сұрақтарға жауап беру, жауап префикстері және пакеттік өңдеу де тізілген. Құрылымдалған код шолуы үшін қатысты символ, байқалған сәйкессіздік, ұсынылған өзгеріс және әлі нақтылауды қажет ететін жорамал сияқты өрістерді анықтаңыз. Mistral компаниясының құрылымдалған шығыс нұсқаулығы JSON режимін арнайы схемадан ажыратады; қажетті JSON пішімі промптта көрсетіледі.
Болжамды шығыс жауаптың елеулі бөлігі алдын ала белгілі мазмұнға арналған. Оны құжатты немесе код файлын шектеулі өзгеріспен қайта жасап, қалған мазмұнын сақтау кезінде пайдалануға болады. Нақты өзгерісті және сақталуға тиіс материалды көрсетіңіз. Ал жауап префиксі генерация жалғасатын белгілі бастауды береді; ол белгілі толық мәтіннен де, FIM суффиксінен де бөлек.
Құжаттама туралы сұрақта тіл моделі талдауына дейін мәтін мен құрылымды OCR арқылы дайындау үшін өндірушінің құжат өңдеу үдерісін пайдалануға болады. Мәтін түрінде бар бағдарламалау материалы үшін тиісті құжаттама үзінділерін беріп, іске асыруға қай шарт қолданылатынын сұраңыз. Жасалған код немесе түсіндірме берілген спецификациямен байланысын сақтауы үшін әр алынған талапты бастапқы бөлімімен байланыстырыңыз.
Құралдар және практикалық нәтижелер
Функция шақыруы қолданбаға сипатталған операциялар мен олардың параметрлерін беруге мүмкіндік береді. Модель шақыруды дайындайды, қолданба оны орындайды, ал қайтарылған нәтиже келесі жауапқа контекст болады. Код көмекшісі осы цикл арқылы іздеу немесе есептеу нәтижесін ала алады, бірақ ұсынылған өзгерісті құрастыру, тестілеу немесе қолдану үшін бәрібір сыртқы әзірлеу ортасы қажет.
Практикалық түзету үшін үйлесімді қалуға тиіс ашық интерфейсті анықтап, түзетілген үзіндіні, қысқа түсіндірмені және күтілетін шығыстары бар кіріс мысалдарын сұраңыз. Жасалатын функция үшін қабылданатын түрлер мен шеткі жағдайларды көрсетіңіз. Түсіндірме үшін орындалуын қадағалайтын кірісті беріңіз: сонда жауап нақты орындалу жолын қайтарылған мәнмен байланыстырады.
Codestral мәтін шығарады. Ол Codestral Embed моделінен код іздеу векторларын, Devstral моделінен репозиторийді автоматтандыруды немесе визуалды модельден сурет жасауды иеленбейді. Дәл 2508 модель бетінде басқа шығарылымнан алуға болатын параметр саны немесе тәуелсіз ең жоғары жауап ұзындығы жарияланбаған. Қайталанатын редактор не чат үдерісін дайындағанда аталған шығарылымды, кодтау контекстін және қажетті артефактіні сақтаңыз.
Практикалық тапсырма
Практикалық тапсырма
Ағылшын тіліндегі техникалық мысал
Fill a nonmutating loop body
Complete only the missing body in this Python function: 'def doubled(values):
result = []
# missing body
return result'. It must append twice every input value, preserve order and duplicate values, and leave values unchanged. Return the indented insertion followed by assert tests for [2, 2, -1] and []. This is a chat completion request, not a FIM transport request.Күтілетін нәтиже
Only the missing indented loop body, then two tests verifying [4, 4, -2] and an empty result.Нәтижені тексеру
The insertion fits before return result and never deduplicates or mutates the input.Ailoot Ultra · OpenAI чаты POST /v1/chat/completions mistralai/codestral-2508
mistralai/codestral-2508Бастау
Codestral 2508 — Mistral AI компаниясының код жасауға және контексті ескеріп толықтыруға арналған мәтін моделі. Ол редактордағы жиі тапсырмаларға, соның ішінде код ортасындағы бос орынды толтыруға және бірнеше жолды өңдеуге оңтайландырылған; өндіруші көрсеткен 128 мың токендік контексті және құжатталған чат, құрылымдалған шығыс пен құрал мүмкіндіктерін ұсынады.
- Қабылданатын кіріс деректері
- Мәтін
- Нәтижелер
- Мәтін
Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер
Ailoot Ultra · OpenAI чаты POST /v1/chat/completions
- Кіріс
text- Шығыс
text- Шығыс пішімі
- json немесе SSE
| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
|---|---|---|---|---|
Өрісmodel | Түріstring | ТалапМіндетті | Мәндер мен шектеулер mistralai/codestral-2508 | Әдепкі— |
Өрісmessages | Түріmessage[] | ТалапМіндетті | Мәндер мен шектеулер Элементтердің ең аз саны: 1 | Әдепкі— |
Өрісmessages[].role | Түріstring | ТалапМіндетті | Мәндер мен шектеулер Мысалдар: system, user, assistant, tool, function Шарттар: Бұл рөлдер бастапқы кодтағы үйлесімділік түрлерінде айқын көрсетілген; рөлдердің нақты жиыны әр модельге байланысты. Модельге байланысты | Әдепкі— |
Өрісmessages[].content | Түріstring|content_part[]|null | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
Өрісmessages[].tool_calls | Түріtool_call[] | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
Өрісmessages[].tool_call_id | Түріstring | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: role=tool; нақты қайтарылған ID мәнін пайдаланыңыз | Әдепкі— |
Өрісmessages[].name | Түріstring | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
Өрісmessages[].reasoning_content | Түріstring | ТалапМіндетті емес | Мәндер мен шектеулер Мына жағдайда қолданылады: Модель пайымдауды пайдаланса, нақты қайтарылған пайымдауды қайта жіберіңіз | Әдепкі— |
Өрісmessages[].reasoning_details | Түріobject|array | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
Өрісmax_tokens | Түріinteger | ТалапМіндетті емес | Мәндер мен шектеулер Ең азы: 1 Модельге байланысты | Әдепкі— |
Өрісmax_completion_tokens | Түріinteger | ТалапМіндетті емес | Мәндер мен шектеулер Ең азы: 1 Модельге байланысты | Әдепкі— |
Өрісstream | Түріboolean | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкіfalse |
Өрісstream_options.include_usage | Түріboolean | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
Өрісtemperature | Түріnumber | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
Өрісtop_p | Түріnumber | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
Өрісstop | Түріstring|string[] | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
Өрісtools | Түріfunction_tool[] | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
Өрісtools[].type | Түріstring | ТалапМіндетті емес | Мәндер мен шектеулер function Модельге байланысты | Әдепкі— |
Өрісtools[].function.name | Түріstring | ТалапМіндетті | Мәндер мен шектеулер Мына жағдайда қолданылады: функция құралы берілген | Әдепкі— |
Өрісtools[].function.description | Түріstring | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
Өрісtools[].function.parameters | ТүріJSON_schema | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкі— |
Өрісtool_choice | Түріstring|object | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
Өрісparallel_tool_calls | Түріboolean | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
Өрісresponse_format | Түріobject | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
Өрісreasoning_effort | Түріstring | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
Өрісreasoning | Түріobject | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
Өрісservice_tier | Түріstring | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
Өрісinstructions | Түріstring | ТалапМіндетті емес | Мәндер мен шектеулер Үйлесімділік өрісі | Әдепкі— |
Өрісfunctions | Түріfunction[] | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
Өрісfunction_call | Түріstring|object | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
Өрісprompt_cache_options | Түріobject | ТалапМіндетті емес | Мәндер мен шектеулер Модельге байланысты | Әдепкі— |
Өрісmodalities | Түріstring[] | ТалапМіндетті емес | Мәндер мен шектеулер text | Әдепкі— |
Өрісprovider | Түріobject | ТалапМіндетті емес | Мәндер мен шектеулер Шарттар: Осы Ultra мәтіндік бағытында provider.options қабылданбайды | Әдепкі— |
Өрісcache_control.ttl | Түріstring | ТалапМіндетті емес | Мәндер мен шектеулер Шарттар: Сұрау кэшінің нақты орындарында 1h қабылданбайды | Әдепкі— |
Кіріс материалдарының үйлесімдері
Мәтін · UTF8 мәтіні
messages[].content
Әдіс параметрлері мен өмірлік циклі
| Параметр | Параметр талаптары |
|---|---|
Параметрcontent_type | Параметр талаптарыapplication/json |
Параметрrequired | Параметр талаптарыmodel, messages |
Параметрmaterial_types | Параметр талаптарыtext |
Параметрmessages | Параметр талаптарыrole/content құрылымы бар хабарламалар жиымы |
Параметрfile_material | Параметр талаптарынақты UTF-8 құжаты сөзбе-сөз мәтін ретінде енгізіледі; файл ID-і болжанбайды |
Параметрoptional_controls | Параметр талаптарыstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Параметрcontrol_scope | Параметр талаптарымодельге байланысты; пайдаланушының функция құралдары қызмет жағында орындалатын құралдардан өзгеше |
Параметрoutput_modalities | Параметр талаптарыtext |
Параметрhosted_operations | Параметр талаптарыfalse |
Параметрmultimodal_input_binding | Параметр талаптарыnull |
Өмірлік цикл: synchronous_or_streamed
Модельдің дәл ID мәнін messages деректерімен бірге жіберіңіз.
Контекст ұзындығы шығыстың жоғарғы шегі емес.
Мәтіндік файл сөзбе-сөз мәтінді бере алады; кіріс суреттері, аудио және файл нысандары дәл байланыстыруды қажет етеді.
Тарифтер
Тариф анықтамасы сұрау мүмкіндіктерін қоспайды. Қолдау көрсетілетін параметрлер таңдалған әдісте берілген.
- Жылдам режим
- Стандартты тариф Жылдам режим таңдалғанда
- Икемді режим
- Стандартты тариф flex режимі таңдалғанда
- Ой қорытудың ең жоғары деңгейі
- Стандартты тариф Ой қорыту деңгейі ең жоғары болып, default түзетуі қолданылғанда
Ailoot мөлшерлемелері
Баптаулар бойынша бағалар
Әр төлемді көрсетілген шарттармен салыстырыңыз. Балама баптаулардың әр жиыны үшін бір мөлшерлемені қолданыңыз.
| Баптау | Мөлшерлемелер кестесі | Контекст токендерінің саны мынадан көп | Контекст токендерінің саны мынадан аспайды, шегі кіреді | Төлем |
|---|---|---|---|---|
| БаптауТокендердің базалық тарифтері | Мөлшерлемелер кестесіНегізгі мөлшерлеме | Контекст токендерінің саны мынадан көп— | Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқ | Төлем Кіріс · Кіріс токендері $0.0006 / 1K токен Шығыс · Шығыс токендері $0.0018 / 1K токен Кіріс · Кэшті оқу $0.00006 / 1K токен Кіріс · Кэшке жазу — / 1K токен Кіріс · Кэшке жазу, 1 сағ — / 1K токен |
| БаптауСұрау ұзындығының 1-деңгейі | Мөлшерлемелер кестесі— | Контекст токендерінің саны мынадан көп0 | Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқ | Төлем Кіріс · Кіріс токендері $0.0006 / 1K токен Шығыс · Шығыс токендері $0.0018 / 1K токен Кіріс · Кэшті оқу $0.00006 / 1K токен Кіріс · Кэшке жазу — / 1K токен Кіріс · Кэшке жазу, 1 сағ — / 1K токен |
Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. Резервтеу мен төлемді есептеу тәртібі →
Сұрау мысалдары
Ailoot Ultra · OpenAI чаты
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "mistralai/codestral-2508", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os
if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='mistralai/codestral-2508',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path
def save_result(data, stem="result"):
# Keep every field, including usage, IDs, reasoning and tool requests.
Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(data, ensure_ascii=False, indent=2))
def save_blob(encoded, suffix, label):
raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
file = Path(stem + "-" + label + "." + ext)
file.write_bytes(raw)
print("Saved", file)
for index, block in enumerate(data.get("content") or []):
print("Content", index, json.dumps(block, ensure_ascii=False))
for choice in data.get("choices") or []:
print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
for index, item in enumerate(data.get("output") or []):
print("Output", index, json.dumps(item, ensure_ascii=False))
if item.get("type") == "image_generation_call" and item.get("result"):
save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
for ci, candidate in enumerate(data.get("candidates") or []):
for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
blob = part.get("inlineData") or part.get("inline_data")
if blob and blob.get("data"):
mime = blob.get("mimeType") or blob.get("mime_type")
suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))
save_result(result.to_dict(mode="json"))
from openai import OpenAI
import os
from pathlib import Path
if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path
def save_result(data, stem="result"):
# Keep every field, including usage, IDs, reasoning and tool requests.
Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(data, ensure_ascii=False, indent=2))
def save_blob(encoded, suffix, label):
raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
file = Path(stem + "-" + label + "." + ext)
file.write_bytes(raw)
print("Saved", file)
for index, block in enumerate(data.get("content") or []):
print("Content", index, json.dumps(block, ensure_ascii=False))
for choice in data.get("choices") or []:
print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
for index, item in enumerate(data.get("output") or []):
print("Output", index, json.dumps(item, ensure_ascii=False))
if item.get("type") == "image_generation_call" and item.get("result"):
save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
for ci, candidate in enumerate(data.get("candidates") or []):
for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
blob = part.get("inlineData") or part.get("inline_data")
if blob and blob.get("data"):
mime = blob.get("mimeType") or blob.get("mime_type")
suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))
with client.chat.completions.stream(model='mistralai/codestral-2508',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
for event in stream:
payload=event.to_dict(mode="json")
log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
print(json.dumps(payload,ensure_ascii=False))
final=stream.get_final_completion()
save_result(final.to_dict(mode="json"),"stream-result")
Нәтижелерді алу және сақтау
Ailoot Ultra · OpenAI чаты
json немесе SSE
Барлық дайын нәтижені сақтау
Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.
Әр жауап нұсқасын оның мазмұнымен, құрал шақыруларымен және пайымдауымен бірге сақтаңыз. SSE өзгерістерін жауап нұсқасы мен құрал индексі бойынша жинап, соңғы аяқталу себебі мен пайдалану деректерін сақтаңыз.
Бастапқы жауапты тексеру қажет болса
Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.
Жауап өрістері
| Өріс | Түрі |
|---|---|
Өрісchoices[].index | Түріinteger |
Өрісchoices[].message.content | Түріstring|null |
Өрісchoices[].message.tool_calls | Түріtool_call[] |
Өрісchoices[].message.reasoning_content | Түріstring |
Өрісchoices[].message.reasoning_details | Түріobject|array |
Өрісchoices[].finish_reason | Түріstring|null |
Өрісusage | Түріobject |
Қателер және келесі қадамдар
| Жауап | Шарт | Келесі қадам |
|---|---|---|
Жауап400 · invalid_request_error | ШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате | Келесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз. |
Балама атаулар
Модельдердің балама атаулары
Ailoot Ultra mistralai/codestral-2508
Әдіс жолдарының балама атаулары
Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.
Шақыруға арналған байланысты ID
Ailoot Ultra · Anthropic хабарламалары POST /v1/messages mistralai/codestral-2508
mistralai/codestral-2508Бастау
Codestral 2508 — Mistral AI компаниясының код жасауға және контексті ескеріп толықтыруға арналған мәтін моделі. Ол редактордағы жиі тапсырмаларға, соның ішінде код ортасындағы бос орынды толтыруға және бірнеше жолды өңдеуге оңтайландырылған; өндіруші көрсеткен 128 мың токендік контексті және құжатталған чат, құрылымдалған шығыс пен құрал мүмкіндіктерін ұсынады.
- Қабылданатын кіріс деректері
- Мәтін
- Нәтижелер
- json · sse
Ailoot жүйесінде қолжетімді · кіріс деректері мен әдістер
Ailoot Ultra · Anthropic хабарламалары POST /v1/messages
- Кіріс
text- Шығыс
json,sse- Шығыс пішімі
- JSON немесе SSE
| Өріс | Түрі | Талап | Мәндер мен шектеулер | Әдепкі |
|---|---|---|---|---|
Өрісmodel | Түріstring | ТалапМіндетті | Мәндер мен шектеулер mistralai/codestral-2508 | Әдепкі— |
Өрісmessages | Түріmessage[] | ТалапМіндетті | Мәндер мен шектеулер | Әдепкі— |
Өрісmessages[].role | Түріstring | ТалапМіндетті | Мәндер мен шектеулер user, assistant | Әдепкі— |
Өрісmessages[].content | Түріstring | ТалапМіндетті | Мәндер мен шектеулер | Әдепкі— |
Өрісmax_tokens | Түріinteger | ТалапМіндетті | Мәндер мен шектеулер | Әдепкі— |
Өрісstream | Түріboolean | ТалапМіндетті емес | Мәндер мен шектеулер | Әдепкіfalse |
Кіріс материалдарының үйлесімдері
Мәтін · UTF-8 мәтіні
messages[].content жолы
Әдіс параметрлері мен өмірлік циклі
| Параметр | Параметр талаптары |
|---|---|
Параметрcontent_type | Параметр талаптарыapplication/json |
Параметрrequired | Параметр талаптарыmodel, messages, max_tokens |
Параметрoptional_controls | Параметр талаптарыstream |
Параметрmaterial_types | Параметр талаптарыtext |
Параметрtext_file_material | Параметр талаптарыНақты UTF-8 құжатын оқып, оның мәтінін көрсетілген кіріс жолына немесе хабарлама мазмұнының жолына қойыңыз. |
Өмірлік цикл: synchronous_or_streamed
Тарифтер
Тариф анықтамасы сұрау мүмкіндіктерін қоспайды. Қолдау көрсетілетін параметрлер таңдалған әдісте берілген.
- Жылдам режим
- Стандартты тариф Жылдам режим таңдалғанда
- Икемді режим
- Стандартты тариф flex режимі таңдалғанда
- Ой қорытудың ең жоғары деңгейі
- Стандартты тариф Ой қорыту деңгейі ең жоғары болып, default түзетуі қолданылғанда
Ailoot мөлшерлемелері
Баптаулар бойынша бағалар
Әр төлемді көрсетілген шарттармен салыстырыңыз. Балама баптаулардың әр жиыны үшін бір мөлшерлемені қолданыңыз.
| Баптау | Мөлшерлемелер кестесі | Контекст токендерінің саны мынадан көп | Контекст токендерінің саны мынадан аспайды, шегі кіреді | Төлем |
|---|---|---|---|---|
| БаптауТокендердің базалық тарифтері | Мөлшерлемелер кестесіНегізгі мөлшерлеме | Контекст токендерінің саны мынадан көп— | Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқ | Төлем Кіріс · Кіріс токендері $0.0006 / 1K токен Шығыс · Шығыс токендері $0.0018 / 1K токен Кіріс · Кэшті оқу $0.00006 / 1K токен Кіріс · Кэшке жазу — / 1K токен Кіріс · Кэшке жазу, 1 сағ — / 1K токен |
| БаптауСұрау ұзындығының 1-деңгейі | Мөлшерлемелер кестесі— | Контекст токендерінің саны мынадан көп0 | Контекст токендерінің саны мынадан аспайды, шегі кіредіЖоғарғы шегі жоқ | Төлем Кіріс · Кіріс токендері $0.0006 / 1K токен Шығыс · Шығыс токендері $0.0018 / 1K токен Кіріс · Кэшті оқу $0.00006 / 1K токен Кіріс · Кэшке жазу — / 1K токен Кіріс · Кэшке жазу, 1 сағ — / 1K токен |
Ailoot сұрау алдында болжамды соманы резервтейді. Нәтижеден кейін өлшенген пайдалану көлемі бойынша қорытынды төлемді шегереді. Ағындық жауап үшін төлем соңғы пайдалану жазбасы негізінде шегеріледі. Резервтеу мен төлемді есептеу тәртібі →
Сұрау мысалдары
Ailoot Ultra · Anthropic хабарламалары
{
"model": "mistralai/codestral-2508",
"max_tokens": 128,
"messages": [
{
"role": "user",
"content": "Summarize the incident report."
}
],
"stream": false
}set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path
source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
raise SystemExit('Choose a document containing text')
payload = {'model': 'mistralai/codestral-2508', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
-H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path
source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
raise SystemExit('Choose a document containing text')
payload = {'model': 'mistralai/codestral-2508', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError
api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
with urlopen(request, timeout=120) as response:
raw = response.read()
Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
Path('result.json').write_bytes(error.read())
Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path
result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
Нәтижелерді алу және сақтау
Ailoot Ultra · Anthropic хабарламалары
JSON немесе SSE
Барлық дайын нәтижені сақтау
Қайтарылған әр толық жауапты, файлды және мазмұн бөлігін сақтаңыз.
Барлық мазмұн блоктарын, пайымдау қолтаңбаларын және құрал қолданудың нақты ID мәндерін сақтаңыз. SSE блоктарының барлық өзгерістерін жинаңыз; алғашқы мәтіндік блок толық шығыс емес.
Бастапқы жауапты тексеру қажет болса
Сұрау мен жауаптың ID мәндерін және тақырыптарын сақтаңыз. Мәтіндік тапсырманы алуға арналған ортақ URL берілмеген.
Жауап өрістері
| Өріс | Түрі |
|---|---|
Өрісid | Түріstring |
Өрісmodel | Түріstring |
Өрісcontent[] | Түріtext|thinking|tool_use|other content block |
Өрісstop_reason | Түріstring|null |
Өрісusage | Түріobject |
Қателер және келесі қадамдар
| Жауап | Шарт | Келесі қадам |
|---|---|---|
Жауап400 · invalid_request_error | ШартМіндетті өрістер, материалды ұсыну тәсілі немесе параметр мәні қате | Келесі қадамЖаңадан жасау сұрауын жібермес бұрын көрсетілген өрістерді түзетіңіз. |
Балама атаулар
Модельдердің балама атаулары
Ailoot Ultra mistralai/codestral-2508
Әдіс жолдарының балама атаулары
Жоғарыда көрсетілген әдіс жолдарын пайдаланыңыз.
Шақыруға арналған байланысты ID
FAQ · Mistral: Codestral 2508
- Қандай кіріс деректері мен нәтижелер қолжетімді?
POST /v1/chat/completions·mistralai/codestral-2508:text→textPOST /v1/messages·mistralai/codestral-2508:text→json,sse- Сұрау қандай өрістерді пайдаланады?
POST /v1/chat/completions·mistralai/codestral-2508:model,messages,stream,modalities,providerPOST /v1/messages·mistralai/codestral-2508:model,messages,max_tokens,stream- Қандай шектеулер қолданылады?
POST /v1/chat/completions·mistralai/codestral-2508:messages.min_items:1