Google: Gemini 3.8 Flash (batch)
Gemini 3.8 Flash is Googles veelzijdige multimodale model voor langdurig software-engineeringwerk, agenten en complexe kennistaken. Het accepteert tekst, beelden, audio, video en PDF, geeft tekst terug en biedt low, medium of high redeneren met hulpmiddelen en gestructureerde uitvoer. De gedocumenteerde invoer- en uitvoerlimieten zijn 1.048.576/65.536 tokens.
Over het model
Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.
Gemini 3.8 Flash is Googles model met tekstuitvoer voor langdurig software-engineeringwerk, agenten met meerdere stappen en complexe kenniswerkstromen. Het bouwt voort op Gemini 3.7 Flash met verbeteringen in software-engineering en kenniswerk door agenten. Het accepteert tekst, beelden, audio, video en PDF, zodat een taak een geschreven doel kan combineren met het werkelijke materiaal dat nodig is om het op te lossen. Het bruikbare resultaat is een codewijziging, een toegelichte analyse, een geschreven antwoord of een gestructureerd record.
Geef voor een programmeeropdracht de eis, relevante bestanden, het waargenomen gedrag en de te behouden voorwaarden. Een schermafbeelding kan de bedoelde interface vastleggen, terwijl logboeken of een reproducerend voorbeeld de fout tonen. Vraag het model bij een foutopsporingstaak een verschil tussen de zichtbare toestand van een formulier en de opgeslagen waarde te volgen, het verantwoordelijke codepad te identificeren en een gerichte correctie voor te stellen. Houd het beoogde eindresultaat helder zodat een langere reeks onderzoeken en hulpmiddelaanroepen toch een specifieke voltooiingsvoorwaarde heeft.
Gebruik voor langer durend werk kleinere redeneerstappen, herhaalde hulpmiddelaanroepen en controles van tussenresultaten. De denkniveaus low, medium en high regelen de hoeveelheid redeneren; medium is de gedocumenteerde standaard. low past bij een snel concept of een afgebakende analyse, terwijl high bedoeld is voor moeilijke wiskunde, programmeren of taken met meerdere stappen. Gemini 3.8 Flash ondersteunt het denkniveau minimal niet. Langdurige foutopsporing en eenvoudige veldextractie vereisen daarom verschillende redeneerkeuzes in plaats van dezelfde instelling voor elke aanvraag.
De gedocumenteerde hulpmiddelen omvatten functieaanroepen, code-uitvoering, zoeken in bestanden, zoekgrounding, Google Maps-grounding en URL-context, met Computer Use als previewmogelijkheid. Gestructureerde uitvoer definieert een machineleesbaar resultaat. Functies moeten een duidelijk doel en gedefinieerde parameters hebben: het model kan om een functie vragen, terwijl de gekoppelde toepassing de bewerking uitvoert en het resultaat teruggeeft. Behoud functie-identiteiten en het werkelijk teruggegeven materiaal over meerdere beurten. Een bruikbaar eindantwoord legt uit welk bewijs de voorgestelde correctie of geëxtraheerde waarde ondersteunt.
De migratiehandleiding voor 3.8 gebruikt instellingen voor het denkniveau in plaats van oudere configuratie van het redeneerbudget en raadt aan verouderde samplingparameters en vooraf ingevulde modelbeurten te verwijderen. Ze vereist ook dat gedachtehandtekeningen in de betreffende stateloze werkstroom behouden blijven en dat functieantwoorden op identiteit en naam aan hun aanroepen worden gekoppeld. Deze details zijn belangrijk wanneer een taak met meerdere stappen wordt voortgezet: de volgende beurt heeft de werkelijke eerdere context nodig, geen herschreven beschrijving die het hulpmiddelresultaat of de handtekening verliest. Houd de vraag en gevraagde uitvoer expliciet in de nieuwe user-beurt.
Benoem voor multimodaal kenniswerk de relevante documentpagina’s, grafiek, audio-interval of videogebeurtenis en geef aan hoe die aan het antwoord moet bijdragen. Een documentvergelijking kan vragen om een tabel met verschillen en bronpassages; een grafiekvraag kan vragen naar de zichtbare waarden en de conclusie die ze ondersteunen. Een videoanalyse kan vragen om een beschrijving van gebeurtenissen die een bevinding rechtvaardigen. Het model geeft tekst terug uit deze invoer. Gegenereerde beelden, spraak en Live-audio-interactie behoren tot afzonderlijke modelprofielen.
De Gemini API-limieten zijn 1.048.576 invoertokens en 65.536 uitvoertokens, overeenkomend met maximaal 1M context en 64K tekstuitvoer van het native model. Instructies, gespreksgeschiedenis en aangeleverde media gebruiken invoercontext; redeneren of een lang eindresultaat moet binnen de gedocumenteerde uitvoerruimte passen. Google vermeldt ook caching, batchverwerking en Flex- en Priority-verwerking voor dit producentprofiel. Behoud bij onafhankelijke items een stabiele itemidentificatie en een expliciet uitvoerformaat zodat elk resultaat met zijn bron verbonden blijft.
Mogelijke beperkingen omvatten hallucinaties, incidentele traagheid of time-outs en hoger tokengebruik bij meer inspanning. De kennisgrens is maart 2026, met sommige domeinen nog beperkt tot januari 2025. Lever actueel bewijs aan of gebruik de gedocumenteerde groundinghulpmiddelen wanneer de taak van latere informatie afhangt. Toets bronverwijzingen, berekeningen en voorgestelde code aan de werkelijke invoer en uitvoeringsresultaten. Het bruikbare eindresultaat moet een onderbouwde bevinding onderscheiden van een open vraag zonder aan te nemen dat een vloeiend antwoord het gevraagde resultaat bewijst.
Ailoot Ultra · Batch POST /v1/batches google/gemini-3.8-flash:batch
google/gemini-3.8-flash:batchAan de slag
Gemini 3.8 Flash is Googles veelzijdige multimodale model voor langdurig software-engineeringwerk, agenten en complexe kennistaken. Het accepteert tekst, beelden, audio, video en PDF, geeft tekst terug en biedt low, medium of high redeneren met hulpmiddelen en gestructureerde uitvoer. De gedocumenteerde invoer- en uitvoerlimieten zijn 1.048.576/65.536 tokens.
- Toegestane invoer
- Tekst
- Resultaten
- Tekst
Beschikbaar in Ailoot · invoer en methoden
Ailoot Ultra · Batch POST /v1/batches
- Invoertypen
text- Uitvoertypen
text- Uitvoerformaat
- inline results[].response.body JSON
| Veld | Type | Vereiste | Waarden en limieten | Standaard |
|---|---|---|---|---|
Veldendpoint | Typestring | VereisteVereist | Waarden en limieten /v1/chat/completions | Standaard— |
Veldmodel | Typestring | VereisteVereist | Waarden en limieten google/gemini-3.8-flash:batch | Standaard— |
Veldrequests | Typebatch_item[] | VereisteVereist | Waarden en limieten Minimumaantal items: 1 | Standaard— |
Veldrequests[].custom_id | Typestring | VereisteVereist | Waarden en limieten | Standaard— |
Veldrequests[].body.messages | Typemessage[] | VereisteVereist | Waarden en limieten | Standaard— |
Veldcompletion_window | Typestring | VereisteOptioneel | Waarden en limieten 24h | Standaard— |
Veldprovider | Typeobject|null | VereisteOptioneel | Waarden en limieten | Standaard— |
Veldrequests[].body.model | Typestring | VereisteOptioneel | Waarden en limieten google/gemini-3.8-flash:batch, google/gemini-3.8-flash | Standaard— |
Veldprovider.only | Typestring[] | VereisteOptioneel | Waarden en limieten google-vertex/global | Standaard— |
Veldprovider.allow_fallbacks | Typeboolean|null | VereisteOptioneel | Waarden en limieten false, null | Standaard— |
Methodeparameters en levenscyclus
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractendpoint, model, requests |
Parametermaterial_types | Contracttext |
Parameterrepresentation | Contractinline requests[]; elk item bevat custom_id en body |
Parameterrequest_endpoint_profile | Contract/v1/chat/completions |
Parameterfile_material | ContractDe aanroeper mag daadwerkelijke JSONL-inhoud in UTF-8 lokaal in requests[] inlezen. Er wordt geen uploaddoel (purpose), input_file_id of bestandsverwijzing gebruikt. Ontbrekend of leeg klantmateriaal stopt de voorbereiding vóór POST. |
Parameterserialization_order | Contractendpoint, model, provider (indien opgegeven), completion_window (indien opgegeven), requests als laatste |
Parameteroptional_controls | Contractprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | ContractBody’s voor tekstaanvragen via Chat Completions in de gedocumenteerde inline Batch-envelop. |
Levenscyclus: asynchronous
GET /v1/batches/{operation_id} · de daadwerkelijke response.id uit het oorspronkelijke aanmaakantwoord; dezelfde gebruiker/sleutel/groep
Tarieven
Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.
- Snelle modus
- Niet opgegeven Wanneer de snelle modus is geselecteerd
- Flexmodus
- Niet opgegeven Wanneer de modus flex is geselecteerd
- Maximale redeneerinspanning
- Niet opgegeven Wanneer bij maximale redeneerinspanning de default-aanpassing wordt gebruikt
- Tarieven voor expliciete caching
- Niet ingeschakeld Wanneer expliciete caching wordt aangevraagd
Ailoot-tarieven
Prijzen per configuratie
Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.
| Configuratie | Tariefstaffel | Contexttokens, meer dan | Contexttokens, tot en met | Kosten |
|---|---|---|---|---|
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Contexttokens, meer dan— | Contexttokens, tot en metGeen bovengrens | Kosten Invoer · Invoertokens $0.00075 / 1K tokens Uitvoer · Uitvoertokens $0.00375 / 1K tokens Invoer · Cache lezen $0.000075 / 1K tokens Invoer · Cache schrijven $0.0000833333333333334 / 1K tokens Invoer · Cache schrijven, 1 uur — / 1K tokens |
| ConfiguratieNiveau 1 voor aanvraaglengte | Tariefstaffel— | Contexttokens, meer dan0 | Contexttokens, tot en metGeen bovengrens | Kosten Invoer · Invoertokens $0.00075 / 1K tokens Uitvoer · Uitvoertokens $0.00375 / 1K tokens Invoer · Cache lezen $0.000075 / 1K tokens Invoer · Cache schrijven $0.0000833333333333334 / 1K tokens Invoer · Cache schrijven, 1 uur — / 1K tokens |
Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →
Voorbeeldverzoeken
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.
Resultaten ophalen en opslaan
Ailoot Ultra · Batch
inline results[].response.body JSON
GET /v1/batches/{operation_id}
Taakstatus controleren
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
Alle voltooide resultaten bewaren
Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.
Bewaar de volledige oorspronkelijke status-JSON, elk resultaat/custom_id en de volledige antwoord- of foutbody. Sla voltooide results[] zonder filtering op als JSONL.
Als het oorspronkelijke antwoord moet worden gecontroleerd
Bewaar de oorspronkelijke bewerkings-ID. Bij 503 result_pending_check hoort X-Should-Retry:false; dien een oorspronkelijke batch met onbekende uitkomst nooit opnieuw in.
Antwoordvelden
| Veld | Type |
|---|---|
Veldresults[].custom_id | Typestring |
Veldresults[].response.body.choices[].message.content | Typestring|null |
Veldresults[].error | Typeobject|null |
Veldusage | Typeobject|null |
Veldid | Typestring |
Veldmodel | Typestring |
Veldendpoint | Typestring |
Veldstatus | Typestring |
Veldrequest_counts | Typeobject |
Veldresults[].id | Typestring |
Veldresults[].response.status_code | Typeinteger |
Veldresults[].response.request_id | Typestring |
Fouten en vervolgstappen
| Antwoord | Voorwaarde | Volgende stap |
|---|---|---|
Antwoord400 · invalid_request_error | VoorwaardeOngeldige gedocumenteerde inline envelop, dubbele sleutels, ongeldige itemidentiteit of een conflict met de geconfigureerde modelmogelijkheden. | Volgende stapCorrigeer de aangegeven velden voordat u een nieuwe aanvraag indient. |
Antwoord401 · authentication_error | VoorwaardeOngeldige API-sleutel. | Volgende stapGebruik de geautoriseerde Ailoot-sleutel. |
Antwoord403 · permission_error | VoorwaardeBatch-groep niet beschikbaar. | Volgende stapControleer de toegangsrechten van de sleutel/groep. |
Antwoord422 · invalid_request_error | VoorwaardeBij Batch worden kosten van het saldo afgeschreven; aanmaken via een abonnement wordt geweigerd. | Volgende stapGebruik de geautoriseerde groep waarvoor kosten van het saldo worden afgeschreven. |
Antwoord422 · price_unavailable | VoorwaardeVoor de Batch-invoer kan geen prijsopgave worden berekend. | Volgende stapBewaar het antwoord; gebruik de gedocumenteerde invoer voor deze familie. |
Antwoord402 · billing_error | VoorwaardeBatch-reservering niet beschikbaar. | Volgende stapLos het toelatingsprobleem op voordat u een nieuwe aanvraag indient. |
Antwoord503 · price_unavailable | VoorwaardePrijs voor de Batch-methode/native tarieven niet beschikbaar. | Volgende stapBewaar het antwoord; vervang de prijzen niet. |
Antwoord503 · api_error | VoorwaardeDe exacte leveranciersroute is niet beschikbaar. | Volgende stapBewaar het antwoord voor herstel van de route. |
Antwoord503 · result_pending_check | VoorwaardeHet oorspronkelijke resultaat moet worden gecontroleerd; X-Should-Retry:false. | Volgende stapBewaar de oorspronkelijke operation_id/id en lees de status ervan uit; herhaal de oorspronkelijke POST nooit. |
Antwoord404 · not_found | VoorwaardeDe bewerking voor de Batch-status ontbreekt of is eigendom van een andere identiteit. | Volgende stapGebruik exact de oorspronkelijke id en dezelfde gebruiker/sleutel/groep. |
Aliasnamen
Modelaliasnamen
Ailoot Ultra google/gemini-3.8-flash:batch
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
FAQ · Google: Gemini 3.8 Flash (batch)
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/batches·google/gemini-3.8-flash:batch:text→text- Welke velden gebruikt het verzoek?
POST /v1/batches·google/gemini-3.8-flash:batch:endpoint,model,requests,completion_window,provider- Welke limieten gelden?
POST /v1/batches·google/gemini-3.8-flash:batch:requests.min_items:1