Mistral: Codestral 2508 (batch)
Codestral 2508 on Mistral AI:n tekstimalli koodin tuottamiseen ja kontekstin huomioivaan täydentämiseen. Se on optimoitu usein toistuviin editoritehtäviin, kuten väliin täydentämiseen ja monirivisiin muokkauksiin. Siinä on valmistajan ilmoittama 128 tuhannen tokenin konteksti sekä dokumentoidut keskustelu-, rakenteisen tulosteen ja työkalujen ominaisuudet.
Tietoa mallista
Tämä kuvaus kattaa mallin ominaisuudet. Ailootissa saatavilla olevat syötteet, tulosteet ja asetukset luetellaan alla valitulle menetelmälle.
Codestral 2508 on Mistral AI:n ohjelmointimalli usein toistuviin, viiveherkkiin täydennys- ja generointitehtäviin. Se vastaanottaa lähdekoodia ja tekstimuotoisia vaatimuksia sekä palauttaa tekstiä, joka voi sisältää toteutuksen, täydennyksen, korjauksen tai selityksen. Nimetty 2508-versio keskittyy kehittäjän nykyiseen muokkauskontekstiin; se ei ole embedding-malli eikä itsessään kokonainen koodivarastoagentti.
Koodin täydentäminen ja 2508-päivitys
Valmistaja suosittelee Codestralia väliin täydentämiseen eli FIM-täydennykseen ja moniriviseen muokkaukseen. Julkaisussa kuvataan täydennystoiminnan parannuksia, kuten hallitsemattoman generoinnin vähentämistä, sekä parannuksia ohjeiden noudattamiseen ja keskustelutilan kooditehtäviin. Nämä ovat tämän Codestral-version muutoksia; ympäröivän ohjelmointijärjestelmän tiedonhaku ja itsenäisen agentin ominaisuudet kuuluvat erikseen nimettyihin komponentteihin.
Pidä täydennystehtävässä olennainen funktion allekirjoitus, määrittelyt ja kutsukonteksti yhdessä kohdistimen sijainnin kanssa. Kerro, halutaanko vain puuttuva koodi vai kokonainen muokattu funktio. Editorityyppisessä pyynnössä voidaan pyytää silmukan runkoa, joka säilyttää nykyisen palautustyypin ja toistuvat arvot eikä muokkaa kutsujan syötettä. Tuloksella on tällöin konkreettinen lisäyskohta ja määritelty toiminta.
Väliin täydentämisen valmistelu
Valmistajan FIM-rajapinnassa kehote antaa täydennettävän tekstin tai koodin ja valinnainen loppuosa aukon jälkeisen aineiston. Kun molemmat annetaan, malli täydentää niiden välisen kohdan. Ilman loppuosaa se jatkaa kehotteesta. Tämä eroaa tavallisesta keskustelupyynnöstä, jossa pyydetään koodimuutosta ja selitystä; kumpikin valmistelutapa määrittää erilaisen tulossopimuksen.
Hyödyllinen aukontäydennyksen syöte sisältää funktion alun, lisäystä seuraavan koodin sekä olennaiset tyyppi- tai apufunktiomäärittelyt. Säilytä sisennys ja erottimet, jotta palautettu teksti sopii nykyiseen katkelmaan. Jos tehtävä tarvitsee vain puuttuvan rungon, pyydä sitä koko tiedoston uudelleenkirjoituksen sijaan. Erillinen keskustelukysymys voi selittää, miksi täydennetty katkelma täyttää vaatimuksen.
Virallinen FIM-dokumentaatio sallii tulostokenien budjetin ja edellyttää, että kehote ja budjetti mahtuvat yhdessä mallin kontekstiin. Siinä dokumentoidaan myös pysäytyssekvenssit ja tuotetun sisällön suoratoisto. Valitse täydennystyönkulku, kun tuloksen on sovittava koodin aukkoon, ja keskustelutyönkulku, kun tehtävässä pyydetään koodia ja selitystä.
Konteksti ja tukevat ominaisuudet
Mallisivu ilmoittaa 128 tuhannen tokenin konteksti-ikkunan. Käytä kontekstia aiottua muutosta määrittävään lähdekoodiin ja määrittelyihin, mutta pidä varsinainen muokkaustehtävä täsmällisenä. Anna virheenkorjauspyyntöön kyseinen funktio, konkreettinen virheen aiheuttava syöte, odotettu tulos ja virhe tai havaittu toiminta. Pyydä ehdotettu korjaus erillään sen selityksestä ja esimerkeistä.
Sivulla mainitaan keskustelun ja FIM:n lisäksi rakenteiset tulosteet, funktiokutsut, ennakoidut tulosteet, asiakirjoja koskeviin kysymyksiin vastaaminen, vastauksen alkukatkelmat ja eräkäsittely. Määritä rakenteiseen koodikatselmointiin kentät, kuten kohdesymboli, havaittu ristiriita, ehdotettu muutos ja vielä selvitettävä oletus. Mistralin rakenteisen tulosteen ohjeistus erottaa JSON-tilan mukautetusta skeemasta; haluttu JSON-muoto kuvataan kehotteessa.
Ennakoidut tulosteet sopivat sisältöön, jossa suuri osa vastauksesta tunnetaan jo. Niitä voidaan käyttää asiakirjan tai kooditiedoston uudelleen tuottamiseen rajatulla muutoksella ja muun sisällön säilyttämiseen. Määritä tarkka muutos ja säilytettävä aineisto. Vastauksen alkukatkelma puolestaan antaa tunnetun alun, josta generointi jatkuu; se eroaa sekä tunnetusta kokonaisesta sisällöstä että FIM-loppuosasta.
Dokumentaatiokysymyksessä voidaan käyttää valmistajan asiakirjankäsittelyn työnkulkua tekstin ja rakenteen valmisteluun OCR:n avulla ennen kielimallin analyysia. Kun ohjelmointiaineisto on jo tekstinä, anna olennaiset dokumentaatiokatkelmat ja kysy, mikä ehto ohjaa toteutusta. Pidä jokainen poimittu vaatimus yhteydessä lähdeosioonsa, jotta tuotettu koodi tai selitys pysyy sidottuna annettuun määritykseen.
Työkalut ja käytännön tulokset
Funktiokutsujen avulla sovellus antaa kuvattuja toimintoja ja niiden parametreja. Malli valmistelee kutsun, sovellus suorittaa sen ja palautettu tulos tulee seuraavan vastauksen kontekstiksi. Koodiavustaja voi saada tämän kierroksen kautta haku- tai laskentatuloksen, mutta ehdotetun muutoksen kääntäminen, testaaminen tai käyttöönotto vaatii edelleen ympäröivän kehitysympäristön.
Määritä käytännön korjausta varten yhteensopivana säilytettävä julkinen rajapinta ja pyydä muokattu katkelma, lyhyt selitys sekä esimerkkisyötteet odotettuine tuloksineen. Ilmoita tuotettavaa funktiota varten hyväksytyt tyypit ja reunaehdot. Anna selitystehtävään jäljitettävä syöte, jotta vastaus yhdistää konkreettisen suorituspolun palautettuun arvoon.
Codestral tuottaa tekstiä. Se ei peri Codestral Embedin koodihakuvektoreita, Devstralin koodivarastoautomaatiota tai visuaalisen mallin kuvagenerointia. Nimenomaisen 2508-version mallisivu ei julkaise parametrimäärää tai erillistä vastauksen enimmäispituutta, joita voisi lainata toisesta julkaisusta. Säilytä nimetty versio, ohjelmointikonteksti ja vaadittu artefakti toistettavaa editori- tai keskustelutyönkulkua valmisteltaessa.
Ailoot Ultra · Eräajo POST /v1/batches mistralai/codestral-2508:batch
mistralai/codestral-2508:batch
mistralai/codestral-2508:batchAloitus
Codestral 2508 on Mistral AI:n tekstimalli koodin tuottamiseen ja kontekstin huomioivaan täydentämiseen. Se on optimoitu usein toistuviin editoritehtäviin, kuten väliin täydentämiseen ja monirivisiin muokkauksiin. Siinä on valmistajan ilmoittama 128 tuhannen tokenin konteksti sekä dokumentoidut keskustelu-, rakenteisen tulosteen ja työkalujen ominaisuudet.
- Hyväksytyt syötteet
- Teksti
- Tulokset
- Teksti
Saatavilla Ailootissa · syötteet & menetelmät
Ailoot Ultra · Eräajo POST /v1/batches
- Syötetyypit
text- Tulostyypit
text- Tulosteen muoto
- vastaukseen sisältyvä JSON kentässä results[].response.body
| Kenttä | Tyyppi | Vaatimus | Arvot & rajat | Oletus |
|---|---|---|---|---|
Kenttäendpoint | Tyyppistring | VaatimusPakollinen | Arvot & rajat /v1/chat/completions | Oletus— |
Kenttämodel | Tyyppistring | VaatimusPakollinen | Arvot & rajat mistralai/codestral-2508:batch | Oletus— |
Kenttärequests | Tyyppibatch_item[] | VaatimusPakollinen | Arvot & rajat Kohteiden vähimmäismäärä: 1 | Oletus— |
Kenttärequests[].custom_id | Tyyppistring | VaatimusPakollinen | Arvot & rajat | Oletus— |
Kenttärequests[].body.messages | Tyyppimessage[] | VaatimusPakollinen | Arvot & rajat | Oletus— |
Kenttäcompletion_window | Tyyppistring | VaatimusValinnainen | Arvot & rajat 24h | Oletus— |
Kenttäprovider | Tyyppiobject|null | VaatimusValinnainen | Arvot & rajat | Oletus— |
Kenttärequests[].body.model | Tyyppistring | VaatimusValinnainen | Arvot & rajat mistralai/codestral-2508:batch, mistralai/codestral-2508 | Oletus— |
Kenttäprovider.only | Tyyppistring[] | VaatimusValinnainen | Arvot & rajat mistral | Oletus— |
Kenttäprovider.allow_fallbacks | Tyyppiboolean|null | VaatimusValinnainen | Arvot & rajat false, null | Oletus— |
Menetelmän parametrit ja elinkaari
| Parametri | Sopimus |
|---|---|
Parametricontent_type | Sopimusapplication/json |
Parametrirequired | Sopimusendpoint, model, requests |
Parametrimaterial_types | Sopimustext |
Parametrirepresentation | Sopimuspyyntöön sisältyvä requests[]; jokaisella alkiolla on custom_id ja body |
Parametrirequest_endpoint_profile | Sopimus/v1/chat/completions |
Parametrifile_material | SopimusKutsuja voi lukea todellisen UTF-8 JSONL -aineiston paikallisesti requests[]-taulukkoon. Latauksen purpose-arvoa, input_file_id-arvoa tai tiedostoviitettä ei käytetä. Puuttuva tai tyhjä asiakkaan aineisto keskeyttää valmistelun ennen POST-pyyntöä. |
Parametriserialization_order | Sopimusendpoint, model, provider (jos annettu), completion_window (jos annettu), requests viimeisenä |
Parametrioptional_controls | Sopimusprovider.only, provider.allow_fallbacks, completion_window |
Parametrischema_scope | SopimusTekstimuotoiset Chat Completions -pyyntörungot dokumentoidussa pyyntöön sisältyvässä Batch-kääreessä. |
Elinkaari: asynchronous
GET /v1/batches/{operation_id} · alkuperäisen luontivastauksen todellinen response.id; sama käyttäjä, avain ja ryhmä
Hinnoittelu
Hintatiedot eivät lisää pyyntövalintoja. Tuetut parametrit on lueteltu valitulle menetelmälle.
- Nopea tila
- Ei määritetty Kun nopea tila on valittu
- Flex-tila
- Ei määritetty Kun flex-tila on valittu
- Päättelyn enimmäisteho
- Ei määritetty Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä
- Eksplisiittisen välimuistin hinnoittelu
- Ei käytössä Kun eksplisiittistä välimuistia pyydetään
Ailoot-hinnat
Hinnat asetusten mukaan
Kohdista kukin veloitus näytettyihin ehtoihin. Käytä yhtä hintaa kutakin vaihtoehtoisten asetusten ryhmää kohden.
| Asetukset | Hinnasto | Kontekstin tokenit, enemmän kuin | Kontekstin tokenit, enintään raja-arvo mukaan lukien | Veloitus |
|---|---|---|---|---|
| AsetuksetTokenien perushinnat | HinnastoPerushinta | Kontekstin tokenit, enemmän kuin— | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.0003 / 1K tokenia Tuloste · Tulostokenit $0.0009 / 1K tokenia Syöte · Välimuistin luku $0.00003 / 1K tokenia Syöte · Välimuistiin kirjoitus — / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
| AsetuksetPyynnön pituusluokka 1 | Hinnasto— | Kontekstin tokenit, enemmän kuin0 | Kontekstin tokenit, enintään raja-arvo mukaan lukienEi ylärajaa | Veloitus Syöte · Syötetokenit $0.0003 / 1K tokenia Tuloste · Tulostokenit $0.0009 / 1K tokenia Syöte · Välimuistin luku $0.00003 / 1K tokenia Syöte · Välimuistiin kirjoitus — / 1K tokenia Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia |
Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. Varauksen ja lopullisen veloituksen toiminta →
Esimerkkipyynnöt
Ailoot Ultra · Eräajo
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.
Vastaanota ja tallenna tulokset
Ailoot Ultra · Eräajo
vastaukseen sisältyvä JSON kentässä results[].response.body
GET /v1/batches/{operation_id}
Tarkista työn tila
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
Säilytä kaikki valmistuneet tulokset
Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.
Säilytä koko alkuperäinen tilatiedot sisältävä JSON, jokainen tulos ja custom_id sekä täydellinen vastaus- tai virherunko. Tallenna valmistuneet results[]-tulokset JSONL-muodossa suodattamatta.
Jos alkuperäinen vastaus on tarkistettava
Säilytä alkuperäinen operaation ID. 503 result_pending_check sisältää otsakkeen X-Should-Retry:false; älä koskaan lähetä uudelleen alkuperäistä eräajoa, jonka tila on tuntematon.
Vastauksen kentät
| Kenttä | Tyyppi |
|---|---|
Kenttäresults[].custom_id | Tyyppistring |
Kenttäresults[].response.body.choices[].message.content | Tyyppistring|null |
Kenttäresults[].error | Tyyppiobject|null |
Kenttäusage | Tyyppiobject|null |
Kenttäid | Tyyppistring |
Kenttämodel | Tyyppistring |
Kenttäendpoint | Tyyppistring |
Kenttästatus | Tyyppistring |
Kenttärequest_counts | Tyyppiobject |
Kenttäresults[].id | Tyyppistring |
Kenttäresults[].response.status_code | Tyyppiinteger |
Kenttäresults[].response.request_id | Tyyppistring |
Virheet ja seuraavat vaiheet
| Vastaus | Ehto | Seuraava vaihe |
|---|---|---|
Vastaus400 · invalid_request_error | EhtoDokumentoitu pyyntöön sisältyvä kääre on virheellinen, avaimet ovat päällekkäisiä, alkion identiteetti on virheellinen tai määritetyt mallin ominaisuudet ovat ristiriidassa. | Seuraava vaiheKorjaa ilmoitetut kentät ennen uutta lähetystä. |
Vastaus401 · authentication_error | EhtoVirheellinen API-avain. | Seuraava vaiheKäytä valtuutettua Ailoot-avainta. |
Vastaus403 · permission_error | EhtoEräajoryhmä ei ole käytettävissä. | Seuraava vaiheTarkista avaimen ja ryhmän käyttöoikeudet. |
Vastaus422 · invalid_request_error | EhtoEräajo laskutetaan saldosta; tilauspohjaisella laskutuksella tehty eräajon luontipyyntö hylätään. | Seuraava vaiheKäytä valtuutettua saldosta laskutettavaa ryhmää. |
Vastaus422 · price_unavailable | EhtoEräajon syötteelle ei voida laskea hinta-arviota. | Seuraava vaiheSäilytä vastaus; käytä dokumentoitua API-perheen syötettä. |
Vastaus402 · billing_error | EhtoEräajon varaus ei ole käytettävissä. | Seuraava vaihePoista pyynnön hyväksymisen esteet ennen uutta pyyntöä. |
Vastaus503 · price_unavailable | EhtoEräajomenetelmän hinta tai natiivit hinnat eivät ole käytettävissä. | Seuraava vaiheSäilytä vastaus; älä korvaa hintoja toisilla. |
Vastaus503 · api_error | EhtoTäsmällinen toimittajan reitti ei ole käytettävissä. | Seuraava vaiheSäilytä vastaus reitin korjaamista varten. |
Vastaus503 · result_pending_check | EhtoAlkuperäinen tulos edellyttää tarkistusta; X-Should-Retry:false. | Seuraava vaiheSäilytä alkuperäinen operation_id/id ja lue sen tila; älä koskaan toista alkuperäistä POST-pyyntöä. |
Vastaus404 · not_found | EhtoEräajon tilan operaatiota ei ole tai se kuuluu toiselle identiteetille. | Seuraava vaiheKäytä täsmälleen alkuperäistä id-arvoa sekä samaa käyttäjää, avainta ja ryhmää. |
Aliakset
Mallin aliakset
Ailoot Ultra mistralai/codestral-2508:batch
Menetelmäpolkujen aliakset
Käytä yllä näytettyjä menetelmäpolkuja.
Liittyvät kutsujan ID:t
FAQ · Mistral: Codestral 2508 (batch)
- Mitä syötteitä ja tuloksia on saatavilla?
POST /v1/batches·mistralai/codestral-2508:batch:text→text- Mitä kenttiä pyyntö käyttää?
POST /v1/batches·mistralai/codestral-2508:batch:endpoint,model,requests,completion_window,provider- Mitä rajoja sovelletaan?
POST /v1/batches·mistralai/codestral-2508:batch:requests.min_items:1