Mistral: Mistral Small 4 (batch)
Mistral Small 4 è un modello ibrido per testo e immagini con capacità di esecuzione di istruzioni, ragionamento e programmazione. Il rilascio mixture-of-experts da 119 miliardi di parametri ne attiva 6,5 miliardi per token e supporta un contesto di 256k dichiarato dal produttore, intensità di ragionamento selezionabile, JSON e chiamate di funzione.
Informazioni sul modello
Questa descrizione illustra le funzionalità del modello. Gli input, gli output e le opzioni disponibili in Ailoot per il metodo selezionato sono elencati di seguito.
Mistral Small 4 combina rispetto generale delle istruzioni, ragionamento e programmazione in un unico modello multimodale. Il produttore lo descrive come l’unificazione delle famiglie Instruct, Magistral per il ragionamento e Devstral per la programmazione. Accetta testo e immagini e restituisce testo, con chiamate di funzione e output JSON disponibili per applicazioni assistite da strumenti.
Architettura e funzionalità principali
Il rilascio ha 119 miliardi di parametri totali e ne attiva 6,5 miliardi per token. L’architettura mixture-of-experts contiene 128 esperti, di cui 4 attivi, e il produttore documenta una finestra di contesto di 256k. Il conteggio dei parametri attivi e il numero di esperti descrivono l’organizzazione del modello; sono distinti dalla quantità di contenuto testuale o visivo incluso in un compito.
Il modello fornisce funzionalità di istruzione e ragionamento nello stesso checkpoint. Il produttore identifica anche visione, aderenza al prompt di sistema e supporto multilingue per decine di lingue, tra cui inglese, francese, spagnolo, tedesco, italiano, portoghese, olandese, cinese, giapponese, coreano e arabo. Un’istruzione testuale può quindi chiedere informazioni su un’immagine o combinare un requisito scritto con evidenze visibili, con una risposta restituita come testo.
Un compito visivo può fornire una pagina documentale e chiedere i valori pertinenti a una condizione nominata. Mantieni leggibili etichette e unità e indica se il risultato deve preservare la formulazione originale, riassumerla o confrontarla con un’altra fonte. Un compito sull’interfaccia può abbinare uno screenshot all’obiettivo dell’utente e richiedere il controllo visibile pertinente e le evidenze a supporto del passaggio successivo proposto.
Scelta della modalità di istruzione o ragionamento
La scheda rilasciata documenta l’intensità di ragionamento none per una risposta immediata basata su istruzioni e high per il ragionamento, raccomandando high per prompt complessi. La scelta avviene per ogni richiesta nello stesso modello Small 4. Una classificazione ordinaria o una breve riscrittura può avere un contratto di risposta diverso da un problema matematico, visivo o di programmazione che richiede una spiegazione sviluppata.
Il produttore raccomanda temperatura 0.7 per un’intensità di ragionamento high. Per none specifica temperature tra 0.0 e 0.7 secondo il compito. Queste impostazioni descrivono le modalità documentate e non trasformano l’intensità di ragionamento in una garanzia di risultato corretto. Definisci ipotesi, forma dell’output e materiale sorgente pertinente prima di scegliere quanto ragionamento richieda il compito.
Per un problema da svolgere, fornisci la condizione completa e chiedi i passaggi importanti giustificati seguiti dall’espressione finale. Per un compito di codice, fornisci requisito, funzione interessata e un input concreto; richiedi l’implementazione proposta separatamente dalla spiegazione e dagli esempi. Le dimostrazioni d’uso del produttore includono rispetto delle istruzioni, uno strumento di calcolo applicato a un’immagine e ragionamento visivo, mostrando come testo ed evidenze visive possano entrare in questi diversi compiti.
Programmazione, documenti e strumenti
Il modello è proposto per esplorazione delle basi di codice e agenti di ingegneria del software, assistenti generali, comprensione documentale e ricerca. Una richiesta a un agente di programmazione può indicare il modulo da modificare, l’interfaccia da preservare e il comportamento da ottenere. Fornisci sorgenti pertinenti ed evidenze dell’errore. Il modello può proporre l’operazione successiva o una modifica del codice, mentre l’applicazione fornisce accesso al repository, esecuzione e riscontri.
Per l’estrazione documentale, identifica i campi richiesti e come rappresentare le informazioni mancanti. Un record utile può separare identificatore del documento, affermazione della fonte, requisito interpretato e domanda irrisolta. La scheda del servizio del produttore elenca output strutturati personalizzati e risposte a domande sui documenti; queste ultime usano elaborazione documentale e OCR per preparare testo e struttura prima dell’analisi del modello linguistico. Una domanda diretta su un’immagine e un flusso documentale assistito da OCR devono mantenere preparazioni di input proprie.
Le chiamate di funzione richiedono strumenti descritti chiaramente. Il modello seleziona una funzione e crea gli argomenti; l’applicazione esegue l’operazione e restituisce il risultato per la risposta successiva. La stessa logica vale per ricerche, calcoli e operazioni di programmazione. La formattazione JSON organizza una risposta, mentre una chiamata di strumento chiede un’azione esterna; non devono essere trattati come risultati intercambiabili.
La scheda del servizio elenca anche output predetti, prefissi di risposta, batch e conversazioni agentiche. Gli output predetti sono utili quando un documento o file di codice deve essere rigenerato con una modifica limitata e il resto del contenuto è noto. Specifica la modifica e il materiale da preservare. La continuazione da un prefisso usa un inizio noto della risposta, mentre il batch riguarda l’invio del lavoro, non una modalità di ragionamento aggiuntiva.
Contesto e limiti dell’edizione
Pianifica il compito scritto, il materiale visivo, la conversazione e la risposta desiderata intorno al contesto documentato di 256k. L’esempio d’uso rilasciato configura un contesto di 262.144 token, mentre il suo esempio di generazione da 1.024 token non è una capacità massima separata di output. Le fonti lette non forniscono un limite rigido indipendente della lunghezza della risposta da sostituire alla lunghezza scelta per il compito.
Small 4 ha una propria architettura mixture-of-experts da 119 miliardi di parametri e modalità ibride. Non deve ereditare l’architettura densa da 128 miliardi di Medium 3.5 o le edizioni separate Instruct e Reasoning di Ministral 3. Il produttore rilascia anche artefatti distinti quantizzati e per decodifica speculativa; sono artefatti di distribuzione separati, non modalità di contenuto diverse. Conserva il rilascio denominato Small 4 e la modalità richiesta per la spiegazione, il record strutturato o il risultato di codice effettivi.
Ailoot Ultra · Batch POST /v1/batches mistralai/mistral-small-2603:batch
mistralai/mistral-small-2603:batch
mistralai/mistral-small-2603:batchIntroduzione
Mistral Small 4 è un modello ibrido per testo e immagini con capacità di esecuzione di istruzioni, ragionamento e programmazione. Il rilascio mixture-of-experts da 119 miliardi di parametri ne attiva 6,5 miliardi per token e supporta un contesto di 256k dichiarato dal produttore, intensità di ragionamento selezionabile, JSON e chiamate di funzione.
- Input accettati
- Testo
- Risultati
- Testo
Disponibile in Ailoot · input e metodi
Ailoot Ultra · Batch POST /v1/batches
- Tipi di input
text- Tipi di output
text- Formato di output
- JSON inline di results[].response.body
| Campo | Tipo | Requisito | Valori e limiti | Predefinito |
|---|---|---|---|---|
Campoendpoint | Tipostring | RequisitoObbligatorio | Valori e limiti /v1/chat/completions | Predefinito— |
Campomodel | Tipostring | RequisitoObbligatorio | Valori e limiti mistralai/mistral-small-2603:batch | Predefinito— |
Camporequests | Tipobatch_item[] | RequisitoObbligatorio | Valori e limiti Numero minimo di elementi: 1 | Predefinito— |
Camporequests[].custom_id | Tipostring | RequisitoObbligatorio | Valori e limiti | Predefinito— |
Camporequests[].body.messages | Tipomessage[] | RequisitoObbligatorio | Valori e limiti | Predefinito— |
Campocompletion_window | Tipostring | RequisitoFacoltativo | Valori e limiti 24h | Predefinito— |
Campoprovider | Tipoobject|null | RequisitoFacoltativo | Valori e limiti | Predefinito— |
Camporequests[].body.model | Tipostring | RequisitoFacoltativo | Valori e limiti mistralai/mistral-small-2603:batch, mistralai/mistral-small-2603 | Predefinito— |
Campoprovider.only | Tipostring[] | RequisitoFacoltativo | Valori e limiti mistral | Predefinito— |
Campoprovider.allow_fallbacks | Tipoboolean|null | RequisitoFacoltativo | Valori e limiti false, null | Predefinito— |
Parametri e ciclo di vita del metodo
| Parametro | Contratto |
|---|---|
Parametrocontent_type | Contrattoapplication/json |
Parametrorequired | Contrattoendpoint, model, requests |
Parametromaterial_types | Contrattotext |
Parametrorepresentation | Contrattorequests[] inline; ogni elemento contiene custom_id e body |
Parametrorequest_endpoint_profile | Contratto/v1/chat/completions |
Parametrofile_material | ContrattoIl chiamante può leggere localmente i dati JSONL effettivi in UTF-8 e inserirli in requests[]. Non viene usato alcun purpose di caricamento, input_file_id o riferimento a file. Il materiale del cliente mancante o vuoto interrompe la preparazione prima del POST. |
Parametroserialization_order | Contrattoendpoint, model, provider (se fornito), completion_window (se fornito), requests per ultimo |
Parametrooptional_controls | Contrattoprovider.only, provider.allow_fallbacks, completion_window |
Parametroschema_scope | ContrattoCorpi delle richieste Chat Completions per testo nella struttura inline Batch documentata. |
Ciclo di vita: asynchronous
GET /v1/batches/{operation_id} · response.id effettivo della risposta alla creazione originale; stesso utente/chiave/gruppo
Tariffe
Le tariffe non aggiungono opzioni alla richiesta. I parametri supportati sono elencati nel metodo selezionato.
- Modalità rapida
- Non specificato Quando è selezionata la modalità rapida
- Modalità flex
- Non specificato Quando è selezionata la modalità flex
- Sforzo massimo di ragionamento
- Non specificato Quando lo sforzo massimo di ragionamento usa l'adeguamento predefinito (default)
- Tariffe della cache esplicita
- Non abilitato Quando viene richiesta una cache esplicita
Tariffe Ailoot
Prezzi per configurazione
Associa ogni costo alle condizioni indicate. Usa una sola tariffa per ogni insieme di configurazioni alternative.
| Configurazione | Listino delle tariffe | Token di contesto, più di | Token di contesto, fino al limite incluso | Costo |
|---|---|---|---|---|
| ConfigurazioneTariffe di base dei token | Listino delle tariffeTariffa base | Token di contesto, più di— | Token di contesto, fino al limite inclusoNessun limite superiore | Costo Input · Token in input $0.00015 / 1K token Output · Token in output $0.0006 / 1K token Input · Lettura dalla cache $0.000015 / 1K token Input · Scrittura nella cache — / 1K token Input · Scrittura nella cache, 1 ora — / 1K token |
| ConfigurazioneFascia 1 di lunghezza della richiesta | Listino delle tariffe— | Token di contesto, più di0 | Token di contesto, fino al limite inclusoNessun limite superiore | Costo Input · Token in input $0.00015 / 1K token Output · Token in output $0.0006 / 1K token Input · Lettura dalla cache $0.000015 / 1K token Input · Scrittura nella cache — / 1K token Input · Scrittura nella cache, 1 ora — / 1K token |
Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. Come funzionano la prenotazione e l’addebito finale →
Esempi di richieste
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.
Ricevi e salva i risultati
Ailoot Ultra · Batch
JSON inline di results[].response.body
GET /v1/batches/{operation_id}
Verifica lo stato dell’attività
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
Conserva tutti i risultati completati
Conserva ogni risposta, file e parte di contenuto restituiti per intero.
Conserva il JSON completo dello stato originale, ogni result/custom_id e il corpo completo della risposta o dell'errore. Salva i results[] completati come JSONL senza filtrarli.
Se occorre verificare la risposta originale
Conserva l'ID dell'operazione originale. La risposta 503 result_pending_check contiene X-Should-Retry:false; non reinviare mai un batch originale il cui esito è sconosciuto.
Campi della risposta
| Campo | Tipo |
|---|---|
Camporesults[].custom_id | Tipostring |
Camporesults[].response.body.choices[].message.content | Tipostring|null |
Camporesults[].error | Tipoobject|null |
Campousage | Tipoobject|null |
Campoid | Tipostring |
Campomodel | Tipostring |
Campoendpoint | Tipostring |
Campostatus | Tipostring |
Camporequest_counts | Tipoobject |
Camporesults[].id | Tipostring |
Camporesults[].response.status_code | Tipointeger |
Camporesults[].response.request_id | Tipostring |
Errori e passaggi successivi
| Risposta | Condizione | Passaggio successivo |
|---|---|---|
Risposta400 · invalid_request_error | CondizioneStruttura inline documentata non valida, chiavi duplicate, identità degli elementi non valida o conflitto con le capacità configurate del modello. | Passaggio successivoCorreggi i campi indicati prima di qualsiasi nuovo invio. |
Risposta401 · authentication_error | CondizioneChiave API non valida. | Passaggio successivoUsa la chiave Ailoot autorizzata. |
Risposta403 · permission_error | CondizioneGruppo Batch non disponibile. | Passaggio successivoVerifica le autorizzazioni della chiave e del gruppo. |
Risposta422 · invalid_request_error | CondizioneBatch usa l'addebito sul saldo; la creazione tramite abbonamento viene rifiutata. | Passaggio successivoUsa il gruppo autorizzato con addebito sul saldo. |
Risposta422 · price_unavailable | CondizioneNon è possibile formulare un preventivo per l'input Batch. | Passaggio successivoConserva la risposta; usa l'input documentato per la famiglia. |
Risposta402 · billing_error | CondizioneRiserva Batch non disponibile. | Passaggio successivoRisolvi le condizioni di ammissione prima di una nuova richiesta. |
Risposta503 · price_unavailable | CondizionePrezzo del metodo Batch o tariffe native non disponibili. | Passaggio successivoConserva la risposta; non sostituire i prezzi. |
Risposta503 · api_error | CondizioneLa rotta esatta del fornitore non è disponibile. | Passaggio successivoConserva la risposta per la riparazione della rotta. |
Risposta503 · result_pending_check | CondizioneIl risultato originale richiede una verifica; X-Should-Retry:false. | Passaggio successivoConserva operation_id/id originale e leggine lo stato; non ripetere mai il POST originale. |
Risposta404 · not_found | CondizioneL'operazione di stato Batch è assente o appartiene a un'altra identità. | Passaggio successivoUsa l'id originale esatto e lo stesso utente/chiave/gruppo. |
Alias
Alias del modello
Ailoot Ultra mistralai/mistral-small-2603:batch
Alias dei percorsi dei metodi
Usa i percorsi dei metodi indicati sopra.
ID di chiamata correlati
FAQ · Mistral: Mistral Small 4 (batch)
- Quali input e risultati sono disponibili?
POST /v1/batches·mistralai/mistral-small-2603:batch:text→text- Quali campi usa la richiesta?
POST /v1/batches·mistralai/mistral-small-2603:batch:endpoint,model,requests,completion_window,provider- Quali limiti si applicano?
POST /v1/batches·mistralai/mistral-small-2603:batch:requests.min_items:1