Google: Gemini 3.8 Flash (batch)
Gemini 3.8 Flash è il modello multimodale generalista di Google per attività prolungate di ingegneria del software, agenti e compiti complessi di gestione della conoscenza. Accetta testo, immagini, audio, video e PDF, restituisce testo e offre ragionamento low, medium o high con strumenti e output strutturati. I limiti documentati di input/output sono 1,048,576/65,536 token.
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.8 Flash è il modello di Google con output testuale per attività prolungate di ingegneria del software, agenti con più passaggi e flussi complessi di gestione della conoscenza. Si basa su Gemini 3.7 Flash, con miglioramenti nell'ingegneria del software e nelle attività agentiche sulla conoscenza. Accetta testo, immagini, audio, video e PDF, permettendo di unire in un compito un obiettivo scritto e il materiale effettivamente necessario a risolverlo. Il risultato utile è una modifica al codice, un'analisi spiegata, una risposta scritta o un record strutturato.
Per un incarico di programmazione, fornisci il requisito, i file pertinenti, il comportamento osservato e i vincoli da conservare. Uno screenshot può stabilire l'interfaccia desiderata, mentre log o un esempio riproducibile mostrano il malfunzionamento. Per un'attività di debug, chiedi al modello di ricostruire una discrepanza tra lo stato visibile di un modulo e il suo valore memorizzato, individuare il percorso di codice responsabile e proporre una correzione mirata. Mantieni chiaro il risultato finale previsto, affinché anche una sequenza più lunga di indagine e uso degli strumenti abbia una condizione di completamento specifica.
Per attività di maggiore durata, usa passaggi di ragionamento più piccoli, chiamate iterative agli strumenti e verifiche dei risultati intermedi. I livelli di thinking low, medium e high controllano la quantità di ragionamento; medium è il valore predefinito documentato. Low si presta a una bozza rapida o a un'analisi delimitata, mentre high è previsto per matematica difficile, programmazione o compiti con più passaggi. Gemini 3.8 Flash non supporta il livello di thinking minimal. Un incarico prolungato di debug e una semplice estrazione di campi richiedono quindi scelte di ragionamento diverse, anziché la stessa impostazione per ogni richiesta.
Gli strumenti documentati comprendono chiamate di funzione, esecuzione di codice, ricerca nei file, grounding tramite ricerca, grounding tramite Google Maps e contesto URL, con Computer Use indicato come funzionalità in anteprima. Gli output strutturati definiscono un risultato leggibile dalle macchine. Le funzioni devono avere uno scopo chiaro e una definizione dei parametri: il modello può richiedere una funzione, mentre l'applicazione collegata esegue l'operazione e ne restituisce il risultato. Conserva le identità delle funzioni e il materiale effettivamente restituito tra i turni. Una risposta finale utile spiega quali prove sostengono la correzione proposta o il valore estratto.
La guida alla migrazione 3.8 usa controlli del livello di thinking al posto della configurazione precedente del budget di ragionamento e consiglia di rimuovere i parametri di campionamento deprecati e i turni model precompilati. Richiede inoltre di conservare le thought signatures nel flusso stateless pertinente e di associare le risposte delle funzioni alle rispettive chiamate per identità e nome. Questi dettagli contano nella prosecuzione di un compito con più passaggi: il turno successivo necessita del contesto precedente effettivo, anziché di un resoconto riscritto che perda il risultato dello strumento o la firma. Mantieni espliciti la domanda e l'output richiesto nel nuovo turno user.
Per attività multimodali sulla conoscenza, identifica le pagine del documento, il grafico, l'intervallo audio o l'evento video pertinenti e specifica come debbano contribuire alla risposta. Un confronto di documenti può richiedere una tabella delle differenze con brani delle fonti; una domanda su un grafico può chiedere i valori visibili e la conclusione che sostengono. Un'analisi video può richiedere una descrizione degli eventi che giustificano un rilievo. Il modello restituisce testo a partire da questi input. Immagini generate, parlato e interazione audio Live appartengono a profili di modello separati.
I limiti di Gemini API sono 1,048,576 token di input e 65,536 token di output, corrispondenti al contesto fino a 1M e all'output testuale di 64K del modello nativo. Istruzioni, cronologia della conversazione e contenuti multimediali forniti consumano il contesto di input; il ragionamento o un lungo risultato finale devono rientrare nella capacità di output documentata. Google elenca inoltre caching, elaborazione batch, elaborazione Flex e Priority per questo profilo del produttore. Per elementi indipendenti, conserva un identificativo stabile dell'elemento e un formato di output esplicito, affinché ogni risultato rimanga collegato alla propria fonte.
I limiti possibili comprendono allucinazioni, occasionali rallentamenti o timeout e un maggiore uso di token a livelli di impegno più elevati. Il limite temporale delle conoscenze è marzo 2026, con alcuni ambiti ancora limitati a gennaio 2025. Fornisci prove aggiornate o usa gli strumenti di grounding documentati quando il compito dipende da informazioni successive. Controlla citazioni delle fonti, calcoli e codice proposto rispetto agli input effettivi e ai risultati dell'esecuzione. Il risultato finale utile dovrebbe distinguere un rilievo supportato da una questione irrisolta, senza presumere che una risposta scorrevole dimostri il conseguimento dell'esito richiesto.
Ailoot Ultra · Batch POST /v1/batches google/gemini-3.8-flash:batch
google/gemini-3.8-flash:batchIntroduzione
Gemini 3.8 Flash è il modello multimodale generalista di Google per attività prolungate di ingegneria del software, agenti e compiti complessi di gestione della conoscenza. Accetta testo, immagini, audio, video e PDF, restituisce testo e offre ragionamento low, medium o high con strumenti e output strutturati. I limiti documentati di input/output sono 1,048,576/65,536 token.
- 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.8-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.8-flash:batch, google/gemini-3.8-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.00075 / 1K token Output · Token in output $0.00375 / 1K token Input · Lettura dalla cache $0.000075 / 1K token Input · Scrittura nella cache $0.0000833333333333334 / 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.00075 / 1K token Output · Token in output $0.00375 / 1K token Input · Lettura dalla cache $0.000075 / 1K token Input · Scrittura nella cache $0.0000833333333333334 / 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.8-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.8-flash:batch', 'google/gemini-3.8-flash']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"google/gemini-3.8-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.8-flash:batch
Alias dei percorsi dei metodi
Usa i percorsi dei metodi indicati sopra.
ID di chiamata correlati
FAQ · Google: Gemini 3.8 Flash (batch)
- Quali input e risultati sono disponibili?
POST /v1/batches·google/gemini-3.8-flash:batch:text→text- Quali campi usa la richiesta?
POST /v1/batches·google/gemini-3.8-flash:batch:endpoint,model,requests,completion_window,provider- Quali limiti si applicano?
POST /v1/batches·google/gemini-3.8-flash:batch:requests.min_items:1