Mistral: Mistral Small 4 (batch)
Mistral Small 4 er en hybridmodell for tekst og bilder med instruksjons-, resonnerings- og programmeringsfunksjoner. Mixture-of-experts-utgivelsen med 119 milliarder parametere aktiverer 6,5 milliarder parametere per token og støtter en kontekst på 256k ifølge produsenten, valgfri resonneringsinnsats, JSON og funksjonskall.
Om modellen
Denne beskrivelsen dekker modellens funksjoner. Tilgjengelige inndata, utdata og alternativer i Ailoot er oppført nedenfor for den valgte metoden.
Mistral Small 4 kombinerer generell instruksjonsfølging, resonnering og programmering i én multimodal modell. Produsenten beskriver den som en forening av Instruct-familien, resonneringsfamilien Magistral og programmeringsfamilien Devstral. Den tar imot tekst og bilder og returnerer tekst, med funksjonskall og JSON-utdata tilgjengelig for verktøystøttede applikasjoner.
Arkitektur og hovedfunksjoner
Utgivelsen har totalt 119 milliarder parametere og aktiverer 6,5 milliarder per token. Mixture-of-experts-arkitekturen inneholder 128 eksperter, med 4 aktive, og produsenten dokumenterer et kontekstvindu på 256k. Antallet aktive parametere og antallet eksperter beskriver hvordan modellen er organisert; de er forskjellige fra mengden tekst- eller bildeinnhold i én oppgave.
Modellen har instruksjons- og resonneringsfunksjoner i samme modellkontrollpunkt. Produsenten identifiserer også syn, etterlevelse av systeminstruksjoner og flerspråklig støtte for flere titalls språk, blant annet engelsk, fransk, spansk, tysk, italiensk, portugisisk, nederlandsk, kinesisk, japansk, koreansk og arabisk. En tekstinstruksjon kan derfor spørre om et bilde eller kombinere et skriftlig krav med synlige bevis, med svaret returnert som tekst.
En visuell oppgave kan gi en dokumentside og be om verdiene som er relevante for en navngitt betingelse. Hold etikettene og enhetene lesbare, og angi om resultatet skal bevare den opprinnelige ordlyden, oppsummere den eller sammenligne den med en annen kilde. En grensesnittoppgave kan kombinere et skjermbilde med brukerens mål og be om den relevante synlige kontrollen og bevisene som underbygger et foreslått neste steg.
Valg av instruksjons- eller resonneringsmodus
Det utgitte modellkortet dokumenterer resonneringsinnsats none for et umiddelbart instruksjonsbasert svar og high for resonnering, med high anbefalt for komplekse prompter. Valget gjøres per forespørsel i samme Small 4-modell. En vanlig klassifisering eller kort omskriving kan ha en annen svarkontrakt enn et matematisk, visuelt eller programmeringsrelatert problem som trenger en utførlig forklaring.
Produsenten anbefaler temperatur 0.7 for høy resonneringsinnsats. For none angir den temperaturer mellom 0.0 og 0.7 etter oppgaven. Disse innstillingene beskriver de dokumenterte modusene og gjør ikke resonneringsinnsats til en garanti for et riktig resultat. Definer antakelsene, utdataformen og det relevante kildematerialet før du velger hvor mye resonnering oppgaven krever.
For en gjennomarbeidet problemløsning gir du hele betingelsen og ber om de viktige begrunnede stegene, etterfulgt av det endelige uttrykket. For en kodeoppgave gir du kravet, den berørte funksjonen og konkrete inndata; be om den foreslåtte implementasjonen separat fra forklaringen og eksemplene. Produsentens bruksdemonstrasjoner omfatter instruksjonsfølging, et beregningsverktøy brukt på et bilde og visuell resonnering, og illustrerer hvordan tekst og visuelle bevis kan inngå i disse ulike oppgavene.
Programmering, dokumenter og verktøy
Modellen er posisjonert for utforsking av kodebaser og programvareutviklingsagenter, generelle assistenter, dokumentforståelse og forskning. En forespørsel til en programmeringsagent kan navngi modulen som skal endres, grensesnittet som skal bevares, og atferden som skal følge. Gi relevant kildekode og feilbevis. Modellen kan foreslå neste operasjon eller en kodeendring, mens applikasjonen gir tilgang til kodearkivet, utførelse og tilbakemelding.
For dokumentuttrekk identifiserer du de påkrevde feltene og hvordan manglende informasjon skal representeres. En nyttig datapost kan skille dokumentidentifikatoren, utsagnet i kilden, det tolkede kravet og det uavklarte spørsmålet. Produsentens tjenestekort lister tilpassede strukturerte utdata og dokumentbasert spørsmålssvar; sistnevnte bruker dokumentbehandling og OCR til å klargjøre tekst og struktur før språkmodellanalyse. Et direkte bildespørsmål og en OCR-støttet dokumentflyt bør beholde hver sin forberedelse av inndata.
Funksjonskall krever tydelig beskrevne verktøy. Modellen velger en funksjon og oppretter argumenter; applikasjonen utfører operasjonen og returnerer resultatet for det påfølgende svaret. Samme logikk gjelder uansett om oppgaven er et oppslag, en beregning eller en programmeringsoperasjon. JSON-formatering organiserer et svar, mens et verktøykall ber om en ekstern handling; de to skal ikke behandles som utbyttbare resultater.
Tjenestekortet lister også forhåndsangitte utdata, svarprefikser, satsvis behandling og agentsamtaler. Forhåndsangitte utdata er nyttig når et dokument eller en kodefil må genereres på nytt med bare en avgrenset endring og resten av innholdet er kjent. Angi redigeringen og materialet som skal bevares. Prefiksvidereføring bruker en kjent start på svaret, mens satsvis behandling gjelder innsending av arbeid fremfor en ekstra resonneringsmodus.
Avgrensning av kontekst og utgave
Planlegg den skriftlige oppgaven, det visuelle materialet, samtalen og ønsket svar ut fra den dokumenterte konteksten på 256k. Det utgitte brukseksemplet konfigurerer en kontekst på 262 144 tokener, mens genereringseksemplet på 1 024 tokener ikke er en separat maksimal utdatakapasitet. De leste kildene gir ikke en uavhengig absolutt svarlengdegrense som kan erstatte den valgte oppgavelengden.
Small 4 har sin egen mixture-of-experts-arkitektur med 119 milliarder parametere og sine egne hybridmoduser. Den skal ikke arve den tette arkitekturen med 128 milliarder parametere fra Medium 3.5 eller de separate Instruct- og Reasoning-utgavene av Ministral 3. Produsenten utgir også separate kvantiserte artefakter og artefakter for spekulativ dekoding; disse er separate utrullingsartefakter fremfor forskjellige innholdsmodaliteter. Bevar den navngitte Small 4-utgivelsen og modusen som etterspørres for den faktiske forklaringen, strukturerte dataposten eller koderesultatet.
Ailoot Ultra · Batchbehandling POST /v1/batches mistralai/mistral-small-2603:batch
mistralai/mistral-small-2603:batch
mistralai/mistral-small-2603:batchStart
Mistral Small 4 er en hybridmodell for tekst og bilder med instruksjons-, resonnerings- og programmeringsfunksjoner. Mixture-of-experts-utgivelsen med 119 milliarder parametere aktiverer 6,5 milliarder parametere per token og støtter en kontekst på 256k ifølge produsenten, valgfri resonneringsinnsats, JSON og funksjonskall.
- Godkjente inndata
- Tekst
- Resultater
- Tekst
Tilgjengelig i Ailoot · inndata & metoder
Ailoot Ultra · Batchbehandling POST /v1/batches
- Inndatatyper
text- Utdatatyper
text- Utdataformat
- JSON fra results[].response.body direkte i svaret
| Felt | Type | Krav | Verdier & grenser | Standard |
|---|---|---|---|---|
Feltendpoint | Typestring | KravPåkrevd | Verdier & grenser /v1/chat/completions | Standard— |
Feltmodel | Typestring | KravPåkrevd | Verdier & grenser mistralai/mistral-small-2603:batch | Standard— |
Feltrequests | Typebatch_item[] | KravPåkrevd | Verdier & grenser Minste antall elementer: 1 | Standard— |
Feltrequests[].custom_id | Typestring | KravPåkrevd | Verdier & grenser | Standard— |
Feltrequests[].body.messages | Typemessage[] | KravPåkrevd | Verdier & grenser | Standard— |
Feltcompletion_window | Typestring | KravValgfritt | Verdier & grenser 24h | Standard— |
Feltprovider | Typeobject|null | KravValgfritt | Verdier & grenser | Standard— |
Feltrequests[].body.model | Typestring | KravValgfritt | Verdier & grenser mistralai/mistral-small-2603:batch, mistralai/mistral-small-2603 | Standard— |
Feltprovider.only | Typestring[] | KravValgfritt | Verdier & grenser mistral | Standard— |
Feltprovider.allow_fallbacks | Typeboolean|null | KravValgfritt | Verdier & grenser false, null | Standard— |
Metodeparametere og livssyklus
| Parameter | Avtale |
|---|---|
Parametercontent_type | Avtaleapplication/json |
Parameterrequired | Avtaleendpoint, model, requests |
Parametermaterial_types | Avtaletext |
Parameterrepresentation | Avtalerequests[] direkte i forespørselen; hvert element har custom_id og body |
Parameterrequest_endpoint_profile | Avtale/v1/chat/completions |
Parameterfile_material | AvtaleKlienten kan lese det faktiske UTF-8-kodede JSONL-innholdet lokalt inn i requests[]. Feltet purpose for opplasting, input_file_id og filreferanser brukes ikke. Manglende eller tomt kundemateriale stopper klargjøringen før POST. |
Parameterserialization_order | Avtaleendpoint, model, provider (hvis angitt), completion_window (hvis angitt), requests til slutt |
Parameteroptional_controls | Avtaleprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | AvtaleForespørselsinnhold for tekstbasert Chat Completions lagt direkte inn i det dokumenterte Batch-formatet. |
Livssyklus: asynchronous
GET /v1/batches/{operation_id} · faktisk response.id fra den opprinnelige opprettelsen; samme bruker/nøkkel/gruppe
Priser
Tariffopplysninger legger ikke til forespørselsvalg. Støttede parametere står ved den valgte metoden.
- Hurtigmodus
- Ikke angitt Når hurtigmodus er valgt
- Flex-modus
- Ikke angitt Når flex-modus er valgt
- Maksimal resonneringsinnsats
- Ikke angitt Når justeringen «default» brukes for maksimal resonneringsinnsats
- Priser for eksplisitt mellomlagring
- Ikke aktivert Når eksplisitt mellomlagring forespørres
Ailoot-satser
Priser etter konfigurasjon
Knytt hver kostnad til de viste vilkårene. Bruk én sats for hvert sett med alternative konfigurasjoner.
| Konfigurasjon | Prisplan | Konteksttokener, mer enn | Konteksttokener, opptil og med | Kostnad |
|---|---|---|---|---|
| KonfigurasjonGrunnpriser for tokener | PrisplanGrunnsats | Konteksttokener, mer enn— | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener $0.00015 / 1K tokener Utdata · Utgående tokener $0.0006 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.000015 / 1K tokener Inndata · Skriving til hurtigbuffer — / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time — / 1K tokener |
| KonfigurasjonNivå 1 for forespørselslengde | Prisplan— | Konteksttokener, mer enn0 | Konteksttokener, opptil og medIngen øvre grense | Kostnad Inndata · Inngående tokener $0.00015 / 1K tokener Utdata · Utgående tokener $0.0006 / 1K tokener Inndata · Lesing fra hurtigbuffer $0.000015 / 1K tokener Inndata · Skriving til hurtigbuffer — / 1K tokener Inndata · Skriving til hurtigbuffer, 1 time — / 1K tokener |
Ailoot reserverer et estimert beløp før en forespørsel. Etter resultatet gjøres det endelige beløpet opp basert på målt forbruk. Oppgjør for strømming bruker den endelige forbruksposten. Slik fungerer reservasjon og oppgjør →
Eksempelforespørsler
Ailoot Ultra · Batchbehandling
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.
Motta og lagre resultater
Ailoot Ultra · Batchbehandling
JSON fra results[].response.body direkte i svaret
GET /v1/batches/{operation_id}
Kontroller jobbstatus
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
Behold alle ferdige resultater
Behold alle fullstendige returnerte svar, filer og innholdsdeler.
Bevar hele den opprinnelige statusresponsen i JSON, alle resultater og custom_id-verdier samt hele svar- eller feilinnholdet. Lagre fullførte results[] som JSONL uten filtrering.
Hvis det opprinnelige svaret må kontrolleres
Bevar den opprinnelige operasjons-ID-en. 503 result_pending_check har X-Should-Retry:false; send aldri den opprinnelige batchen på nytt når utfallet er ukjent.
Svarfelter
| Felt | Type |
|---|---|
Feltresults[].custom_id | Typestring |
Feltresults[].response.body.choices[].message.content | Typestring|null |
Feltresults[].error | Typeobject|null |
Feltusage | Typeobject|null |
Feltid | Typestring |
Feltmodel | Typestring |
Feltendpoint | Typestring |
Feltstatus | Typestring |
Feltrequest_counts | Typeobject |
Feltresults[].id | Typestring |
Feltresults[].response.status_code | Typeinteger |
Feltresults[].response.request_id | Typestring |
Feil og neste trinn
| Svar | Vilkår | Neste trinn |
|---|---|---|
Svar400 · invalid_request_error | VilkårUgyldig struktur i det dokumenterte formatet med innebygde forespørsler, dupliserte nøkler, ugyldig elementidentitet eller konflikt med modellens konfigurerte funksjoner. | Neste trinnRett de angitte feltene før du sender en ny forespørsel. |
Svar401 · authentication_error | VilkårUgyldig API-nøkkel. | Neste trinnBruk den autoriserte Ailoot-nøkkelen. |
Svar403 · permission_error | VilkårGruppen for batchbehandling er ikke tilgjengelig. | Neste trinnKontroller tilgangsrettighetene til nøkkelen/gruppen. |
Svar422 · invalid_request_error | VilkårBatch belastes saldoen; opprettelse via abonnement avvises. | Neste trinnBruk den autoriserte gruppen som belastes saldoen. |
Svar422 · price_unavailable | VilkårDet kan ikke beregnes en pris for batchens inndata. | Neste trinnBevar svaret; bruk de dokumenterte inndataene for API-familien. |
Svar402 · billing_error | VilkårBeløpsreservasjon for batchbehandling er ikke tilgjengelig. | Neste trinnLøs problemet som hindrer forespørselen i å bli godkjent før du sender en ny forespørsel. |
Svar503 · price_unavailable | VilkårPris for Batch-metoden eller systemets innebygde satser er ikke tilgjengelige. | Neste trinnBevar svaret; ikke erstatt prisene. |
Svar503 · api_error | VilkårDen nøyaktige leverandørruten er ikke tilgjengelig. | Neste trinnBevar svaret slik at ruten kan repareres. |
Svar503 · result_pending_check | VilkårDet opprinnelige resultatet må kontrolleres; X-Should-Retry:false. | Neste trinnBevar opprinnelig operation_id/id og les statusen; gjenta aldri den opprinnelige POST-forespørselen. |
Svar404 · not_found | VilkårStatusoperasjonen for batchen finnes ikke eller tilhører en annen identitet. | Neste trinnBruk nøyaktig den opprinnelige id-verdien og samme bruker/nøkkel/gruppe. |
Aliaser
Modellaliaser
Ailoot Ultra mistralai/mistral-small-2603:batch
Aliaser for metodestier
Bruk metodestiene som vises ovenfor.
Tilknyttede anroper-ID-er
FAQ · Mistral: Mistral Small 4 (batch)
- Hvilke inndata og resultater er tilgjengelige?
POST /v1/batches·mistralai/mistral-small-2603:batch:text→text- Hvilke felt bruker forespørselen?
POST /v1/batches·mistralai/mistral-small-2603:batch:endpoint,model,requests,completion_window,provider- Hvilke grenser gjelder?
POST /v1/batches·mistralai/mistral-small-2603:batch:requests.min_items:1