modellen

Mistral: Codestral 2508 (batch)

Markdown · JSON

Mistral: Codestral 2508 (batch)

Codestral 2508 is het tekstmodel van Mistral AI voor codegeneratie en contextbewuste aanvulling. Het is geoptimaliseerd voor veelvoorkomende editortaken, waaronder fill-in-the-middle en wijzigingen over meerdere regels, met een door de maker opgegeven context van 128k en gedocumenteerde chat-, gestructureerde-uitvoer- en toolfuncties.

Over het model

Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.

Codestral 2508 is het programmeermodel van Mistral AI voor veelvoorkomende aanvullings- en generatietaken waarbij lage vertraging belangrijk is. Het ontvangt broncode en tekstuele vereisten en retourneert tekst die een implementatie, aanvulling, correctie of uitleg kan bevatten. De genoemde 2508-editie richt zich op de huidige bewerkingscontext van de ontwikkelaar en is op zichzelf geen embeddingmodel of volledige repositoryagent.

Codeaanvulling en de 2508-update

De maker positioneert Codestral voor fill-in-the-middle-aanvulling en bewerkingen over meerdere regels. De release beschrijft verbeterd aanvullingsgedrag, waaronder het beperken van ongecontroleerd doorgaande generatie, samen met verbeteringen in het volgen van instructies en codetaken in chatmodus. Dit zijn wijzigingen in deze Codestral-editie; ophaalfuncties en autonome agentmogelijkheden van de omringende programmeeromgeving horen bij afzonderlijk benoemde componenten.

Bewaar voor een aanvullingstaak de relevante functiesignatuur, declaraties en aanroepcontext bij de cursorpositie. Geef aan of het gewenste resultaat alleen de ontbrekende code of een volledige herziene functie is. Een editorverzoek kan bijvoorbeeld vragen om de inhoud van een lus die het bestaande retourtype behoudt, dubbele waarden laat staan en de invoer van de aanroeper niet wijzigt. Het resultaat heeft dan een concrete invoegpositie en gedefinieerd gedrag.

Voorbereiding voor fill-in-the-middle

In de FIM-interface van de maker levert de prompt de tekst of code die moet worden aangevuld en een optioneel suffix het materiaal na de opening. Als beide worden aangeleverd, vult het model de ruimte ertussen in. Zonder suffix gaat het verder vanaf de prompt. Dit verschilt van een gewoon gespreksverzoek om een codewijziging met uitleg; elke voorbereidingswijze definieert een ander uitvoercontract.

Een bruikbare invoer voor het vullen van een opening bevat het begin van de functie, de code die op de invoeging moet volgen en eventuele relevante type- of hulpdefinities. Behoud inspringing en scheidingstekens zodat de geretourneerde tekst in het bestaande fragment past. Als alleen de ontbrekende functie-inhoud nodig is, vraag dan om die inhoud in plaats van een herschrijving van het hele bestand. Een afzonderlijke chatvraag kan laten uitleggen waarom het aangevulde fragment aan de vereiste voldoet.

De officiële FIM-documentatie staat een budget voor uitvoertokens toe en vereist dat de prompt plus dat budget binnen de modelcontext blijven. Ook stopreeksen en streaming van gegenereerde content zijn gedocumenteerd. Kies een aanvullingsworkflow wanneer het resultaat in een codeopening moet passen, en een gespreksworkflow wanneer de taak code met uitleg vraagt.

Context en ondersteunende functies

De modelpagina vermeldt een contextvenster van 128k. Gebruik die context om de broncode en declaraties te bewaren die de beoogde wijziging bepalen, terwijl de feitelijke bewerkingstaak expliciet blijft. Lever voor een bugfix de betrokken functie, een concrete falende invoer, het verwachte resultaat en de fout of het waargenomen gedrag aan. Vraag om de voorgestelde correctie afzonderlijk van de uitleg en voorbeelden.

De pagina vermeldt ook gestructureerde uitvoer, functieaanroepen, voorspelde uitvoer, documentvragen, antwoordprefixen en batchverwerking naast chat- en FIM-mogelijkheden. Definieer voor een gestructureerd codereviewresultaat velden zoals het betrokken symbool, de waargenomen afwijking, de voorgestelde wijziging en de aanname die nog verduidelijking behoeft. De richtlijnen voor gestructureerde uitvoer van Mistral onderscheiden JSON-modus van een aangepast schema, waarbij het gewenste JSON-formaat in de prompt wordt vermeld.

