Google: Gemini 3.5 Flash (batch)
Gemini 3.5 Flash unisce comprensione multimodale e ragionamento per programmazione e compiti agentici con più passaggi. Accetta testo, immagini, video, audio e PDF e produce testo, con output strutturati, strumenti e un limite di input di 1,048,576 token nel suo profilo documentato.
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.5 Flash è il profilo di modello Flash multimodale di Google per attività prolungate di programmazione e lavoro agentico. Gli input documentati sono testo, immagini, video, audio e PDF, con output testuale. I compiti su cui si concentra comprendono programmazione iterativa, esplorazione di soluzioni alternative e sequenze più lunghe di istruzioni e uso degli strumenti. L'edizione 3.5 offre controlli di thinking documentati, input multimodali e flussi con strumenti.
Un compito di programmazione può unire un requisito scritto, file sorgente pertinenti e uno screenshot del risultato desiderato. Fornisci il comportamento osservato, quello atteso e i vincoli che devono rimanere integri. Un esempio di brief è: «Confronta lo screenshot con il testo del componente, identifica la discrepanza nel flusso del modulo e proponi una correzione mirata. Spiega quali dettagli della fonte giustificano la modifica». Per un compito documentale, fornisci le pagine pertinenti e chiedi un confronto con requisiti espliciti, con riferimenti alle fonti per ciascun rilievo.
L'edizione documenta i livelli di thinking minimal, low, medium e high. Medium è il predefinito, cambiato rispetto al predefinito high di Gemini 3 Flash Preview. Minimal è adatto a risposte semplici e decisioni immediate sugli strumenti, senza garantire che il ragionamento sia completamente disabilitato; low si rivolge a compiti che richiedono meno passaggi; high offre ragionamento più approfondito per problemi difficili di matematica, programmazione e agenti. Google consiglia di usare thinking_level per controllare l'impegno e di mantenere le impostazioni di campionamento predefinite, anziché tentare di forzare il ragionamento modificando temperature, top-p o top-k.
Un comportamento caratterizzante è la conservazione del contesto di ragionamento tra più turni di un compito. Il flusso Interactions di Google trasporta quel contesto automaticamente; il flusso GenerateContent richiede la cronologia completa e non modificata della conversazione, comprese le thought signatures. Questo supporta la prosecuzione di un incarico di debug o refactoring in cui il ragionamento precedente informa il passaggio successivo. Conserva la struttura effettiva della conversazione invece di convertire ogni richiesta successiva in un prompt indipendente, e mantieni chiaro il risultato finale richiesto durante l'avanzamento del lavoro.
L'insieme degli strumenti documentati comprende Google Search, grounding tramite Google Maps, File Search, Code Execution, URL Context e Function Calling standard, con uso combinato degli strumenti e Computer Use indicati come funzionalità in anteprima. Structured Outputs può fornire un record di dati definito. Assegna alle funzioni uno scopo chiaro e una definizione dei parametri: il modello sceglie una funzione, mentre l'applicazione collegata esegue la sua operazione e ne restituisce il risultato. Google richiede che i risultati delle funzioni corrispondano alle chiamate precedenti per identità, nome e numero; i risultati multimodali vanno inseriti nella risposta della funzione.
La tabella dell'esatto modello API indica un massimo di input di 1,048,576 token e un massimo di output di 65,536 token. Cronologia della conversazione e contenuti multimediali forniti contribuiscono al budget di input. Caching ed elaborazione batch sono documentati per questo profilo, con ulteriori opzioni di elaborazione Flex e Priority nella tabella di Google. Questi limiti e capacità descrivono l'edizione del produttore; non richiedono che una risposta riempia l'intera finestra di output né rendono necessario ogni strumento per un compito.
Questo profilo genera testo, anziché immagini o audio, e non usa Live API. La sua guida per sviluppatori esclude anche la segmentazione delle immagini. Per una domanda visiva, chiedi una descrizione, estrazione o interpretazione del materiale fornito; per una registrazione parlata, chiedi un risultato testuale. Quando la risposta dipende da informazioni più recenti, il flusso documentato di grounding tramite ricerca può aggiungere fonti oltre alle conoscenze di addestramento. Specifica se sono necessarie informazioni esterne e quali prove debba conservare la risposta finale.
Per un incarico lungo utile, definisci il risultato finale e il criterio di completamento prima del primo passaggio. Un compito di analisi per l'assistenza potrebbe richiedere una tabella dei problemi osservati, dei brani a supporto e di una risposta proposta; un compito di programmazione potrebbe richiedere la modifica mirata e il relativo risultato di convalida. Allega il contesto sorgente rilevante, specifica le azioni consentite agli strumenti e richiedi una risposta finale esplicita che distingua il lavoro completato dalle questioni ancora bisognose di informazioni. Questo trasforma il flusso prolungato del modello in un artefatto concreto testuale, di codice o strutturato.
Ailoot Ultra · Batch POST /v1/batches google/gemini-3.5-flash:batch
google/gemini-3.5-flash:batchIntroduzione
Gemini 3.5 Flash unisce comprensione multimodale e ragionamento per programmazione e compiti agentici con più passaggi. Accetta testo, immagini, video, audio e PDF e produce testo, con output strutturati, strumenti e un limite di input di 1,048,576 token nel suo profilo documentato.
- 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.5-flash: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.5-flash:batch, google/gemini-3.5-flash | 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.0015 / 1K token Output · Token in output $0.009 / 1K token Input · Lettura dalla cache $0.00015 / 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.0015 / 1K token Output · Token in output $0.009 / 1K token Input · Lettura dalla cache $0.00015 / 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.5-flash: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.5-flash:batch', 'google/gemini-3.5-flash']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"google/gemini-3.5-flash: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.5-flash:batch
Alias dei percorsi dei metodi
Usa i percorsi dei metodi indicati sopra.
ID di chiamata correlati
FAQ · Google: Gemini 3.5 Flash (batch)
- Quali input e risultati sono disponibili?
POST /v1/batches·google/gemini-3.5-flash:batch:text→text- Quali campi usa la richiesta?
POST /v1/batches·google/gemini-3.5-flash:batch:endpoint,model,requests,completion_window,provider- Quali limiti si applicano?
POST /v1/batches·google/gemini-3.5-flash:batch:requests.min_items:1