Mistral: Codestral 2508 (batch)
A Codestral 2508 a Mistral AI szöveges modellje kódgeneráláshoz és a kontextust figyelembe vevő kódkiegészítéshez. Gyakori szerkesztői feladatokra, köztük középső kódrészek kitöltésére és többsoros módosításokra optimalizálták; a gyártó 128 ezer tokenes kontextust, valamint dokumentált társalgási, strukturált kimeneti és eszközfunkciókat ad meg.
A modellről
Ez a leírás a modell képességeit ismerteti. Az Ailootban elérhető bemenetek, kimenetek és lehetőségek alább, a kiválasztott metódusnál láthatók.
A Codestral 2508 a Mistral AI programozási modellje gyakori, késleltetésérzékeny kódkiegészítési és generálási feladatokhoz. Forráskódot és szöveges követelményeket fogad, és olyan szöveget ad vissza, amely megvalósítást, kiegészítést, javítást vagy magyarázatot tartalmazhat. A megnevezett 2508 kiadás a fejlesztő aktuális szerkesztési kontextusára összpontosít; önmagában nem beágyazási modell és nem teljes kódtárügynök.
Kódkiegészítés és a 2508 frissítés
A gyártó a Codestralt középső kódrészek kitöltésére és többsoros szerkesztésre ajánlja. A kiadás a kiegészítési viselkedés javítását, köztük az elszaladó generálás visszafogását, valamint társalgási módban az utasításkövetés és a kódfeladatok javítását írja le. Ezek erre a Codestral-kiadásra vonatkozó változások; a környező programozási rendszer információ-visszakeresési és autonóm ügynökfunkciói külön megnevezett komponensekhez tartoznak.
Kiegészítési feladatnál a kurzorpozíció mellett tartsd meg a releváns függvényszignatúrát, deklarációkat és hívási környezetet. Tedd egyértelművé, hogy csak a hiányzó kódra vagy egy teljesen átdolgozott függvényre van szükség. Egy szerkesztői kérés például olyan ciklustörzset kérhet, amely megőrzi a jelenlegi visszatérési típust, megtartja az ismétlődő értékeket, és nem módosítja a hívó bemenetét. Az eredmény így konkrét beillesztési ponttal és meghatározott működéssel rendelkezik.
A középső rész kitöltésének előkészítése
A gyártó FIM-felületén a prompt adja meg a kiegészítendő szöveget vagy kódot, egy opcionális utótag pedig a hiányzó rész után következő anyagot. Ha mindkettőt megadod, a modell a köztük lévő részt tölti ki. Utótag nélkül a promptot folytatja. Ez eltér a kódmódosítást és magyarázatot kérő hagyományos társalgási kéréstől; az egyes előkészítési módok eltérő kimeneti szerződést határoznak meg.
Hasznos hiánykitöltési bemenet a függvény eleje, a beillesztés után kötelezően következő kód, valamint a releváns típus- vagy segédfüggvény-definíciók. Őrizd meg a behúzást és az elválasztó jeleket, hogy a visszaadott szöveg illeszkedjen a meglévő részlethez. Ha csak a hiányzó törzs szükséges, azt kérd, ne az egész fájl átírását. Külön társalgási kérdésben elmagyaráztathatod, miért teljesíti a kiegészített részlet a követelményt.
A hivatalos FIM-dokumentáció kimenetitoken-keretet enged meg, és előírja, hogy a prompt és e keret együtt férjen bele a modell kontextusába. Leállítási szekvenciákat és a generált tartalom folyamatos továbbítását is dokumentálja. Kiegészítési munkafolyamatot válassz, ha az eredménynek a kódrésbe kell illeszkednie; társalgási munkafolyamatot pedig akkor, ha a feladat kódot és magyarázatot is kér.
Kontextus és támogató funkciók
A modelloldal 128 ezer tokenes kontextusablakot ad meg. A kontextusban őrizd meg a tervezett változtatást meghatározó forrásokat és deklarációkat, miközben maga a szerkesztési feladat maradjon egyértelmű. Hibajavítási kéréshez add meg az érintett függvényt, a hibát előidéző konkrét bemenetet, az elvárt eredményt és a hibát vagy megfigyelt működést. A javasolt javítást külön kérd a magyarázattól és a példáktól.
Az oldal a társalgási és FIM-képességek mellett strukturált kimeneteket, függvényhívást, előre megadott kimeneteket, dokumentumalapú kérdésmegválaszolást, válaszprefixeket és kötegelt feldolgozást is felsorol. Strukturált kódellenőrzési eredményhez határozz meg olyan mezőket, mint az érintett szimbólum, a megfigyelt eltérés, a javasolt változtatás és a még tisztázandó feltételezés. A Mistral strukturált kimeneti útmutatója különbséget tesz a JSON-mód és az egyéni séma között, és a kívánt JSON-formátumot a promptban kell megadni.
Az előre megadott kimenetek olyan tartalmakhoz valók, ahol a válasz jelentős része már ismert. Akkor használhatók, amikor egy dokumentumot vagy kódfájlt korlátozott módosítással újragenerálsz, a többi tartalmat megtartva. Add meg a pontos változtatást és a megőrzendő anyagot. A válaszprefix ezzel szemben ismert kezdést ad meg, amelyet a generálás folytat; ez különbözik az ismert teljes törzstől és a FIM-utótagtól is.
Dokumentációs kérdésnél a gyártó dokumentumfeldolgozási munkafolyamata OCR-rel készítheti elő a szöveget és a szerkezetet a nyelvimodell-elemzés előtt. A már szövegként rendelkezésre álló programozási anyagnál add meg a releváns dokumentációrészleteket, és kérdezd meg, melyik feltétel szabályozza a megvalósítást. Minden kinyert követelmény maradjon a forrásszakaszához kapcsolva, hogy a generált kód vagy magyarázat a megadott specifikációhoz kötődjön.
Eszközök és gyakorlati eredmények
A függvényhívás lehetővé teszi, hogy az alkalmazás leírt műveleteket és azok paramétereit adja meg. A modell előkészíti a hívást, az alkalmazás végrehajtja, a visszaadott eredmény pedig a következő válasz kontextusává válik. Egy programozási asszisztens e ciklusban lekérdezési vagy számítási eredményt kaphat, de egy javasolt változtatás fordításához, teszteléséhez vagy alkalmazásához továbbra is szükség van a környező fejlesztői környezetre.
Gyakorlati javításhoz határozd meg a kompatibilisen megőrzendő nyilvános interfészt, és kérd az átdolgozott részletet, a tömör magyarázatot, valamint mintabemeneteket elvárt kimenetekkel. Generált függvénynél add meg az elfogadott típusokat és a szélső eseteket. Magyarázathoz add meg a végigkövetendő bemenetet, hogy a válasz egy konkrét végrehajtási útvonalat kapcsoljon a visszaadott értékhez.
A Codestral szöveget állít elő. Nem örökli a Codestral Embed kódkeresési vektorait, a Devstral kódtárautomatizálását vagy egy vizuális modell képgenerálását. A pontos 2508 modelloldal nem tesz közzé paraméterszámot vagy másik kiadásból átvehető, önálló maximális válaszhosszt. Ismételhető szerkesztői vagy társalgási munkafolyamat előkészítésekor őrizd meg a megnevezett kiadást, a programozási kontextust és a szükséges eredményanyagot.
Ailoot Ultra · Kötegelt feldolgozás POST /v1/batches mistralai/codestral-2508:batch
mistralai/codestral-2508:batch
mistralai/codestral-2508:batchKezdő lépések
A Codestral 2508 a Mistral AI szöveges modellje kódgeneráláshoz és a kontextust figyelembe vevő kódkiegészítéshez. Gyakori szerkesztői feladatokra, köztük középső kódrészek kitöltésére és többsoros módosításokra optimalizálták; a gyártó 128 ezer tokenes kontextust, valamint dokumentált társalgási, strukturált kimeneti és eszközfunkciókat ad meg.
- Elfogadott bemenetek
- Szöveg
- Eredmények
- Szöveg
Elérhető az Ailootban · bemenetek és metódusok
Ailoot Ultra · Kötegelt feldolgozás POST /v1/batches
- Bemenet
text- Kimenet
text- Kimeneti formátum
- Beágyazott results[].response.body JSON-adatok
| Mező | Típus | Követelmény | Értékek és korlátok | Alapértelmezett |
|---|---|---|---|---|
Mezőendpoint | Típusstring | KövetelményKötelező | Értékek és korlátok /v1/chat/completions | Alapértelmezett— |
Mezőmodel | Típusstring | KövetelményKötelező | Értékek és korlátok mistralai/codestral-2508:batch | Alapértelmezett— |
Mezőrequests | Típusbatch_item[] | KövetelményKötelező | Értékek és korlátok Minimális elemszám: 1 | Alapértelmezett— |
Mezőrequests[].custom_id | Típusstring | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
Mezőrequests[].body.messages | Típusmessage[] | KövetelményKötelező | Értékek és korlátok | Alapértelmezett— |
Mezőcompletion_window | Típusstring | KövetelményOpcionális | Értékek és korlátok 24h | Alapértelmezett— |
Mezőprovider | Típusobject|null | KövetelményOpcionális | Értékek és korlátok | Alapértelmezett— |
Mezőrequests[].body.model | Típusstring | KövetelményOpcionális | Értékek és korlátok mistralai/codestral-2508:batch, mistralai/codestral-2508 | Alapértelmezett— |
Mezőprovider.only | Típusstring[] | KövetelményOpcionális | Értékek és korlátok mistral | Alapértelmezett— |
Mezőprovider.allow_fallbacks | Típusboolean|null | KövetelményOpcionális | Értékek és korlátok false, null | Alapértelmezett— |
Metódus paraméterei és életciklusa
| Paraméter | Szerződés |
|---|---|
Paramétercontent_type | Szerződésapplication/json |
Paraméterrequired | Szerződésendpoint, model, requests |
Paramétermaterial_types | Szerződéstext |
Paraméterrepresentation | SzerződésA kérésbe ágyazott requests[]; minden elemhez custom_id és body tartozik |
Paraméterrequest_endpoint_profile | Szerződés/v1/chat/completions |
Paraméterfile_material | SzerződésA hívó helyben beolvashatja a tényleges UTF-8 JSONL-adatokat a requests[] tömbbe. A kérés nem használ feltöltési célt, input_file_id mezőt vagy fájlhivatkozást. Hiányzó vagy üres ügyfélanyag esetén az előkészítés még a POST előtt leáll. |
Paraméterserialization_order | Szerződésendpoint, model, provider (ha meg van adva), completion_window (ha meg van adva), requests utoljára |
Paraméteroptional_controls | Szerződésprovider.only, provider.allow_fallbacks, completion_window |
Paraméterschema_scope | SzerződésText Chat Completions-kéréstörzsek a dokumentált, kérésbe ágyazott Batch-borítékban. |
Életciklus: asynchronous
GET /v1/batches/{operation_id} · Az eredeti létrehozási válasz tényleges response.id értéke; ugyanaz a felhasználó/kulcs/csoport
Díjcsomagok
A díjszabás nem ad új kérési lehetőségeket. A támogatott paraméterek a kiválasztott módszernél szerepelnek.
- Gyors mód
- Nincs megadva Ha a gyors mód van kiválasztva
- Flex mód
- Nincs megadva Ha a flex mód van kiválasztva
- Maximális gondolkodási ráfordítás
- Nincs megadva Ha a maximális gondolkodási ráfordításra a default beállításhoz tartozó korrekció vonatkozik
- Explicit gyorsítótárazás díjai
- Nincs engedélyezve Ha explicit gyorsítótárazást kérnek
Ailoot-díjak
Árak beállításonként
Minden díjat a megjelenített feltételekhez rendeljen. Az alternatív beállítások minden csoportjához egy díjtételt használjon.
| Beállítás | Díjtáblázat | Kontextustokenek, több mint | Kontextustokenek, legfeljebb | Díj |
|---|---|---|---|---|
| BeállításTokenenkénti alapárak | DíjtáblázatAlapdíj | Kontextustokenek, több mint— | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek $0.0003 / 1K token Kimenet · Kimeneti tokenek $0.0009 / 1K token Bemenet · Gyorsítótár olvasása $0.00003 / 1K token Bemenet · Írás a gyorsítótárba — / 1K token Bemenet · Írás a gyorsítótárba, 1 óra — / 1K token |
| BeállításA kéréshossz szerinti 1. ársáv | Díjtáblázat— | Kontextustokenek, több mint0 | Kontextustokenek, legfeljebbNincs felső korlát | Díj Bemenet · Bemeneti tokenek $0.0003 / 1K token Kimenet · Kimeneti tokenek $0.0009 / 1K token Bemenet · Gyorsítótár olvasása $0.00003 / 1K token Bemenet · Írás a gyorsítótárba — / 1K token Bemenet · Írás a gyorsítótárba, 1 óra — / 1K token |
Az Ailoot a kérés előtt becsült összeget foglal le. Az eredmény után a mért használat alapján elszámolja a végső díjat. Folyamatos átvitel esetén a végső használati rekordot használja. A foglalás és az elszámolás működése →
Példakérések
Ailoot Ultra · Kötegelt feldolgozás
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.
Eredmények fogadása és mentése
Ailoot Ultra · Kötegelt feldolgozás
Beágyazott results[].response.body JSON-adatok
GET /v1/batches/{operation_id}
Feladatállapot ellenőrzése
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
Őrizzen meg minden elkészült eredményt
Őrizzen meg minden teljes visszaadott választ, fájlt és tartalomrészt.
Őrizze meg a teljes eredeti állapot-JSON-t, minden eredményt/custom_id értéket, valamint a teljes válasz- vagy hibatörzset. A befejezett results[] elemeket szűrés nélkül mentse JSONL-ként.
Ha az eredeti választ ellenőrizni kell
Őrizze meg az eredeti műveletazonosítót. A 503 result_pending_check válasz X-Should-Retry:false fejlécet tartalmaz; soha ne küldje be újra az ismeretlen kimenetelű eredeti köteget.
Válaszmezők
| Mező | Típus |
|---|---|
Mezőresults[].custom_id | Típusstring |
Mezőresults[].response.body.choices[].message.content | Típusstring|null |
Mezőresults[].error | Típusobject|null |
Mezőusage | Típusobject|null |
Mezőid | Típusstring |
Mezőmodel | Típusstring |
Mezőendpoint | Típusstring |
Mezőstatus | Típusstring |
Mezőrequest_counts | Típusobject |
Mezőresults[].id | Típusstring |
Mezőresults[].response.status_code | Típusinteger |
Mezőresults[].response.request_id | Típusstring |
Hibák és következő lépések
| Válasz | Feltétel | Következő lépés |
|---|---|---|
Válasz400 · invalid_request_error | FeltételÉrvénytelen a dokumentált, kérésbe ágyazott boríték, ismétlődő kulcsok vagy az elemek azonosságával kapcsolatos hiba található benne, vagy ütközés van a beállított modellképességekkel. | Következő lépésBármilyen új beküldés előtt javítsa ki a megjelölt mezőket. |
Válasz401 · authentication_error | FeltételÉrvénytelen API-kulcs. | Következő lépésHasználja az engedélyezett Ailoot-kulcsot. |
Válasz403 · permission_error | FeltételA Batch-csoport nem érhető el. | Következő lépésEllenőrizze a kulcs/csoport jogosultságát. |
Válasz422 · invalid_request_error | FeltételA Batch az egyenlegből számol el; az előfizetés terhére indított létrehozási kérés elutasításra kerül. | Következő lépésHasználja az engedélyezett, egyenlegből elszámoló csoportot. |
Válasz422 · price_unavailable | FeltételA Batch-bemenethez nem készíthető árajánlat. | Következő lépésŐrizze meg a választ; használja az API-család dokumentált bemenetét. |
Válasz402 · billing_error | FeltételA Batch költségfedezeti foglalása nem érhető el. | Következő lépésAz új kérés előtt rendezze a befogadási feltételeket. |
Válasz503 · price_unavailable | FeltételA Batch-módszer ára vagy natív díjtételei nem érhetők el. | Következő lépésŐrizze meg a választ; ne helyettesítse az árakat más árakkal. |
Válasz503 · api_error | FeltételA pontos szolgáltatói útvonal nem érhető el. | Következő lépésŐrizze meg a választ az útvonal javításához. |
Válasz503 · result_pending_check | FeltételAz eredeti eredmény ellenőrzést igényel; X-Should-Retry:false. | Következő lépésŐrizze meg az eredeti operation_id/id értéket, és kérdezze le az állapotát; soha ne ismételje meg az eredeti POST kérést. |
Válasz404 · not_found | FeltételA Batch állapotlekérdezési művelete nem létezik, vagy más identitáshoz tartozik. | Következő lépésHasználja az eredeti id pontos értékét és ugyanazt a felhasználót/kulcsot/csoportot. |
Álnevek
Modell álnevei
Ailoot Ultra mistralai/codestral-2508:batch
Metódusútvonalak álnevei
Használja a fent látható metódusútvonalakat.
Kapcsolódó modellazonosítók
FAQ · Mistral: Codestral 2508 (batch)
- Milyen bemenetek és eredmények érhetők el?
POST /v1/batches·mistralai/codestral-2508:batch:text→text- Mely mezőket használja a kérés?
POST /v1/batches·mistralai/codestral-2508:batch:endpoint,model,requests,completion_window,provider- Milyen korlátok érvényesek?
POST /v1/batches·mistralai/codestral-2508:batch:requests.min_items:1