Voorspelde uitvoer is bedoeld voor content waarvan grote delen van het antwoord al bekend zijn. Dit kan worden gebruikt om een document of codebestand opnieuw te genereren met een beperkte wijziging, terwijl de overige inhoud behouden blijft. Geef de exacte wijziging en het te behouden materiaal op. Een antwoordprefix levert daarentegen een bekend begin van waaruit de generatie verdergaat; dit verschilt zowel van een bekende volledige tekst als van een FIM-suffix.

Een documentatievraag kan de documentverwerkingsworkflow van de maker gebruiken om tekst en structuur met OCR voor te bereiden voordat het taalmodel die analyseert. Lever bij programmeermateriaal dat al als tekst beschikbaar is de relevante documentatiepassages aan en vraag welke voorwaarde voor de implementatie geldt. Verbind elke geëxtraheerde vereiste met de bijbehorende bronsectie, zodat de gegenereerde code of uitleg gekoppeld blijft aan de aangeleverde specificatie.

Tools en praktische resultaten

Met functieaanroepen kan de toepassing beschreven bewerkingen en hun parameters aanbieden. Het model stelt een aanroep op, de toepassing voert deze uit en het geretourneerde resultaat wordt context voor het volgende antwoord. Een programmeerassistent kan via die cyclus een opzoek- of rekenresultaat ontvangen, maar compileren, testen of toepassen van een voorgestelde wijziging vereist nog steeds de omringende ontwikkelomgeving.

Definieer voor een praktische correctie de openbare interface die compatibel moet blijven en vraag om het herziene fragment, een beknopte uitleg en voorbeeldinvoer met verwachte uitvoer. Geef voor een gegenereerde functie de geaccepteerde typen en randgevallen op. Lever voor een uitleg de invoer aan die moet worden gevolgd, zodat het antwoord een concreet uitvoeringspad aan de geretourneerde waarde koppelt.

Codestral produceert tekst. Het erft geen codezoekvectoren van Codestral Embed, repositoryautomatisering van Devstral of beeldgeneratie van een visueel model. De pagina van het exacte 2508-model publiceert geen parameteraantal of zelfstandige maximale antwoordlengte die van een andere release kan worden overgenomen. Behoud de benoemde editie, programmeercontext en het vereiste artefact wanneer u een herhaalbare editor- of chatworkflow voorbereidt.

Ailoot Ultra · Batch POST /v1/batches mistralai/codestral-2508:batch

mistralai/codestral-2508:batch

Mistral /mistralai/codestral-2508:batch

Aan de slag

Codestral 2508 is het tekstmodel van Mistral AI voor codegeneratie en contextbewuste aanvulling. Het is geoptimaliseerd voor veelvoorkomende editortaken, waaronder fill-in-the-middle en wijzigingen over meerdere regels, met een door de maker opgegeven context van 128k en gedocumenteerde chat-, gestructureerde-uitvoer- en toolfuncties.

Toegestane invoer
Tekst
Resultaten
Tekst

Beschikbaar in Ailoot · invoer en methoden

