Mistral: Codestral 2508 (batch)
Codestral 2508 je textový model Mistral AI pro generování kódu a doplňování podle kontextu. Je optimalizovaný pro časté úlohy v editoru, včetně doplňování uprostřed textu a víceřádkových úprav, s kontextem 128 tisíc tokenů uváděným výrobcem a zdokumentovanými konverzačními funkcemi, strukturovaným výstupem a nástroji.
O modelu
Tento popis zahrnuje schopnosti modelu. Vstupy, výstupy a možnosti dostupné v Ailoot jsou uvedeny níže pro vybranou metodu.
Codestral 2508 je programátorský model Mistral AI pro časté úlohy doplňování a generování citlivé na latenci. Přijímá zdrojový kód a textové požadavky a vrací text, který může obsahovat implementaci, doplnění, opravu nebo vysvětlení. Pojmenovaná edice 2508 se zaměřuje na aktuální kontext úprav vývojáře; sama o sobě není embeddingovým modelem ani kompletním agentem pro repozitář.
Doplňování kódu a aktualizace 2508
Výrobce určuje Codestral pro doplňování uprostřed textu a víceřádkové úpravy. Vydání popisuje vylepšení chování při doplňování, včetně omezení nekontrolovaného generování, spolu se zlepšením dodržování pokynů a programátorských úloh v konverzačním režimu. Jde o změny této edice Codestral; vyhledávání a funkce autonomního agenta v okolním programátorském prostředí patří samostatně pojmenovaným složkám.
Pro úlohu doplňování ponechte příslušnou signaturu funkce, deklarace a kontext volání spolu s pozicí kurzoru. Určete, zda má být výsledkem jen chybějící kód, nebo celá upravená funkce. Požadavek ve stylu editoru může žádat tělo smyčky, které zachová existující návratový typ, ponechá duplicitní hodnoty a nezmění vstup volajícího. Výsledek pak má konkrétní místo vložení a definované chování.
Příprava doplňování uprostřed textu
V rozhraní FIM od výrobce prompt obsahuje text nebo kód k doplnění a volitelný suffix obsahuje materiál za mezerou. Jsou-li dodány oba, model vyplní prostor mezi nimi. Bez suffixu pokračuje od promptu. To se liší od běžného konverzačního požadavku, který žádá změnu kódu a vysvětlení; každý způsob přípravy definuje jiný výstupní kontrakt.
Užitečný vstup pro vyplnění mezery obsahuje začátek funkce, kód, který musí následovat za vloženým úsekem, a případné relevantní definice typů nebo pomocných funkcí. Zachovejte odsazení a oddělovače, aby vrácený text zapadl do existujícího fragmentu. Potřebuje-li úloha pouze chybějící tělo, požadujte toto tělo místo přepisu celého souboru. Samostatná konverzační otázka může vysvětlit, proč doplněný fragment splňuje požadavek.
Oficiální dokumentace FIM umožňuje rozpočet výstupních tokenů a vyžaduje, aby prompt spolu s tímto rozpočtem zůstal v kontextu modelu. Dokumentuje také zastavovací sekvence a průběžné streamování generovaného obsahu. Postup doplňování zvolte, pokud se výsledek musí vejít do mezery v kódu; konverzační postup použijte, pokud úloha žádá kód společně s vysvětlením.
Kontext a podpůrné funkce
Stránka modelu uvádí kontextové okno 128 tisíc tokenů. Kontext využijte k zachování zdrojů a deklarací, které určují zamýšlenou změnu, přičemž samotnou úlohu úprav ponechte výslovnou. Pro opravu chyby dodejte dotčenou funkci, konkrétní selhávající vstup, očekávaný výsledek a chybu nebo pozorované chování. Navrženou opravu požadujte odděleně od vysvětlení a příkladů.
Stránka vedle konverzačních schopností a FIM uvádí také strukturované výstupy, volání funkcí, předpovězené výstupy, odpovídání na otázky k dokumentům, prefixy odpovědí a dávkové zpracování. Pro strukturovaný výsledek kontroly kódu definujte pole, například dotčený symbol, pozorovaný nesoulad, navrženou změnu a předpoklad, který stále potřebuje upřesnění. Pokyny Mistral ke strukturovanému výstupu rozlišují režim JSON a vlastní schéma, přičemž požadovaný formát JSON je uveden v promptu.
Předpovězené výstupy jsou určeny pro obsah, v němž jsou podstatné části odpovědi již známy. Lze je použít při opětovném generování dokumentu nebo souboru kódu s omezenou úpravou a zachováním zbývajícího obsahu. Určete přesnou změnu a materiál, který musí zůstat. Prefix odpovědi naopak dodává známý začátek, od něhož generování pokračuje; liší se od známého celého obsahu i od suffixu FIM.
Otázka k dokumentaci může využít postup zpracování dokumentů výrobce, který před analýzou jazykovým modelem připraví text a strukturu pomocí OCR. U programátorských podkladů již dostupných jako text dodejte relevantní pasáže dokumentace a zeptejte se, která podmínka řídí implementaci. Každý extrahovaný požadavek udržujte propojený s jeho zdrojovou sekcí, aby vygenerovaný kód nebo vysvětlení zůstaly navázané na dodanou specifikaci.
Nástroje a praktické výsledky
Volání funkcí umožňuje aplikaci poskytnout popsané operace a jejich parametry. Model připraví volání, aplikace je provede a vrácený výsledek se stane kontextem pro další odpověď. Programátorský asistent může v tomto cyklu obdržet výsledek vyhledání nebo výpočtu, ale kompilace, testování či použití navržené změny stále vyžadují okolní vývojové prostředí.
Pro praktickou opravu definujte veřejné rozhraní, které musí zůstat kompatibilní, a požádejte o upravený fragment, stručné vysvětlení a ukázkové vstupy s očekávanými výstupy. U generované funkce uveďte přijímané typy a okrajové podmínky. Pro vysvětlení dodejte vstup, jehož průchod se má sledovat, aby odpověď spojila konkrétní cestu vykonávání s vrácenou hodnotou.
Codestral vytváří text. Nepřebírá vektory pro vyhledávání kódu z Codestral Embed, automatizaci repozitáře z Devstral ani generování obrázků z vizuálního modelu. Stránka přesného modelu 2508 nezveřejňuje počet parametrů ani samostatnou maximální délku odpovědi, které by bylo možné převzít z jiného vydání. Při přípravě opakovatelného postupu v editoru nebo konverzaci zachovejte pojmenovanou edici, programátorský kontext a požadovaný artefakt.
Ailoot Ultra · Dávka POST /v1/batches mistralai/codestral-2508:batch
mistralai/codestral-2508:batch
mistralai/codestral-2508:batchÚvod
Codestral 2508 je textový model Mistral AI pro generování kódu a doplňování podle kontextu. Je optimalizovaný pro časté úlohy v editoru, včetně doplňování uprostřed textu a víceřádkových úprav, s kontextem 128 tisíc tokenů uváděným výrobcem a zdokumentovanými konverzačními funkcemi, strukturovaným výstupem a nástroji.
- Přijímané vstupy
- Text
- Výsledky
- Text
Dostupné v Ailoot · vstupy a metody
Ailoot Ultra · Dávka POST /v1/batches
- Vstup
text- Výstup
text- Výstupní formát
- vložený JSON v results[].response.body
| Pole | Typ | Požadavek | Hodnoty a limity | Výchozí |
|---|---|---|---|---|
Poleendpoint | Typstring | PožadavekPovinné | Hodnoty a limity /v1/chat/completions | Výchozí— |
Polemodel | Typstring | PožadavekPovinné | Hodnoty a limity mistralai/codestral-2508:batch | Výchozí— |
Polerequests | Typbatch_item[] | PožadavekPovinné | Hodnoty a limity Minimální počet položek: 1 | Výchozí— |
Polerequests[].custom_id | Typstring | PožadavekPovinné | Hodnoty a limity | Výchozí— |
Polerequests[].body.messages | Typmessage[] | PožadavekPovinné | Hodnoty a limity | Výchozí— |
Polecompletion_window | Typstring | PožadavekVolitelné | Hodnoty a limity 24h | Výchozí— |
Poleprovider | Typobject|null | PožadavekVolitelné | Hodnoty a limity | Výchozí— |
Polerequests[].body.model | Typstring | PožadavekVolitelné | Hodnoty a limity mistralai/codestral-2508:batch, mistralai/codestral-2508 | Výchozí— |
Poleprovider.only | Typstring[] | PožadavekVolitelné | Hodnoty a limity mistral | Výchozí— |
Poleprovider.allow_fallbacks | Typboolean|null | PožadavekVolitelné | Hodnoty a limity false, null | Výchozí— |
Parametry a životní cyklus metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktendpoint, model, requests |
Parametrmaterial_types | Kontrakttext |
Parametrrepresentation | Kontraktvložené requests[]; každá položka obsahuje custom_id a body |
Parametrrequest_endpoint_profile | Kontrakt/v1/chat/completions |
Parametrfile_material | KontraktVolající může lokálně načíst skutečný soubor JSONL v kódování UTF-8 do requests[]. Nepoužívá se účel nahrání, input_file_id ani odkaz na soubor. Chybějící nebo prázdné podklady zákazníka zastaví přípravu před POST. |
Parametrserialization_order | Kontraktendpoint, model, provider (je-li uveden), completion_window (je-li uvedeno), requests nakonec |
Parametroptional_controls | Kontraktprovider.only, provider.allow_fallbacks, completion_window |
Parametrschema_scope | KontraktTěla požadavků Text Chat Completions v dokumentované obálce pro vložené dávkové požadavky Batch. |
Životní cyklus: asynchronous
GET /v1/batches/{operation_id} · skutečné response.id z původní odpovědi na vytvoření; stejný uživatel, klíč a skupina
Tarify
Údaje o tarifech nepřidávají možnosti požadavku. Podporované parametry jsou uvedeny u vybrané metody.
- Rychlý režim
- Neuvedeno Při výběru rychlého režimu
- Režim flex
- Neuvedeno Při výběru režimu flex
- Maximální intenzita uvažování
- Neuvedeno Když se při maximální intenzitě uvažování použije výchozí úprava (default)
- Ceny explicitní mezipaměti
- Není zapnuto Při požadavku na explicitní mezipaměť
Sazby Ailoot
Ceny podle konfigurace
Přiřaďte každý poplatek k uvedeným podmínkám. Pro každou sadu alternativních konfigurací použijte jednu sazbu.
| Konfigurace | Tabulka sazeb | Tokeny kontextu, více než | Tokeny kontextu, do uvedené hodnoty včetně | Poplatek |
|---|---|---|---|---|
| KonfiguraceZákladní sazby za tokeny | Tabulka sazebZákladní sazba | Tokeny kontextu, více než— | Tokeny kontextu, do uvedené hodnoty včetněBez horní meze | Poplatek Vstup · Vstupní tokeny $0.0003 / 1K tokenů Výstup · Výstupní tokeny $0.0009 / 1K tokenů Vstup · Čtení z mezipaměti $0.00003 / 1K tokenů Vstup · Zápis do mezipaměti — / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
| KonfiguracePásmo délky požadavku 1 | Tabulka sazeb— | Tokeny kontextu, více než0 | Tokeny kontextu, do uvedené hodnoty včetněBez horní meze | Poplatek Vstup · Vstupní tokeny $0.0003 / 1K tokenů Výstup · Výstupní tokeny $0.0009 / 1K tokenů Vstup · Čtení z mezipaměti $0.00003 / 1K tokenů Vstup · Zápis do mezipaměti — / 1K tokenů Vstup · Zápis do mezipaměti, 1 hodina — / 1K tokenů |
Ailoot před požadavkem rezervuje odhadovanou částku. Po výsledku vyúčtuje konečný poplatek podle naměřeného využití. Při streamování se účtování řídí konečným záznamem využití. Jak funguje rezervace a vyúčtování →
Příklady požadavků
Ailoot Ultra · Dávka
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.
Přijímání a ukládání výsledků
Ailoot Ultra · Dávka
vložený JSON v results[].response.body
GET /v1/batches/{operation_id}
Ověřit 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
Uchovejte všechny dokončené výsledky
Uchovejte každou úplnou vrácenou odpověď, soubor i část obsahu.
Uchovejte úplný původní JSON se stavem, každý výsledek a custom_id a úplné tělo odpovědi nebo chyby. Dokončené results[] uložte jako JSONL bez filtrování.
Pokud je nutné ověřit původní odpověď
Uchovejte původní ID operace. Odpověď 503 result_pending_check obsahuje X-Should-Retry:false; původní dávku s neznámým výsledkem nikdy znovu neodesílejte.
Pole odpovědi
| 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 další kroky
| Odpověď | Podmínka | Další krok |
|---|---|---|
Odpověď400 · invalid_request_error | PodmínkaNeplatná dokumentovaná obálka vložených požadavků, duplicitní klíče, nesprávná identita položky nebo rozpor s nastavenými schopnostmi modelu. | Další krokPřed jakýmkoli novým odesláním opravte označená pole. |
Odpověď401 · authentication_error | PodmínkaNeplatný klíč API. | Další krokPoužijte autorizovaný klíč Ailoot. |
Odpověď403 · permission_error | PodmínkaSkupina pro dávkové požadavky není dostupná. | Další krokZkontrolujte oprávnění klíče a skupiny. |
Odpověď422 · invalid_request_error | PodmínkaDávkové požadavky se účtují ze zůstatku; vytvoření v rámci předplatného se odmítá. | Další krokPoužijte autorizovanou skupinu s účtováním ze zůstatku. |
Odpověď422 · price_unavailable | PodmínkaPro vstup dávky nelze vypočítat cenovou nabídku. | Další krokUchovejte odpověď; použijte dokumentovaný vstup pro danou rodinu API. |
Odpověď402 · billing_error | PodmínkaRezerva pro dávku není dostupná. | Další krokPřed novým požadavkem vyřešte podmínky přijetí. |
Odpověď503 · price_unavailable | PodmínkaCena dávkové metody nebo nativní sazby nejsou dostupné. | Další krokUchovejte odpověď; nenahrazujte ceny jinými. |
Odpověď503 · api_error | PodmínkaPřesná trasa dodavatele není dostupná. | Další krokUchovejte odpověď pro opravu směrování. |
Odpověď503 · result_pending_check | PodmínkaPůvodní výsledek vyžaduje kontrolu; X-Should-Retry:false. | Další krokUchovejte původní operation_id/id a načítejte jeho stav; původní POST nikdy neopakujte. |
Odpověď404 · not_found | PodmínkaOperace pro kontrolu stavu dávky neexistuje nebo patří jiné identitě. | Další krokPoužijte přesné původní id a stejného uživatele, klíč a skupinu. |
Aliasy
Aliasy modelu
Ailoot Ultra mistralai/codestral-2508:batch
Aliasy cest metod
Použijte cesty metod uvedené výše.
Související ID modelů
FAQ · Mistral: Codestral 2508 (batch)
- Jaké vstupy a výsledky jsou dostupné?
POST /v1/batches·mistralai/codestral-2508:batch:text→text- Jaká pole požadavek používá?
POST /v1/batches·mistralai/codestral-2508:batch:endpoint,model,requests,completion_window,provider- Jaké limity platí?
POST /v1/batches·mistralai/codestral-2508:batch:requests.min_items:1