Mistral: Codestral 2508 (batch)
Codestral 2508 – Mistral AI teksto modelis kodui generuoti ir kontekstą atitinkančiam užbaigimui. Jis optimizuotas dažnoms redaktoriaus užduotims, įskaitant užpildymą viduryje ir kelių eilučių redagavimą, su gamintojo nurodytu 128 tūkst. žetonų kontekstu bei dokumentuotomis pokalbio, struktūruotos išvesties ir įrankių funkcijomis.
Apie modelį
Šis aprašas apima modelio galimybes. Pasirinktam metodui Ailoot prieinamos įvestys, išvestys ir parinktys nurodytos toliau.
Codestral 2508 – Mistral AI programavimo modelis dažnoms užbaigimo ir generavimo užduotims, kurioms svarbi maža delsa. Jis priima pirminį kodą ir tekstinius reikalavimus bei grąžina tekstą, kuriame gali būti įgyvendinimas, užbaigimas, pataisa ar paaiškinimas. Įvardyta 2508 versija sutelkta į dabartinį kūrėjo redagavimo kontekstą; pati savaime ji nėra nei įterpinių modelis, nei visavertis repozitorijos agentas.
Kodo užbaigimas ir 2508 atnaujinimas
Gamintojas Codestral skiria užpildymui viduryje ir kelių eilučių redagavimui. Laidos apraše minimi užbaigimo elgsenos patobulinimai, įskaitant nekontroliuojamo generavimo mažinimą, taip pat geresnis instrukcijų laikymasis ir kodo užduotys pokalbio režimu. Tai šios Codestral versijos pakeitimai; aplinkinės programavimo sistemos informacijos paieškos ir autonominio agento galimybės priklauso atskirai įvardytiems komponentams.
Užbaigimo užduotyje kartu su žymeklio vieta išsaugokite aktualų funkcijos parašą, deklaracijas ir kvietimo kontekstą. Nurodykite, ar pageidaujamas rezultatas – tik trūkstamas kodas, ar visa pataisyta funkcija. Redaktoriaus tipo užklausoje galima prašyti ciklo kūno, išsaugančio esamą grąžinimo tipą, pasikartojančias reikšmes ir nekeičiančio kvietėjo įvesties. Tada rezultatas turi konkretų įterpimo tašką ir apibrėžtą veikimą.
Pasiruošimas užpildymui viduryje
Gamintojo FIM sąsajoje užklausa pateikia tekstą ar kodą, kurį reikia užbaigti, o pasirenkama priesaga pateikia medžiagą po tarpo. Pateikus abu, modelis užpildo tarpą tarp jų. Be priesagos jis tęsia užklausą. Tai skiriasi nuo įprastos pokalbio užklausos, prašančios kodo pakeitimo ir paaiškinimo; kiekvienas paruošimo būdas apibrėžia kitokią išvesties sutartį.
Naudinga tarpo užpildymo įvestis apima funkcijos pradžią, kodą, kuris turi eiti po įterpimo, ir aktualius tipų ar pagalbinių funkcijų apibrėžimus. Išsaugokite įtraukas ir skirtukus, kad grąžintą tekstą būtų galima įterpti į esamą fragmentą. Jei užduočiai reikia tik trūkstamo kūno, prašykite jo, o ne viso failo perrašymo. Atskiras pokalbio klausimas gali paaiškinti, kodėl užbaigtas fragmentas atitinka reikalavimą.
Oficialioje FIM dokumentacijoje leidžiamas išvesties žetonų biudžetas ir reikalaujama, kad užklausa kartu su šiuo biudžetu tilptų į modelio kontekstą. Joje taip pat dokumentuotos stabdymo sekos ir generuojamo turinio srautinis perdavimas. Rinkitės užbaigimo procesą, kai rezultatas turi tikti kodo tarpui, ir pokalbio procesą, kai užduotis prašo kodo kartu su paaiškinimu.
Kontekstas ir pagalbinės funkcijos
Modelio puslapyje nurodytas 128 tūkst. žetonų konteksto langas. Kontekste išlaikykite kodą ir deklaracijas, lemiančius numatytą pakeitimą, aiškiai apibrėždami pačią redagavimo užduotį. Klaidos taisymo užklausoje pateikite paveiktą funkciją, konkrečią nesėkmingą įvestį, laukiamą rezultatą ir klaidą ar stebimą elgseną. Siūlomos pataisos prašykite atskirai nuo jos paaiškinimo ir pavyzdžių.
Puslapyje kartu su pokalbio ir FIM galimybėmis taip pat nurodytos struktūruotos išvestys, funkcijų kvietimas, numatomos išvestys, atsakymas į klausimus apie dokumentus, atsakymo prefiksai ir paketinis apdorojimas. Struktūruotam kodo peržiūros rezultatui apibrėžkite tokius laukus kaip paveiktas simbolis, stebimas neatitikimas, siūlomas pakeitimas ir dar tikslintina prielaida. Mistral struktūruotos išvesties gairės skiria JSON režimą nuo pasirinktinės schemos, o pageidaujamas JSON formatas nurodomas užklausoje.
Numatomos išvestys skirtos turiniui, kurio didelė atsakymo dalis jau žinoma. Jas galima naudoti iš naujo generuojant dokumentą ar kodo failą su ribotu pakeitimu ir išsaugant likusį turinį. Nurodykite tikslų pakeitimą ir medžiagą, kuri turi likti. Atsakymo prefiksas pateikia žinomą pradžią, nuo kurios tęsiamas generavimas; jis skiriasi ir nuo viso žinomo turinio, ir nuo FIM priesagos.
Klausimui apie dokumentaciją galima naudoti gamintojo dokumentų apdorojimo procesą, kad prieš kalbos modelio analizę OCR paruoštų tekstą ir struktūrą. Kai programavimo medžiaga jau prieinama tekstu, pateikite aktualias dokumentacijos ištraukas ir paklauskite, kuri sąlyga lemia įgyvendinimą. Kiekvieną išgautą reikalavimą susiekite su jo šaltinio skyriumi, kad sugeneruotas kodas ar paaiškinimas liktų susieti su pateikta specifikacija.
Įrankiai ir praktiniai rezultatai
Funkcijų kvietimas leidžia programai pateikti aprašytas operacijas ir jų parametrus. Modelis paruošia kvietimą, programa jį vykdo, o grąžintas rezultatas tampa kito atsakymo kontekstu. Kodo asistentas per šį ciklą gali gauti paieškos ar skaičiavimo rezultatą, tačiau siūlomo pakeitimo kompiliavimui, testavimui ar pritaikymui vis tiek reikia aplinkinės kūrimo aplinkos.
Praktinei pataisai apibrėžkite viešąją sąsają, kuri turi išlikti suderinama, ir prašykite pataisyto fragmento, glausto paaiškinimo bei įvesčių pavyzdžių su laukiamomis išvestimis. Generuojamai funkcijai nurodykite priimamus tipus ir ribines sąlygas. Paaiškinimui pateikite įvestį, kurios vykdymą reikia atsekti, kad atsakymas susietų konkretų vykdymo kelią su grąžinta reikšme.
Codestral generuoja tekstą. Jis nepaveldi kodo paieškos vektorių iš Codestral Embed, repozitorijos automatizavimo iš Devstral ar vaizdų generavimo iš vaizdinio modelio. Tiksliame 2508 modelio puslapyje neskelbiamas parametrų skaičius ar nepriklausomas didžiausias atsakymo ilgis, kurį būtų galima perimti iš kitos laidos. Rengdami pakartojamą redaktoriaus ar pokalbio darbo procesą, išsaugokite įvardytą versiją, programavimo kontekstą ir reikiamą artefaktą.
Ailoot Ultra · Paketinis apdorojimas POST /v1/batches mistralai/codestral-2508:batch
mistralai/codestral-2508:batch
mistralai/codestral-2508:batchPradžia
Codestral 2508 – Mistral AI teksto modelis kodui generuoti ir kontekstą atitinkančiam užbaigimui. Jis optimizuotas dažnoms redaktoriaus užduotims, įskaitant užpildymą viduryje ir kelių eilučių redagavimą, su gamintojo nurodytu 128 tūkst. žetonų kontekstu bei dokumentuotomis pokalbio, struktūruotos išvesties ir įrankių funkcijomis.
- Leidžiamos įvestys
- Tekstas
- Rezultatai
- Tekstas
Prieinama Ailoot · įvestys ir metodai
Ailoot Ultra · Paketinis apdorojimas POST /v1/batches
- Įvestis
text- Išvestis
text- Išvesties formatas
- tiesiogiai įterptas results[].response.body JSON
| Laukas | Tipas | Reikalavimas | Reikšmės ir ribos | Numatyta |
|---|---|---|---|---|
Laukasendpoint | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos /v1/chat/completions | Numatyta— |
Laukasmodel | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos mistralai/codestral-2508:batch | Numatyta— |
Laukasrequests | Tipasbatch_item[] | ReikalavimasPrivaloma | Reikšmės ir ribos Mažiausias elementų skaičius: 1 | Numatyta— |
Laukasrequests[].custom_id | Tipasstring | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
Laukasrequests[].body.messages | Tipasmessage[] | ReikalavimasPrivaloma | Reikšmės ir ribos | Numatyta— |
Laukascompletion_window | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos 24h | Numatyta— |
Laukasprovider | Tipasobject|null | ReikalavimasNeprivaloma | Reikšmės ir ribos | Numatyta— |
Laukasrequests[].body.model | Tipasstring | ReikalavimasNeprivaloma | Reikšmės ir ribos mistralai/codestral-2508:batch, mistralai/codestral-2508 | Numatyta— |
Laukasprovider.only | Tipasstring[] | ReikalavimasNeprivaloma | Reikšmės ir ribos mistral | Numatyta— |
Laukasprovider.allow_fallbacks | Tipasboolean|null | ReikalavimasNeprivaloma | Reikšmės ir ribos false, null | Numatyta— |
Metodo parametrai ir gyvavimo ciklas
| Parametras | Specifikacija |
|---|---|
Parametrascontent_type | Specifikacijaapplication/json |
Parametrasrequired | Specifikacijaendpoint, model, requests |
Parametrasmaterial_types | Specifikacijatext |
Parametrasrepresentation | Specifikacijatiesiogiai įterptas requests[] masyvas; kiekvienas elementas turi custom_id ir body laukus |
Parametrasrequest_endpoint_profile | Specifikacija/v1/chat/completions |
Parametrasfile_material | SpecifikacijaKlientas gali vietoje perskaityti faktinį UTF-8 JSONL turinį į requests[] masyvą. Įkėlimo purpose, input_file_id ar failo nuoroda nenaudojami. Jei kliento medžiagos nėra arba ji tuščia, parengimas sustabdomas prieš POST. |
Parametrasserialization_order | Specifikacijaendpoint, model, provider (jei pateiktas), completion_window (jei pateiktas), requests pateikite paskiausiai |
Parametrasoptional_controls | Specifikacijaprovider.only, provider.allow_fallbacks, completion_window |
Parametrasschema_scope | SpecifikacijaTekstinių Chat Completions užklausų turiniai dokumentuotoje Batch paketo struktūroje, pateikiamoje pačioje užklausoje. |
Gyvavimo ciklas: asynchronous
GET /v1/batches/{operation_id} · faktinė pradinės kūrimo užklausos atsakymo response.id reikšmė; tas pats naudotojas, raktas ir grupė
Planai
Tarifų informacija neprideda užklausos parinkčių. Palaikomi parametrai nurodyti prie pasirinkto metodo.
- Spartusis režimas
- Nenurodyta Pasirinkus spartųjį režimą
- Flex režimas
- Nenurodyta Pasirinkus flex režimą
- Didžiausios samprotavimo pastangos
- Nenurodyta Kai didžiausioms samprotavimo pastangoms taikomas numatytasis koregavimas (default)
- Išreikštinio podėlio kainodara
- Neįjungta Kai prašoma išreikštinio podėlio
Ailoot įkainiai
Kainos pagal konfigūraciją
Kiekvieną mokestį susiekite su nurodytomis sąlygomis. Kiekvienam alternatyvių konfigūracijų rinkiniui taikykite vieną įkainį.
| Konfigūracija | Įkainių lentelė | Konteksto tokenų daugiau nei | Konteksto tokenų iki imtinai | Mokestis |
|---|---|---|---|---|
| KonfigūracijaBaziniai žetonų įkainiai | Įkainių lentelėBazinis įkainis | Konteksto tokenų daugiau nei— | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai $0.0003 / 1K tokenų Išvestis · Išvesties tokenai $0.0009 / 1K tokenų Įvestis · Talpyklos skaitymas $0.00003 / 1K tokenų Įvestis · Rašymas į talpyklą — / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų |
| KonfigūracijaUžklausos ilgio pakopa 1 | Įkainių lentelė— | Konteksto tokenų daugiau nei0 | Konteksto tokenų iki imtinaiBe viršutinės ribos | Mokestis Įvestis · Įvesties tokenai $0.0003 / 1K tokenų Išvestis · Išvesties tokenai $0.0009 / 1K tokenų Įvestis · Talpyklos skaitymas $0.00003 / 1K tokenų Įvestis · Rašymas į talpyklą — / 1K tokenų Įvestis · Rašymas į talpyklą, 1 val — / 1K tokenų |
Ailoot prieš užklausą rezervuoja numatomą sumą. Gavus rezultatą, galutinis mokestis nuskaitomas pagal išmatuotą naudojimą. Srautinio atsakymo atsiskaitymui naudojamas galutinis naudojimo įrašas. Kaip veikia rezervavimas ir atsiskaitymas →
Užklausų pavyzdžiai
Ailoot Ultra · Paketinis apdorojimas
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json
from pathlib import Path
body=json.loads('{"endpoint":"/v1/chat/completions","model":"mistralai/codestral-2508:batch","requests":[{"custom_id":"req-0001","body":{"messages":[{"role":"user","content":"Hello!"}],"max_tokens":16}}]}')
Path("batch-request.json").write_text(json.dumps(body,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json
import json, os
from pathlib import Path
from urllib.request import Request, urlopen
def prepare_requests(customer_path):
path = Path(customer_path)
if not path.is_file(): raise ValueError("Customer JSONL file is missing")
items = [json.loads(line) for line in path.read_text(encoding="utf-8").splitlines() if line.strip()]
if not items: raise ValueError("Customer JSONL contains no requests")
ids = set()
for item in items:
if set(item) != {"custom_id", "body"}: raise ValueError("Each item needs custom_id and body")
cid = item["custom_id"]
if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError("custom_id must be nonempty and unique")
ids.add(cid)
if not isinstance(item["body"], dict) or not item["body"].get("messages"): raise ValueError("Supply actual text messages")
supplied_model = item["body"].get("model")
if supplied_model is not None and supplied_model not in ['mistralai/codestral-2508:batch', 'mistralai/codestral-2508']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"mistralai/codestral-2508:batch", "requests":items}
if __name__ == "__main__":
material = os.environ.get("AILOOT_BATCH_REQUESTS_JSONL", "")
if not material: raise SystemExit("Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file")
body = prepare_requests(material)
key = os.environ.get("AILOOT_API_KEY", "")
if not key: raise SystemExit("Set AILOOT_API_KEY")
request = Request("https://api.ailoot.ai/v1/batches", data=json.dumps(body, ensure_ascii=False).encode("utf-8"), headers={"Authorization":"Bearer " + key, "Content-Type":"application/json"}, method="POST")
with urlopen(request) as response:
raw = response.read()
Path("batch-create-response.json").write_bytes(raw)
print(raw.decode("utf-8"))
import json
from pathlib import Path
raw = Path("batch-status-response.json").read_bytes()
response = json.loads(raw)
if response.get("status") != "completed":
raise SystemExit("Keep the original operation; read its status without resubmitting")
results = response.get("results")
if not isinstance(results, list) or not results:
raise SystemExit("Preserve the original response; completed results are missing")
Path("batch-results.jsonl").write_text("".join(json.dumps(item, ensure_ascii=False) + "\n" for item in results), encoding="utf-8")
# Preserve batch-status-response.json with aggregate usage and every result/error.
Gauti ir išsaugoti rezultatus
Ailoot Ultra · Paketinis apdorojimas
tiesiogiai įterptas results[].response.body JSON
GET /v1/batches/{operation_id}
Tikrinti užduoties būseną
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
BATCH_OPERATION_ID="$(python3 - <<'PY_ID'
import json
from pathlib import Path
from urllib.parse import quote
response = json.loads(Path("batch-create-response.json").read_text(encoding="utf-8"))
operation = response.get("id")
if not isinstance(operation, str) or not operation: raise SystemExit("No actual original operation ID; preserve the response and do not resubmit")
print(quote(operation, safe=""))
PY_ID
)"
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o batch-status-response.json
Išsaugoti visus baigtus rezultatus
Išsaugokite kiekvieną visą grąžintą atsakymą, failą ir turinio dalį.
Išsaugokite visą pradinės būsenos JSON, kiekvieną rezultatą ir custom_id bei visą atsakymo arba klaidos turinį. Užbaigtus results[] išsaugokite JSONL formatu nieko nefiltruodami.
Jei reikia patikrinti pradinį atsakymą
Išsaugokite pradinį operacijos ID. Atsakyme 503 result_pending_check pateikiama X-Should-Retry:false; niekada pakartotinai neteikite pradinio paketo, kurio baigtis nežinoma.
Atsakymo laukai
| Laukas | Tipas |
|---|---|
Laukasresults[].custom_id | Tipasstring |
Laukasresults[].response.body.choices[].message.content | Tipasstring|null |
Laukasresults[].error | Tipasobject|null |
Laukasusage | Tipasobject|null |
Laukasid | Tipasstring |
Laukasmodel | Tipasstring |
Laukasendpoint | Tipasstring |
Laukasstatus | Tipasstring |
Laukasrequest_counts | Tipasobject |
Laukasresults[].id | Tipasstring |
Laukasresults[].response.status_code | Tipasinteger |
Laukasresults[].response.request_id | Tipasstring |
Klaidos ir tolesni veiksmai
| Atsakymas | Sąlyga | Kitas žingsnis |
|---|---|---|
Atsakymas400 · invalid_request_error | SąlygaNeteisinga dokumentuota tiesiogiai įterpto paketo struktūra, pasikartojantys raktai, netinkama elemento tapatybė arba konfliktas su sukonfigūruotomis modelio galimybėmis. | Kitas žingsnisPrieš bet kokį naują pateikimą pataisykite nurodytus laukus. |
Atsakymas401 · authentication_error | SąlygaNegaliojantis API raktas. | Kitas žingsnisNaudokite leistiną Ailoot raktą. |
Atsakymas403 · permission_error | SąlygaPaketinio apdorojimo grupė neprieinama. | Kitas žingsnisPatikrinkite rakto ir grupės prieigos teises. |
Atsakymas422 · invalid_request_error | SąlygaPaketinis apdorojimas apmokamas iš balanso; kūrimo užklausos su prenumeratos apmokėjimu atmetamos. | Kitas žingsnisNaudokite leistiną grupę, kurios užklausos apmokamos iš balanso. |
Atsakymas422 · price_unavailable | SąlygaNepavyksta apskaičiuoti paketinio apdorojimo įvesties kainos. | Kitas žingsnisIšsaugokite atsakymą; naudokite dokumentuotą šios API šeimos įvestį. |
Atsakymas402 · billing_error | SąlygaPaketiniam apdorojimui reikalingas rezervas neprieinamas. | Kitas žingsnisPrieš teikdami naują užklausą išspręskite užklausos priėmimo problemą. |
Atsakymas503 · price_unavailable | SąlygaPaketinio apdorojimo metodo kaina arba savieji sistemos įkainiai neprieinami. | Kitas žingsnisIšsaugokite atsakymą; nekeiskite kainų kitomis. |
Atsakymas503 · api_error | SąlygaKonkretus tiekėjo maršrutas neprieinamas. | Kitas žingsnisIšsaugokite atsakymą maršrutui pataisyti. |
Atsakymas503 · result_pending_check | SąlygaPradinį rezultatą reikia patikrinti; X-Should-Retry:false. | Kitas žingsnisIšsaugokite pradinę operation_id/id reikšmę ir tikrinkite operacijos būseną; niekada nekartokite pradinės POST užklausos. |
Atsakymas404 · not_found | SąlygaPaketinio apdorojimo būsenos operacijos nėra arba ji susieta su kita tapatybe. | Kitas žingsnisNaudokite tikslią pradinę id reikšmę ir tą patį naudotoją, raktą bei grupę. |
Pseudonimai
Modelių pseudonimai
Ailoot Ultra mistralai/codestral-2508:batch
Metodų kelių pseudonimai
Naudokite aukščiau nurodytus metodų kelius.
Susiję ID iškvietimui
FAQ · Mistral: Codestral 2508 (batch)
- Kokios įvestys ir rezultatai prieinami?
POST /v1/batches·mistralai/codestral-2508:batch:text→text- Kokius laukus naudoja užklausa?
POST /v1/batches·mistralai/codestral-2508:batch:endpoint,model,requests,completion_window,provider- Kokie apribojimai taikomi?
POST /v1/batches·mistralai/codestral-2508:batch:requests.min_items:1