Ailoot Ultra · Batch POST /v1/batches
Invoertypen
text
Uitvoertypen
text
Uitvoerformaat
inline results[].response.body JSON
VeldTypeVereisteWaarden en limietenStandaard
VeldendpointTypestringVereisteVereistWaarden en limieten
/v1/chat/completions
Standaard—
VeldmodelTypestringVereisteVereistWaarden en limieten
mistralai/codestral-2508:batch
Standaard—
VeldrequestsTypebatch_item[]VereisteVereistWaarden en limieten
Minimumaantal items: 1
Standaard—
Veldrequests[].custom_idTypestringVereisteVereistWaarden en limietenStandaard—
Veldrequests[].body.messagesTypemessage[]VereisteVereistWaarden en limietenStandaard—
Veldcompletion_windowTypestringVereisteOptioneelWaarden en limieten
24h
Standaard—
VeldproviderTypeobject|nullVereisteOptioneelWaarden en limietenStandaard—
Veldrequests[].body.modelTypestringVereisteOptioneelWaarden en limieten
mistralai/codestral-2508:batch, mistralai/codestral-2508
Standaard—
Veldprovider.onlyTypestring[]VereisteOptioneelWaarden en limieten
mistral
Standaard—
Veldprovider.allow_fallbacksTypeboolean|nullVereisteOptioneelWaarden en limieten
false, null
Standaard—
Methodeparameters en levenscyclus
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractendpoint, model, requests
Parametermaterial_typesContracttext
ParameterrepresentationContractinline requests[]; elk item bevat custom_id en body
Parameterrequest_endpoint_profileContract/v1/chat/completions
Parameterfile_materialContractDe aanroeper mag daadwerkelijke JSONL-inhoud in UTF-8 lokaal in requests[] inlezen. Er wordt geen uploaddoel (purpose), input_file_id of bestandsverwijzing gebruikt. Ontbrekend of leeg klantmateriaal stopt de voorbereiding vóór POST.
Parameterserialization_orderContractendpoint, model, provider (indien opgegeven), completion_window (indien opgegeven), requests als laatste
Parameteroptional_controlsContractprovider.only, provider.allow_fallbacks, completion_window
Parameterschema_scopeContractBody’s voor tekstaanvragen via Chat Completions in de gedocumenteerde inline Batch-envelop.

Levenscyclus: asynchronous

GET /v1/batches/{operation_id} · de daadwerkelijke response.id uit het oorspronkelijke aanmaakantwoord; dezelfde gebruiker/sleutel/groep

Tarieven

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus
Niet opgegeven Wanneer de snelle modus is geselecteerd
Flexmodus
Niet opgegeven Wanneer de modus flex is geselecteerd
Maximale redeneerinspanning
Niet opgegeven Wanneer bij maximale redeneerinspanning de default-aanpassing wordt gebruikt
Tarieven voor expliciete caching
Niet ingeschakeld Wanneer expliciete caching wordt aangevraagd

Ailoot-tarieven

Prijzen per configuratie

Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.

ConfiguratieTariefstaffelContexttokens, meer danContexttokens, tot en metKosten
ConfiguratieBasistarieven voor tokensTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.0003 / 1K tokens
Uitvoer · Uitvoertokens $0.0009 / 1K tokens
Invoer · Cache lezen $0.00003 / 1K tokens
Invoer · Cache schrijven — / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieNiveau 1 voor aanvraaglengteTariefstaffel—Contexttokens, meer dan0Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.0003 / 1K tokens
Uitvoer · Uitvoertokens $0.0009 / 1K tokens
Invoer · Cache lezen $0.00003 / 1K tokens
Invoer · Cache schrijven — / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →

Voorbeeldverzoeken

Ailoot Ultra · Batch

curl · bewaarde fixturePython HTTP · daadwerkelijke JSONL van de klantPython · sla elk voltooid resultaat op
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.

Resultaten ophalen en opslaan

Ailoot Ultra · Batch

inline results[].response.body JSON

  • GET /v1/batches/{operation_id}
Taakstatus controleren
curl · Status van de oorspronkelijke bewerking
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
Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar de volledige oorspronkelijke status-JSON, elk resultaat/custom_id en de volledige antwoord- of foutbody. Sla voltooide results[] zonder filtering op als JSONL.

Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar de oorspronkelijke bewerkings-ID. Bij 503 result_pending_check hoort X-Should-Retry:false; dien een oorspronkelijke batch met onbekende uitkomst nooit opnieuw in.

