Google: Gemini 3.1 Pro Preview (batch)
Gemini 3.1 Pro Preview is Google’s multimodale redeneermodel voor complexe software-, algoritme- en kennistaken. Het accepteert tekst, afbeeldingen, audio, video en PDF en geeft tekst of code terug, met tools en gestructureerde uitvoer. De redeneerniveaus low, medium en high sturen de inspanning; high is de gedocumenteerde standaard.
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.1 Pro Preview is Googles redeneergerichte tekstmodel voor complexe taken die software-engineering, algoritmische ontwikkeling of synthese van multimodaal bewijs vereisen. Het bouwt voort op Gemini 3 Pro en benadrukt precies hulpmiddelgebruik, efficiënter redeneren en betrouwbare uitvoering in meerdere stappen. Tekst, beelden, audio, video en PDF kunnen bijdragen aan een geschreven antwoord, een coderesultaat of een gestructureerd resultaat.
Geef voor een veeleisende programmeeropdracht het doel, relevant repositorymateriaal, het waargenomen gedrag en de te behouden voorwaarden. Volledige coderepositories kunnen context voor de opdracht leveren. Vraag het model bij een codecontractreview te vergelijken hoe twee modules een gedeeld gegevenscontract behandelen, de afwijking te identificeren en een gerichte correctie met ondersteunende codeverwijzingen voor te stellen. De bruikbare uitvoer onderscheidt de analyse, voorgestelde revisie en het bewijs van eventuele validatie door de gekoppelde toepassing.
Het introductiemateriaal demonstreert op code gebaseerde visuele uitleg en interactieve projecten, waaronder geanimeerde SVG-uitvoer uit een tekstbriefing. Dit zijn coderesultaten, geen rasterbeeldgeneratie. Een heldere briefing kan definiëren wat moet worden uitgelegd, hoe de visualisatie zich moet gedragen en welke gegevens ze moet weergeven. Toets de resulterende code en weergave aan die eisen. Geef voor een gegevenssynthesetaak de werkelijke bronnen en vraag om één weergave die de relaties en kwalificaties daarin behoudt.
De gedocumenteerde denkniveaus zijn low, medium en high, met high als standaard voor 3.1 Pro Preview. Denken kan in dit Pro-profiel niet volledig worden uitgeschakeld. Kies lagere inspanning voor een afgebakend antwoord en meer redeneren voor moeilijk werk in meerdere stappen en laat voldoende uitvoerruimte voor het eindresultaat. Een kleine uitvoerlimiet kan het redeneren onderbreken voordat een bruikbaar eindantwoord verschijnt. De denkhandleiding onderscheidt een samenvatting van redeneren van het volledige interne proces en legt uit waarom de gedachtehandtekeningcontext van het gesprek belangrijk is.
De exacte Preview-tabel vermeldt functieaanroepen, code-uitvoering, zoekgrounding, Maps-grounding, URL-context en gestructureerde uitvoer. Ze beperkt File Search tot AI Studio. Geef functiedoelen en parameterdefinities en ga verder vanuit het werkelijk teruggegeven resultaat. Het afzonderlijke Custom Tools Preview-profiel is geoptimaliseerd om aangepaste hulpmiddelen en bash voorrang te geven; het is een afzonderlijk benoemd producentendpoint, dus die specialisatie mag niet stilzwijgend als een eigenschap van elke 3.1 Pro-aanvraag worden behandeld. Kies een gestructureerd resultaatschema wanneer een taak gedefinieerde records in plaats van onbeperkt proza vereist.
Benoem voor multimodale analyse de relevante pagina, visualisatie, opnameperiode of videogebeurtenis. Vergelijk voor documentanalyse een diagram met de schriftelijke specificatie en geef elke afwijking met de ondersteunende passage terug. Een gesproken bron kan een transcript of interpretatie in tekst bijdragen. Behoud bronverwijzingen voor conclusies die controle vereisen en scheid wat zichtbaar of vermeld is van wat is afgeleid. De uitvoer van dit profiel blijft tekst, inclusief code; native beeld- of spraakgeneratie maakt geen deel uit van de exacte capaciteitentabel.
De native kaart van 3.1 Pro specificeert maximaal 1M context en 64K tekstuitvoer en de exacte Preview-API-tabel geeft 1.048.576 invoertokens en 65.536 uitvoertokens. Neem instructies, gespreksgeschiedenis en media mee in het invoerbudget. Caching en batchverwerking zijn gedocumenteerd en Flex- en Priority-opties zijn ook voor het producentprofiel vermeld. Definieer voor meerdere onafhankelijke items de vereiste uitvoer en behoud elke bronidentificatie in plaats van niet-verwant bewijs tot één ontraceerbaar antwoord te combineren.
De benoemde Preview-editie blijft onderscheiden van Pro’s Custom Tools-profiel en latere Flash- of Pro-releases. De sterke punten betreffen complex redeneren, programmeren en bewijssynthese; het eindresultaat moet nog steeds aan de bron en werkelijke hulpmiddelresultaten worden getoetst. Behoud onopgeloste dubbelzinnigheid wanneer de aangeleverde informatie geen definitieve conclusie ondersteunt. Een bruikbaar resultaat is het onderbouwde antwoord, de code of het record waar de taak om vroeg, met voldoende bewijs om de praktische grenzen ervan te beoordelen.
Ailoot Ultra · Batch POST /v1/batches google/gemini-3.1-pro-preview:batch
google/gemini-3.1-pro-preview:batch
google/gemini-3.1-pro-preview:batchAan de slag
Gemini 3.1 Pro Preview is Google’s multimodale redeneermodel voor complexe software-, algoritme- en kennistaken. Het accepteert tekst, afbeeldingen, audio, video en PDF en geeft tekst of code terug, met tools en gestructureerde uitvoer. De redeneerniveaus low, medium en high sturen de inspanning; high is de gedocumenteerde standaard.
- 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.1-pro-preview: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.1-pro-preview:batch, google/gemini-3.1-pro-preview | 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.002 / 1K tokens Uitvoer · Uitvoertokens $0.012 / 1K tokens Invoer · Cache lezen — / 1K tokens Invoer · Cache schrijven — / 1K tokens Invoer · Cache schrijven, 1 uur — / 1K tokens |
| ConfiguratieNiveau 1 voor aanvraaglengte | Tariefstaffel— | Contexttokens, meer dan0 | Contexttokens, tot en met200.000 | Kosten Invoer · Invoertokens $0.002 / 1K tokens Uitvoer · Uitvoertokens $0.012 / 1K tokens Invoer · Cache lezen — / 1K tokens Invoer · Cache schrijven — / 1K tokens Invoer · Cache schrijven, 1 uur — / 1K tokens |
| ConfiguratieNiveau 2 voor aanvraaglengte | Tariefstaffel— | Contexttokens, meer dan200.000 | Contexttokens, tot en metGeen bovengrens | Kosten Invoer · Invoertokens $0.004 / 1K tokens Uitvoer · Uitvoertokens $0.018 / 1K tokens Invoer · Cache lezen — / 1K tokens Invoer · Cache schrijven — / 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.1-pro-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.1-pro-preview:batch', 'google/gemini-3.1-pro-preview']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"google/gemini-3.1-pro-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.
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.1-pro-preview:batch
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
FAQ · Google: Gemini 3.1 Pro Preview (batch)
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/batches·google/gemini-3.1-pro-preview:batch:text→text- Welke velden gebruikt het verzoek?
POST /v1/batches·google/gemini-3.1-pro-preview:batch:endpoint,model,requests,completion_window,provider- Welke limieten gelden?
POST /v1/batches·google/gemini-3.1-pro-preview:batch:requests.min_items:1