Mistral: Codestral 2508 (batch)
Codestral 2508 je textový model Mistral AI na generovanie kódu a dopĺňanie zohľadňujúce kontext. Je optimalizovaný na časté úlohy v editore vrátane dopĺňania uprostred textu a viacriadkových úprav, s kontextom 128k uvádzaným výrobcom a zdokumentovanými funkciami chatu, štruktúrovaného výstupu a nástrojov.
O modeli
Tento opis pokrýva možnosti modelu. Dostupné vstupy, výstupy a voľby v Ailoot sú uvedené nižšie pre vybranú metódu.
Codestral 2508 je programovací model Mistral AI na časté úlohy dopĺňania a generovania citlivé na latenciu. Prijíma zdrojový kód a textové požiadavky a vracia text, ktorý môže obsahovať implementáciu, doplnenie, opravu alebo vysvetlenie. Pomenovaná edícia 2508 sa sústreďuje na aktuálny kontext úprav vývojára; sama osebe nie je embeddingovým modelom ani úplným agentom repozitára.
Dopĺňanie kódu a aktualizácia 2508
Výrobca určuje Codestral na dopĺňanie uprostred textu a viacriadkové úpravy. Vydanie opisuje zlepšenia správania pri dopĺňaní vrátane obmedzenia nekontrolovaného pokračovania generovania spolu so zlepšeniami dodržiavania pokynov a programovacích úloh v režime chatu. Ide o zmeny tejto edície Codestral; vyhľadávanie a funkcie autonómneho agenta v okolitom programovacom prostredí patria samostatne pomenovaným komponentom.
Pri úlohe dopĺňania zachovajte relevantnú signatúru funkcie, deklarácie a kontext volania spolu s polohou kurzora. Určite, či má byť výsledkom len chýbajúci kód alebo celá upravená funkcia. Požiadavka v štýle editora môže žiadať telo cyklu, ktoré zachová existujúci návratový typ, ponechá duplicitné hodnoty a nezmení vstup volajúceho. Výsledok potom má konkrétne miesto vloženia a definované správanie.
Príprava dopĺňania uprostred textu
V rozhraní FIM výrobcu prompt poskytuje text alebo kód na doplnenie a voliteľný suffix dodáva materiál za medzerou. Ak sú dodané oba, model vyplní priestor medzi nimi. Bez suffixu pokračuje od promptu. To sa líši od bežnej konverzačnej požiadavky na zmenu kódu a vysvetlenie; každý spôsob prípravy určuje inú podobu požadovaného výstupu.
Užitočný vstup na doplnenie medzery obsahuje začiatok funkcie, kód, ktorý musí nasledovať po vložení, a všetky relevantné definície typov či pomocných prvkov. Zachovajte odsadenie a oddeľovače, aby vrátený text mohol zapadnúť do existujúceho fragmentu. Ak úloha potrebuje iba chýbajúce telo, žiadajte toto telo namiesto prepísania celého súboru. Samostatná otázka v chate môže vysvetliť, prečo doplnený fragment spĺňa požiadavku.
Oficiálna dokumentácia FIM umožňuje rozpočet výstupných tokenov a vyžaduje, aby sa prompt spolu s týmto rozpočtom zmestil do kontextu modelu. Dokumentuje aj sekvencie zastavenia a streamovanie generovaného obsahu. Zvoľte postup dopĺňania, keď výsledok musí zapadnúť do medzery v kóde, a konverzačný postup, keď úloha žiada kód spolu s vysvetlením.
Kontext a podporné funkcie
Stránka modelu uvádza kontextové okno 128k. Využite kontext na zachovanie zdrojov a deklarácií, ktoré určujú zamýšľanú zmenu, a samotnú úlohu úpravy ponechajte výslovnú. Pri požiadavke na opravu chyby dodajte dotknutú funkciu, konkrétny zlyhávajúci vstup, očakávaný výsledok a chybu alebo pozorované správanie. Navrhovanú opravu si vyžiadajte oddelene od vysvetlenia a príkladov.
Stránka popri schopnostiach chatu a FIM uvádza aj štruktúrované výstupy, volanie funkcií, predikované výstupy, odpovedanie na otázky o dokumentoch, prefixy odpovedí a dávkové spracovanie. Pri štruktúrovanom výsledku revízie kódu určite polia, ako je dotknutý symbol, pozorovaný nesúlad, navrhovaná zmena a predpoklad, ktorý ešte treba objasniť. Usmernenia Mistral k štruktúrovanému výstupu odlišujú režim JSON od vlastnej schémy, pričom požadovaný formát JSON sa uvádza v prompte.
Predikované výstupy sú určené na obsah, pri ktorom sú veľké časti odpovede už známe. Možno ich použiť pri opätovnom generovaní dokumentu alebo súboru kódu s obmedzenou úpravou pri zachovaní zvyšného obsahu. Určite presnú zmenu a materiál, ktorý musí zostať. Prefix odpovede naopak poskytuje známy začiatok, od ktorého generovanie pokračuje; odlišuje sa od známeho celého tela aj od suffixu FIM.
Otázka k dokumentácii môže využiť postup spracovania dokumentov výrobcu na prípravu textu a štruktúry pomocou OCR pred analýzou jazykovým modelom. Pri programovacích materiáloch, ktoré sú už dostupné ako text, dodajte relevantné pasáže dokumentácie a spýtajte sa, ktorá podmienka riadi implementáciu. Každú extrahovanú požiadavku zachovajte prepojenú so zdrojovou časťou, aby generovaný kód alebo vysvetlenie zostali spojené s dodanou špecifikáciou.
Nástroje a praktické výsledky
Volanie funkcií umožňuje aplikácii poskytovať opísané operácie a ich parametre. Model pripraví volanie, aplikácia ho vykoná a vrátený výsledok sa stane kontextom pre ďalšiu odpoveď. Programovací asistent môže týmto cyklom získať výsledok vyhľadania alebo výpočtu, ale kompilácia, testovanie či použitie navrhovanej zmeny stále vyžadujú okolité vývojové prostredie.
Pri praktickej oprave definujte verejné rozhranie, ktoré musí zostať kompatibilné, a vyžiadajte si upravený fragment, stručné vysvetlenie a príklady vstupov s očakávanými výstupmi. Pri generovanej funkcii uveďte prijímané typy a hraničné podmienky. Pri vysvetlení dodajte vstup na sledovanie, aby odpoveď prepojila konkrétnu cestu vykonania s vrátenou hodnotou.
Codestral vytvára text. Nepreberá vektory na vyhľadávanie kódu z Codestral Embed, automatizáciu repozitára z Devstral ani generovanie obrázkov z vizuálneho modelu. Stránka presného modelu 2508 nezverejňuje počet parametrov ani samostatnú maximálnu dĺžku odpovede, ktorú by bolo možné prevziať z iného vydania. Pri príprave opakovateľného postupu v editore alebo chate zachovajte pomenovanú edíciu, programovací kontext a požadovaný artefakt.
Ailoot Ultra · Dávkové spracovanie POST /v1/batches mistralai/codestral-2508:batch
mistralai/codestral-2508:batch
mistralai/codestral-2508:batchÚvod
Codestral 2508 je textový model Mistral AI na generovanie kódu a dopĺňanie zohľadňujúce kontext. Je optimalizovaný na časté úlohy v editore vrátane dopĺňania uprostred textu a viacriadkových úprav, s kontextom 128k uvádzaným výrobcom a zdokumentovanými funkciami chatu, štruktúrovaného výstupu a nástrojov.
- Povolené vstupy
- Text
- Výsledky
- Text
Dostupné v Ailoot · vstupy a metódy
Ailoot Ultra · Dávkové spracovanie POST /v1/batches
- Vstup
text- Výstup
text- Výstupný formát
- JSON priamo vložený v results[].response.body
| Pole | Typ | Požiadavka | Hodnoty a limity | Predvolené |
|---|---|---|---|---|
Poleendpoint | Typstring | PožiadavkaPovinné | Hodnoty a limity /v1/chat/completions | Predvolené— |
Polemodel | Typstring | PožiadavkaPovinné | Hodnoty a limity mistralai/codestral-2508:batch | Predvolené— |
Polerequests | Typbatch_item[] | PožiadavkaPovinné | Hodnoty a limity Minimálny počet položiek: 1 | Predvolené— |
Polerequests[].custom_id | Typstring | PožiadavkaPovinné | Hodnoty a limity | Predvolené— |
Polerequests[].body.messages | Typmessage[] | PožiadavkaPovinné | Hodnoty a limity | Predvolené— |
Polecompletion_window | Typstring | PožiadavkaVoliteľné | Hodnoty a limity 24h | Predvolené— |
Poleprovider | Typobject|null | PožiadavkaVoliteľné | Hodnoty a limity | Predvolené— |
Polerequests[].body.model | Typstring | PožiadavkaVoliteľné | Hodnoty a limity mistralai/codestral-2508:batch, mistralai/codestral-2508 | Predvolené— |
Poleprovider.only | Typstring[] | PožiadavkaVoliteľné | Hodnoty a limity mistral | Predvolené— |
Poleprovider.allow_fallbacks | Typboolean|null | PožiadavkaVoliteľné | Hodnoty a limity false, null | Predvolené— |
Parametre a životný cyklus metódy
| Parameter | Špecifikácia |
|---|---|
Parametercontent_type | Špecifikáciaapplication/json |
Parameterrequired | Špecifikáciaendpoint, model, requests |
Parametermaterial_types | Špecifikáciatext |
Parameterrepresentation | Špecifikáciapriamo vložené requests[]; každá položka obsahuje custom_id a body |
Parameterrequest_endpoint_profile | Špecifikácia/v1/chat/completions |
Parameterfile_material | ŠpecifikáciaVolajúci môže lokálne načítať skutočný súbor UTF-8 JSONL do requests[]. Nepoužíva sa účel nahrávania, input_file_id ani odkaz na súbor. Chýbajúce alebo prázdne podklady zákazníka zastavia prípravu pred POST. |
Parameterserialization_order | Špecifikáciaendpoint, model, provider (ak je zadaný), completion_window (ak je zadaný), requests na konci |
Parameteroptional_controls | Špecifikáciaprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | ŠpecifikáciaTelá textových požiadaviek Chat Completions v zdokumentovanom obale dávky s priamo vloženými požiadavkami. |
Životný cyklus: asynchronous
GET /v1/batches/{operation_id} · skutočná hodnota response.id z pôvodnej odpovede na vytvorenie; rovnaký používateľ/kľúč/skupina
Cenník
Tarifné údaje nepridávajú možnosti požiadavky. Podporované parametre sú uvedené pri vybranej metóde.
- Rýchly režim
- Neuvedené Keď je zvolený rýchly režim
- Režim Flex
- Neuvedené Keď je zvolený režim flex
- Maximálna úroveň uvažovania
- Neuvedené Keď sa pri maximálnej úrovni uvažovania používa predvolená úprava (default)
- Ceny explicitnej cache
- Nie je zapnuté Keď sa požaduje explicitná cache
Sadzby Ailoot
Ceny podľa konfigurácie
Každý poplatok priraďte k zobrazeným podmienkam. Pre každú skupinu alternatívnych konfigurácií použite jednu sadzbu.
| Konfigurácia | Sadzobník | Počet tokenov kontextu väčší než | Tokeny kontextu, najviac (vrátane hranice) | Poplatok |
|---|---|---|---|---|
| KonfiguráciaZákladné sadzby za tokeny | SadzobníkZákladná sadzba | Počet tokenov kontextu väčší než— | Tokeny kontextu, najviac (vrátane hranice)Bez hornej hranice | Poplatok Vstup · Vstupné tokeny $0.0003 / 1K tokenov Výstup · Výstupné tokeny $0.0009 / 1K tokenov Vstup · Čítanie cache $0.00003 / 1K tokenov Vstup · Zápis do cache — / 1K tokenov Vstup · Zápis do cache, 1 hod — / 1K tokenov |
| KonfiguráciaPásmo dĺžky požiadavky 1 | Sadzobník— | Počet tokenov kontextu väčší než0 | Tokeny kontextu, najviac (vrátane hranice)Bez hornej hranice | Poplatok Vstup · Vstupné tokeny $0.0003 / 1K tokenov Výstup · Výstupné tokeny $0.0009 / 1K tokenov Vstup · Čítanie cache $0.00003 / 1K tokenov Vstup · Zápis do cache — / 1K tokenov Vstup · Zápis do cache, 1 hod — / 1K tokenov |
Ailoot pred požiadavkou rezervuje odhadovanú sumu. Po získaní výsledku vyúčtuje konečný poplatok podľa nameraného využitia. Pri streamovaní sa vyúčtovanie riadi konečným záznamom využitia. Ako funguje rezervácia a vyúčtovanie →
Príklady požiadaviek
Ailoot Ultra · Dávkové spracovanie
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.
Prijať a uložiť výsledky
Ailoot Ultra · Dávkové spracovanie
JSON priamo vložený v results[].response.body
GET /v1/batches/{operation_id}
Skontrolovať stav úlohy
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
Uchovať všetky dokončené výsledky
Uložte každú úplnú vrátenú odpoveď, súbor a časť obsahu.
Uchovajte úplný pôvodný stav vo formáte JSON, každý výsledok/custom_id a úplné telo odpovede alebo chyby. Dokončené results[] uložte ako JSONL bez filtrovania.
Ak treba overiť pôvodnú odpoveď
Uchovajte pôvodné ID operácie. Odpoveď 503 result_pending_check obsahuje X-Should-Retry:false; pôvodnú dávku s neznámym výsledkom nikdy znova neodosielajte.
Polia odpovede
| Pole | Typ |
|---|---|
Poleresults[].custom_id | Typstring |
Poleresults[].response.body.choices[].message.content | Typstring|null |
Poleresults[].error | Typobject|null |
Poleusage | Typobject|null |
Poleid | Typstring |
Polemodel | Typstring |
Poleendpoint | Typstring |
Polestatus | Typstring |
Polerequest_counts | Typobject |
Poleresults[].id | Typstring |
Poleresults[].response.status_code | Typinteger |
Poleresults[].response.request_id | Typstring |
Chyby a ďalšie kroky
| Odpoveď | Podmienka | Ďalší krok |
|---|---|---|
Odpoveď400 · invalid_request_error | PodmienkaNeplatný zdokumentovaný obal s priamo vloženými požiadavkami, duplicitné kľúče alebo konflikt identity položky či nastavených schopností modelu. | Ďalší krokPred akýmkoľvek novým odoslaním opravte označené polia. |
Odpoveď401 · authentication_error | PodmienkaNeplatný kľúč API. | Ďalší krokPoužite kľúč Ailoot, ktorý ste oprávnení používať. |
Odpoveď403 · permission_error | PodmienkaSkupina pre dávkové spracovanie nie je dostupná. | Ďalší krokSkontrolujte oprávnenie kľúča/skupiny. |
Odpoveď422 · invalid_request_error | PodmienkaDávkové spracovanie sa účtuje zo zostatku; vytvorenie cez predplatné sa odmieta. | Ďalší krokPoužite skupinu s účtovaním zo zostatku, ktorú ste oprávnení používať. |
Odpoveď422 · price_unavailable | PodmienkaPre vstup dávky nemožno vypočítať cenovú ponuku. | Ďalší krokUchovajte odpoveď; použite zdokumentovaný vstup pre danú rodinu metód. |
Odpoveď402 · billing_error | PodmienkaRezerva pre dávkové spracovanie nie je dostupná. | Ďalší krokPred novou požiadavkou vyriešte podmienky prijatia. |
Odpoveď503 · price_unavailable | PodmienkaCena metódy dávkového spracovania alebo natívne sadzby nie sú dostupné. | Ďalší krokUchovajte odpoveď; nenahrádzajte ceny inými. |
Odpoveď503 · api_error | PodmienkaPresná trasa k dodávateľovi nie je dostupná. | Ďalší krokUchovajte odpoveď na účely opravy smerovania. |
Odpoveď503 · result_pending_check | PodmienkaPôvodný výsledok je potrebné skontrolovať; X-Should-Retry:false. | Ďalší krokUchovajte pôvodné operation_id/id a čítajte jeho stav; pôvodný POST nikdy neopakujte. |
Odpoveď404 · not_found | PodmienkaOperácia na zisťovanie stavu dávky neexistuje alebo patrí inej identite. | Ďalší krokPoužite presné pôvodné id a rovnakého používateľa/kľúč/skupinu. |
Aliasy
Aliasy modelov
Ailoot Ultra mistralai/codestral-2508:batch
Aliasy ciest metód
Použite cesty metód uvedené vyššie.
Súvisiace ID na volanie
FAQ · Mistral: Codestral 2508 (batch)
- Aké vstupy a výsledky sú dostupné?
POST /v1/batches·mistralai/codestral-2508:batch:text→text- Aké polia používa požiadavka?
POST /v1/batches·mistralai/codestral-2508:batch:endpoint,model,requests,completion_window,provider- Aké limity platia?
POST /v1/batches·mistralai/codestral-2508:batch:requests.min_items:1