Antwoordvelden
VeldType
Veldresults[].custom_idTypestring
Veldresults[].response.body.choices[].message.contentTypestring|null
Veldresults[].errorTypeobject|null
VeldusageTypeobject|null
VeldidTypestring
VeldmodelTypestring
VeldendpointTypestring
VeldstatusTypestring
Veldrequest_countsTypeobject
Veldresults[].idTypestring
Veldresults[].response.status_codeTypeinteger
Veldresults[].response.request_idTypestring
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeOngeldige gedocumenteerde inline envelop, dubbele sleutels, ongeldige itemidentiteit of een conflict met de geconfigureerde modelmogelijkheden.Volgende stapCorrigeer de aangegeven velden voordat u een nieuwe aanvraag indient.
Antwoord401 · authentication_errorVoorwaardeOngeldige API-sleutel.Volgende stapGebruik de geautoriseerde Ailoot-sleutel.
Antwoord403 · permission_errorVoorwaardeBatch-groep niet beschikbaar.Volgende stapControleer de toegangsrechten van de sleutel/groep.
Antwoord422 · invalid_request_errorVoorwaardeBij Batch worden kosten van het saldo afgeschreven; aanmaken via een abonnement wordt geweigerd.Volgende stapGebruik de geautoriseerde groep waarvoor kosten van het saldo worden afgeschreven.
Antwoord422 · price_unavailableVoorwaardeVoor de Batch-invoer kan geen prijsopgave worden berekend.Volgende stapBewaar het antwoord; gebruik de gedocumenteerde invoer voor deze familie.
Antwoord402 · billing_errorVoorwaardeBatch-reservering niet beschikbaar.Volgende stapLos het toelatingsprobleem op voordat u een nieuwe aanvraag indient.
Antwoord503 · price_unavailableVoorwaardePrijs voor de Batch-methode/native tarieven niet beschikbaar.Volgende stapBewaar het antwoord; vervang de prijzen niet.
Antwoord503 · api_errorVoorwaardeDe exacte leveranciersroute is niet beschikbaar.Volgende stapBewaar het antwoord voor herstel van de route.
Antwoord503 · result_pending_checkVoorwaardeHet oorspronkelijke resultaat moet worden gecontroleerd; X-Should-Retry:false.Volgende stapBewaar de oorspronkelijke operation_id/id en lees de status ervan uit; herhaal de oorspronkelijke POST nooit.
Antwoord404 · not_foundVoorwaardeDe bewerking voor de Batch-status ontbreekt of is eigendom van een andere identiteit.Volgende stapGebruik exact de oorspronkelijke id en dezelfde gebruiker/sleutel/groep.

Aliasnamen

Modelaliasnamen

Ailoot Ultra mistralai/codestral-2508:batch

Aliasnamen voor methodepaden

Gebruik de hierboven getoonde methodepaden.

Gerelateerde aanroeper-ID’s

mistralai/codestral-2508:batch

FAQ · Mistral: Codestral 2508 (batch)
Welke invoer en resultaten zijn beschikbaar?

POST /v1/batches · mistralai/codestral-2508:batch: text → text

Welke velden gebruikt het verzoek?

POST /v1/batches · mistralai/codestral-2508:batch: endpoint, model, requests, completion_window, provider

Welke limieten gelden?

POST /v1/batches · mistralai/codestral-2508:batch: requests.min_items: 1

Meer details

Verbind Ailoot met Claude Code, OpenCode, Hermes of je eigen applicatie.

Het bedrijf en zijn projectenportefeuille

Het bedrijf en zijn projectenportefeuille: miljoenen klanten; maandelijkse verkopen in de miljarden.

Koop tokens met korting.

Abonnementsvoordeel voor regelmatig gebruik. Promotiecodes geven tot 50% korting op tokens.

Abonnement
Kies een abonnement met korting voor je terugkerende verzoeken.
Promotiecode tot 50%
Vul de code bij aankoop in. De prijs wordt volgens de lopende actie herberekend.
Kosten in de geschiedenis
Model, tokens en bedrag worden per verzoek bewaard.

Kies een abonnement · Bekijk modelprijzen

Verbind de API met het product dat je verkoopt.

SaaS, apps en bots volgens de openbare aanbodvoorwaarden en licentieovereenkomst van Ailoot. Vraag voor doorverkoop een resellerlicentie aan.

Commerciële applicatie
Voeg tekst-, beeld-, video- en geluidsgeneratie aan betaalde functies van je service toe.
Resellerlicentie
Stuur een projectbeschrijving en toegangsschema. Vraag schriftelijke voorwaarden voor gebruik en doorverkoop.
Documenten op de site
Aanbodvoorwaarden, licentieovereenkomst en gegevensbeleid zijn vóór het verbinden beschikbaar.

Vraag een resellerlicentie aan · Aanbodvoorwaarden en licentieovereenkomst