Mistral: Mistral Small 4 (batch)
Mistral Small 4 is een hybride tekst- en beeldmodel met instructie-, redeneer- en programmeermogelijkheden. De mixture-of-experts-release met 119 miljard parameters activeert 6,5 miljard parameters per token en ondersteunt een door de maker opgegeven context van 256k, instelbare redeneerinspanning, JSON en functieaanroepen.
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.
Mistral Small 4 combineert algemene instructievolging, redeneren en programmeren in één multimodaal model. De maker beschrijft het als een samenvoeging van de Instruct-, Magistral-redeneer- en Devstral-programmeerfamilies. Het accepteert tekst en afbeeldingen en retourneert tekst, met functieaanroepen en JSON-uitvoer voor toepassingen die tools gebruiken.
Architectuur en belangrijkste functies
De release heeft in totaal 119 miljard parameters en activeert 6,5 miljard per token. De mixture-of-experts-architectuur bevat 128 experts, waarvan er 4 actief zijn, en de maker documenteert een contextvenster van 256k. Het actieve parameteraantal en het aantal experts beschrijven de modelopbouw; ze verschillen van de hoeveelheid tekst- of beeldinhoud in één taak.
Het model biedt instructie- en redeneerfuncties in hetzelfde checkpoint. De maker noemt ook beeldbegrip, het volgen van systeemprompts en meertalige ondersteuning voor tientallen talen, waaronder Engels, Frans, Spaans, Duits, Italiaans, Portugees, Nederlands, Chinees, Japans, Koreaans en Arabisch. Een tekstinstructie kan dus naar een afbeelding vragen of een schriftelijke vereiste met zichtbaar bewijs combineren, waarbij het antwoord als tekst wordt geretourneerd.
Een visuele taak kan een documentpagina aanleveren en vragen naar de waarden die relevant zijn voor een benoemde voorwaarde. Houd labels en eenheden leesbaar en vermeld of het resultaat de oorspronkelijke formulering moet behouden, samenvatten of vergelijken met een andere bron. Een interfacetaak kan een schermafbeelding combineren met het doel van de gebruiker en vragen om het relevante zichtbare bedieningselement en het bewijs voor een voorgestelde vervolgstap.
Instructie- of redeneermodus kiezen
De uitgebrachte kaart documenteert redeneerinspanning none voor een direct instructiegericht antwoord en high voor redeneren, met high als aanbeveling voor complexe prompts. De keuze wordt per verzoek gemaakt binnen hetzelfde Small 4-model. Een gewone classificatie of korte herschrijving kan een ander antwoordcontract hebben dan een wiskundig, visueel of programmeerprobleem dat een uitgebreide uitleg nodig heeft.
De maker beveelt temperature 0.7 aan voor hoge redeneerinspanning. Voor none specificeert hij temperaturen tussen 0.0 en 0.7 afhankelijk van de taak. Deze instellingen beschrijven de gedocumenteerde modi en maken redeneerinspanning niet tot een garantie voor een correct resultaat. Definieer de aannames, uitvoervorm en relevant bronmateriaal voordat u bepaalt hoeveel redeneren de taak nodig heeft.
Lever voor een uitgewerkt probleem de volledige voorwaarde aan en vraag om de belangrijkste onderbouwde stappen, gevolgd door de uiteindelijke uitdrukking. Geef voor een codetaak de vereiste, de betrokken functie en een concrete invoer; vraag om de voorgestelde implementatie afzonderlijk van de uitleg en voorbeelden. De gebruiksdemonstraties van de maker omvatten instructievolging, een rekentool toegepast op een afbeelding en visueel redeneren, en laten zien hoe tekst en visueel bewijs in deze verschillende taken kunnen worden gebruikt.
Programmeren, documenten en tools
Het model is gepositioneerd voor codeverkenning en softwareagents, algemene assistenten, documentbegrip en onderzoek. Een verzoek aan een programmeeragent kan de te wijzigen module, de te behouden interface en het beoogde gedrag benoemen. Lever de relevante broncode en het foutbewijs aan. Het model kan de volgende bewerking of een codewijziging voorstellen, terwijl de toepassing repositorytoegang, uitvoering en feedback levert.
Benoem voor documentextractie de vereiste velden en hoe ontbrekende informatie wordt weergegeven. Een bruikbaar record kan documentidentificatie, bronuitspraak, geïnterpreteerde vereiste en onopgeloste vraag scheiden. De servicekaart van de maker vermeldt aangepaste gestructureerde uitvoer en documentvragen; de laatste gebruiken documentverwerking en OCR om tekst en structuur voor te bereiden voordat het taalmodel analyseert. Een directe beeldvraag en een met OCR ondersteunde documentworkflow moeten elk hun eigen invoervoorbereiding behouden.
Functieaanroepen vereisen duidelijk beschreven tools. Het model selecteert een functie en maakt argumenten; de toepassing voert de bewerking uit en retourneert het resultaat voor het volgende antwoord. Dezelfde logica geldt voor een opzoekactie, berekening of programmeerbewerking. JSON-opmaak ordent een antwoord, terwijl een toolaanroep om een externe actie vraagt; beide mogen niet als uitwisselbare resultaten worden behandeld.
De servicekaart vermeldt ook voorspelde uitvoer, antwoordprefixen, batchverwerking en agentgesprekken. Voorspelde uitvoer is nuttig wanneer een document of codebestand opnieuw moet worden gegenereerd met slechts een beperkte wijziging en de overige inhoud bekend is. Geef de wijziging en het te behouden materiaal op. Prefixvoortzetting gebruikt een bekend begin van het antwoord, terwijl batchverwerking de indiening van werk betreft en geen extra redeneermodus.
Context- en editiegrenzen
Plan de schriftelijke taak, het visuele materiaal, het gesprek en het gewenste antwoord rond de gedocumenteerde context van 256k. Het uitgebrachte gebruiksvoorbeeld configureert een context van 262.144 tokens, terwijl het generatievoorbeeld van 1.024 tokens geen afzonderlijke maximale uitvoercapaciteit is. De geraadpleegde bronnen bieden geen zelfstandige harde antwoordlengtelimiet die de gekozen taaklengte kan vervangen.
Small 4 heeft een eigen mixture-of-experts-architectuur met 119 miljard parameters en hybride modi. Het mag niet de dense architectuur met 128 miljard parameters van Medium 3.5 of de afzonderlijke Instruct- en Reasoning-edities van Ministral 3 overnemen. De maker brengt ook afzonderlijke gekwantiseerde artefacten en artefacten voor speculatieve decodering uit; dit zijn afzonderlijke implementatieartefacten en geen verschillende inhoudsmodaliteiten. Behoud de genoemde Small 4-release en de gevraagde modus voor de daadwerkelijke uitleg, het gestructureerde record of het coderesultaat.
Ailoot Ultra · Batch POST /v1/batches mistralai/mistral-small-2603:batch
mistralai/mistral-small-2603:batch
mistralai/mistral-small-2603:batchAan de slag
Mistral Small 4 is een hybride tekst- en beeldmodel met instructie-, redeneer- en programmeermogelijkheden. De mixture-of-experts-release met 119 miljard parameters activeert 6,5 miljard parameters per token en ondersteunt een door de maker opgegeven context van 256k, instelbare redeneerinspanning, JSON en functieaanroepen.
- 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
| Veld | Type | Vereiste | Waarden en limieten | Standaard |
|---|---|---|---|---|
Veldendpoint | Typestring | VereisteVereist | Waarden en limieten /v1/chat/completions | Standaard— |
Veldmodel | Typestring | VereisteVereist | Waarden en limieten mistralai/mistral-small-2603:batch | Standaard— |
Veldrequests | Typebatch_item[] | VereisteVereist | Waarden en limieten Minimumaantal items: 1 | Standaard— |
Veldrequests[].custom_id | Typestring | VereisteVereist | Waarden en limieten | Standaard— |
Veldrequests[].body.messages | Typemessage[] | VereisteVereist | Waarden en limieten | Standaard— |
Veldcompletion_window | Typestring | VereisteOptioneel | Waarden en limieten 24h | Standaard— |
Veldprovider | Typeobject|null | VereisteOptioneel | Waarden en limieten | Standaard— |
Veldrequests[].body.model | Typestring | VereisteOptioneel | Waarden en limieten mistralai/mistral-small-2603:batch, mistralai/mistral-small-2603 | Standaard— |
Veldprovider.only | Typestring[] | VereisteOptioneel | Waarden en limieten mistral | Standaard— |
Veldprovider.allow_fallbacks | Typeboolean|null | VereisteOptioneel | Waarden en limieten false, null | Standaard— |
Methodeparameters en levenscyclus
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractendpoint, model, requests |
Parametermaterial_types | Contracttext |
Parameterrepresentation | Contractinline requests[]; elk item bevat custom_id en body |
Parameterrequest_endpoint_profile | Contract/v1/chat/completions |
Parameterfile_material | ContractDe 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_order | Contractendpoint, model, provider (indien opgegeven), completion_window (indien opgegeven), requests als laatste |
Parameteroptional_controls | Contractprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | ContractBody’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.
| Configuratie | Tariefstaffel | Contexttokens, meer dan | Contexttokens, tot en met | Kosten |
|---|---|---|---|---|
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Contexttokens, meer dan— | Contexttokens, tot en metGeen bovengrens | Kosten Invoer · Invoertokens $0.00015 / 1K tokens Uitvoer · Uitvoertokens $0.0006 / 1K tokens Invoer · Cache lezen $0.000015 / 1K tokens Invoer · Cache schrijven — / 1K tokens Invoer · Cache schrijven, 1 uur — / 1K tokens |
| ConfiguratieNiveau 1 voor aanvraaglengte | Tariefstaffel— | Contexttokens, meer dan0 | Contexttokens, tot en metGeen bovengrens | Kosten Invoer · Invoertokens $0.00015 / 1K tokens Uitvoer · Uitvoertokens $0.0006 / 1K tokens Invoer · Cache lezen $0.000015 / 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
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/mistral-small-2603: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/mistral-small-2603:batch', 'mistralai/mistral-small-2603']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"mistralai/mistral-small-2603: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
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
| Veld | Type |
|---|---|
Veldresults[].custom_id | Typestring |
Veldresults[].response.body.choices[].message.content | Typestring|null |
Veldresults[].error | Typeobject|null |
Veldusage | Typeobject|null |
Veldid | Typestring |
Veldmodel | Typestring |
Veldendpoint | Typestring |
Veldstatus | Typestring |
Veldrequest_counts | Typeobject |
Veldresults[].id | Typestring |
Veldresults[].response.status_code | Typeinteger |
Veldresults[].response.request_id | Typestring |
Fouten en vervolgstappen
| Antwoord | Voorwaarde | Volgende stap |
|---|---|---|
Antwoord400 · invalid_request_error | VoorwaardeOngeldige 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_error | VoorwaardeOngeldige API-sleutel. | Volgende stapGebruik de geautoriseerde Ailoot-sleutel. |
Antwoord403 · permission_error | VoorwaardeBatch-groep niet beschikbaar. | Volgende stapControleer de toegangsrechten van de sleutel/groep. |
Antwoord422 · invalid_request_error | VoorwaardeBij 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_unavailable | VoorwaardeVoor de Batch-invoer kan geen prijsopgave worden berekend. | Volgende stapBewaar het antwoord; gebruik de gedocumenteerde invoer voor deze familie. |
Antwoord402 · billing_error | VoorwaardeBatch-reservering niet beschikbaar. | Volgende stapLos het toelatingsprobleem op voordat u een nieuwe aanvraag indient. |
Antwoord503 · price_unavailable | VoorwaardePrijs voor de Batch-methode/native tarieven niet beschikbaar. | Volgende stapBewaar het antwoord; vervang de prijzen niet. |
Antwoord503 · api_error | VoorwaardeDe exacte leveranciersroute is niet beschikbaar. | Volgende stapBewaar het antwoord voor herstel van de route. |
Antwoord503 · result_pending_check | VoorwaardeHet 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_found | VoorwaardeDe 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/mistral-small-2603:batch
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
FAQ · Mistral: Mistral Small 4 (batch)
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/batches·mistralai/mistral-small-2603:batch:text→text- Welke velden gebruikt het verzoek?
POST /v1/batches·mistralai/mistral-small-2603:batch:endpoint,model,requests,completion_window,provider- Welke limieten gelden?
POST /v1/batches·mistralai/mistral-small-2603:batch:requests.min_items:1