Google: Gemini 3 Flash Preview (batch)
Gemini 3 Flash Preview unisce comprensione multimodale e ragionamento con output testuale. Supporta analisi di codice, documenti ed elementi visivi, risultati strutturati e flussi orientati agli strumenti, con quattro livelli di thinking documentati per scegliere la profondità dell'analisi.
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.
Gemini 3 Flash Preview è un modello di ragionamento di Google per comprensione multimodale, programmazione e compiti agentici. Accetta testo, immagini, video, audio e PDF e restituisce testo. Una richiesta può quindi riunire istruzioni scritte, file sorgente, osservazioni visive e cronologia della conversazione attorno a un solo problema. Il risultato può essere una spiegazione, una proposta di codice, dati estratti o un piano fondato su quei materiali, anziché un'immagine generata o una risposta parlata.
La scheda dell'esatto modello indica un limite di input di 1,048,576 token e un limite di output di 65,536 token. Pianifica separatamente fonte e risultato: un lungo estratto di repository, una raccolta di documenti o una registrazione possono rientrare soltanto se la loro rappresentazione elaborata e le istruzioni rientrano nel budget di input, e la risposta necessita comunque di una propria lunghezza assegnata. Etichetta le fonti correlate e identifica quale materiale sia autorevole. Per un prompt lungo, la guida per sviluppatori consiglia di collocare la domanda specifica dopo i dati e collegarla esplicitamente alle informazioni precedenti.
Il thinking è dinamico, con high come predefinito documentato per questo modello. I livelli supportati sono minimal, low, medium e high. Sono capacità relative di ragionamento, anziché numeri garantiti di token. Minimal può comunque comportare un certo ragionamento su un problema difficile di programmazione. Scegli un livello in base al compito: una trasformazione breve e un problema di debug con più condizioni necessitano di trattamenti diversi. Usa istruzioni dirette e chiare, anziché forzare elaborati rituali di ragionamento nel prompt; richiedi l'artefatto finale e le verifiche che lo rendono utilizzabile.
La scheda del produttore elenca output strutturati, chiamate di funzione, esecuzione di codice, uso del computer, ricerca nei file, grounding tramite ricerca, grounding tramite Google Maps, contesto URL e caching. Nel flusso Gemini 3 documentato, gli strumenti integrati possono essere combinati con chiamate a funzioni personalizzate. Un'applicazione definisce le funzioni, controlla i loro argomenti, esegue le azioni accettate e ne restituisce i risultati. Per un assistente di programmazione, uno strumento di lettura dei file o un esecutore di test controllato può fornire prove concrete per il passaggio successivo. Un'azione proposta e un risultato osservato di uno strumento devono restare distinti nel rapporto finale.
Per la programmazione, fornisci i file pertinenti, il linguaggio, il comportamento atteso e un input che dimostri il problema. Definisci l'ambito della modifica e indica l'interfaccia o il comportamento da conservare. Chiedi un'implementazione rivista e i casi da verificare. Per un compito analitico documentale, definisci domanda, campi richiesti e riferimenti alle fonti. Se si usa output strutturato, fornisci uno schema con significati chiari dei campi e regole per i valori mancanti. Convalida sia la sintassi sia il fatto che ciascun valore derivi dal materiale originale.
Per l'analisi multimodale, identifica cosa conta in ciascuna fonte. Uno screenshot può sostenere una spiegazione dell'interfaccia, un PDF può fornire una tabella o un grafico e una registrazione può fornire eventi parlati o visibili. La guida per sviluppatori discute i controlli di risoluzione dei contenuti multimediali perché il dettaglio modifica la rappresentazione elaborata e l'uso di token. Il flusso di esecuzione di codice del produttore può ritagliare o ingrandire immagini fornite, eseguire calcoli da dati visivi e aggiungere annotazioni prima che il modello prepari la risposta. Il testo piccolo leggibile può richiedere un'impostazione diversa da una descrizione generale della scena. Mantieni disponibile la pagina, l'immagine o la clip pertinente, affinché le osservazioni possano essere verificate, anziché considerare un riepilogo scorrevole come prova che ogni dettaglio sia stato letto correttamente.
Lo stato della conversazione e degli strumenti deve essere conservato nell'interfaccia scelta. Gemini 3 usa le thought signatures per trasportare il contesto di ragionamento tra le chiamate; la guida per sviluppatori distingue la cronologia stateful gestita dalla cronologia stateless gestita manualmente. Conserva il contesto richiesto quando prosegui un compito con strumenti o rivedi un risultato. Google consiglia anche di mantenere la propria temperature predefinita di 1.0, anziché importare una procedura a bassa temperatura che può causare cicli o comportamento degradato nei compiti complessi. Sono pratiche d'integrazione del produttore, non nuove affermazioni sul trasporto di una particolare applicazione.
Il modello testuale non dichiara generazione di immagini o audio né Live API. La guida distingue inoltre la comprensione visiva dalla segmentazione delle immagini a livello di pixel, che non è una capacità supportata da Gemini 3 Flash. Usa un risultato finale appropriato al compito effettivo: osservazioni collegate alle fonti, un record strutturato, una modifica al codice o una decisione con le ipotesi dichiarate. Controlla l'aritmetica, verifica il codice nell'ambiente previsto ed esamina le informazioni restituite dagli strumenti. Quando contano fatti recenti, usa le fonti di grounding configurate o i dati attuali forniti, anziché presumere che la conoscenza del modello sia un database in tempo reale.
Ailoot Ultra · Batch POST /v1/batches google/gemini-3-flash-preview:batch
google/gemini-3-flash-preview:batch
google/gemini-3-flash-preview:batchIntroduzione
Gemini 3 Flash Preview unisce comprensione multimodale e ragionamento con output testuale. Supporta analisi di codice, documenti ed elementi visivi, risultati strutturati e flussi orientati agli strumenti, con quattro livelli di thinking documentati per scegliere la profondità dell'analisi.
- 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 google/gemini-3-flash-preview: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 google/gemini-3-flash-preview:batch, google/gemini-3-flash-preview | Predefinito— |
Campoprovider.only | Tipostring[] | RequisitoFacoltativo | Valori e limiti google-vertex/global | 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.0005 / 1K token Output · Token in output $0.003 / 1K token Input · Lettura dalla cache — / 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.0005 / 1K token Output · Token in output $0.003 / 1K token Input · Lettura dalla cache — / 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":"google/gemini-3-flash-preview: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 ['google/gemini-3-flash-preview:batch', 'google/gemini-3-flash-preview']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"google/gemini-3-flash-preview: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 google/gemini-3-flash-preview:batch
Alias dei percorsi dei metodi
Usa i percorsi dei metodi indicati sopra.
ID di chiamata correlati
FAQ · Google: Gemini 3 Flash Preview (batch)
- Quali input e risultati sono disponibili?
POST /v1/batches·google/gemini-3-flash-preview:batch:text→text- Quali campi usa la richiesta?
POST /v1/batches·google/gemini-3-flash-preview:batch:endpoint,model,requests,completion_window,provider- Quali limiti si applicano?
POST /v1/batches·google/gemini-3-flash-preview:batch:requests.min_items:1