Google: Gemini 3.1 Pro Preview (batch)
Gemini 3.1 Pro Preview ist Googles multimodales Reasoning-Modell für komplexe Software-, Algorithmus- und Wissensaufgaben. Es nimmt Text, Bilder, Audio, Video und PDF entgegen und gibt Text oder Code aus, mit Werkzeugen und strukturierter Ausgabe. Niedrige, mittlere und hohe Reasoning-Stufen steuern den Aufwand; die hohe Stufe ist der dokumentierte Standard.
Über das Modell
Diese Beschreibung erläutert die Fähigkeiten des Modells. Die über Ailoot verfügbaren Eingaben, Ausgaben und Optionen sind unten für die ausgewählte Methode aufgeführt.
Gemini 3.1 Pro Preview ist Googles denkorientiertes Textmodell für komplexe Aufgaben, die Softwareentwicklung, algorithmische Entwicklung oder die Zusammenführung multimodaler Belege benötigen. Es baut auf Gemini 3 Pro auf und betont präzise Werkzeugnutzung, effizienteres Denken und zuverlässige mehrstufige Ausführung. Text, Bilder, Audio, Video und PDF können zu einer schriftlichen Antwort, einem Codeergebnis oder einem strukturierten Ergebnis beitragen.
Stellen Sie für einen anspruchsvollen Programmierauftrag das Ziel, relevante Repository-Inhalte, das beobachtete Verhalten und die zu erhaltenden Bedingungen bereit. Ganze Code-Repositories können Kontext für den Auftrag liefern. Bitten Sie bei einer Prüfung von Codeverträgen das Modell, den Umgang zweier Module mit einem gemeinsamen Datenvertrag zu vergleichen, die Abweichung zu ermitteln und eine gezielte Korrektur mit stützenden Codeverweisen vorzuschlagen. Eine hilfreiche Ausgabe unterscheidet Analyse, vorgeschlagene Überarbeitung und Belege von einer etwaigen Validierung durch die angebundene Anwendung.
Das Einführungsmaterial zeigt codebasierte visuelle Erklärungen und interaktive Projekte, einschließlich animierter SVG-Ausgaben aus einem Textauftrag. Dies sind Codeergebnisse statt Rasterbilderzeugung. Ein klarer Auftrag kann festlegen, was erklärt werden soll, wie sich die Visualisierung verhalten soll und welche Daten sie darstellen soll. Prüfen Sie den entstandenen Code und seine Darstellung anhand dieser Anforderungen. Stellen Sie für die Zusammenführung von Daten die tatsächlichen Quellen bereit und verlangen Sie eine gemeinsame Ansicht, die deren Beziehungen und Einschränkungen erhält.
Die dokumentierten Denkstufen sind low, medium und high, mit high als Standard für 3.1 Pro Preview. Der Denkprozess lässt sich in diesem Pro-Profil nicht vollständig deaktivieren. Wählen Sie einen geringeren Aufwand für eine klar begrenzte Antwort und mehr Denken für schwierige mehrstufige Arbeit und lassen Sie dabei genügend Ausgabebudget für das Endergebnis. Eine kleine Ausgabegrenze kann den Denkprozess unterbrechen, bevor eine nutzbare abschließende Antwort erscheint. Der Denkleitfaden trennt eine Zusammenfassung der Überlegungen vom vollständigen internen Prozess und erklärt, warum der Denksignaturkontext des Gesprächs wichtig ist.
Die genaue Preview-Tabelle nennt Funktionsaufrufe, Codeausführung, Such-Grounding, Maps Grounding, URL-Kontext und strukturierte Ausgaben. Sie begrenzt File Search auf AI Studio. Geben Sie Funktionszwecke und Parameterdefinitionen an und setzen Sie mit dem tatsächlich zurückgegebenen Ergebnis fort. Das separate Profil Custom Tools Preview ist darauf optimiert, benutzerdefinierten Werkzeugen und bash Vorrang zu geben; es ist ein eigenständig benannter Herstellerendpunkt, weshalb diese Spezialisierung nicht stillschweigend als Eigenschaft jeder 3.1 Pro-Anfrage behandelt werden sollte. Wählen Sie ein strukturiertes Ergebnisschema, wenn eine Aufgabe definierte Datensätze statt unbeschränkten Fließtexts benötigt.
Benennen Sie für eine multimodale Analyse die relevante Seite, Darstellung, den Aufnahmeabschnitt oder das Videoereignis. Vergleichen Sie bei einer Dokumentanalyse ein Diagramm mit seiner schriftlichen Spezifikation und geben Sie jede Abweichung mit der stützenden Passage zurück. Eine gesprochene Quelle kann ein Transkript oder eine Interpretation in Textform beitragen. Erhalten Sie Quellenverweise für prüfbedürftige Schlussfolgerungen und trennen Sie Sichtbares oder ausdrücklich Genanntes von Erschlossenem. Die Ausgabe dieses Profils bleibt Text einschließlich Code; native Bild- oder Spracherzeugung gehört nicht zu seiner genauen Fähigkeitentabelle.
Die native Modellkarte für 3.1 Pro nennt bis zu 1M Kontext und 64K Textausgabe, und die genaue Preview-API-Tabelle gibt 1.048.576 Eingabetoken und 65.536 Ausgabetoken an. Rechnen Sie Anweisungen, Gesprächsverlauf und Medien zum Eingabebudget. Caching und Stapelverarbeitung sind dokumentiert; für das Herstellerprofil sind außerdem Flex und Priority aufgeführt. Definieren Sie bei mehreren unabhängigen Elementen die benötigte Ausgabe und erhalten Sie jede Quellkennung, statt unverbundene Belege in einer nicht nachverfolgbaren Antwort zusammenzufassen.
Die benannte Preview-Edition bleibt vom Custom Tools-Profil von Pro und späteren Flash- oder Pro-Veröffentlichungen getrennt. Ihre Stärken betreffen komplexes Denken, Programmierung und die Zusammenführung von Belegen; das Endergebnis muss dennoch anhand der Quelle und tatsächlicher Werkzeugergebnisse geprüft werden. Erhalten Sie ungeklärte Mehrdeutigkeiten, wenn die bereitgestellten Informationen keine eindeutige Schlussfolgerung stützen. Ein hilfreiches Ergebnis ist die verlangte belegte Antwort, der Code oder Datensatz mit genügend Belegen, um seine praktischen Grenzen einzuschätzen.
Ailoot Ultra · Stapelverarbeitung POST /v1/batches google/gemini-3.1-pro-preview:batch
google/gemini-3.1-pro-preview:batch
google/gemini-3.1-pro-preview:batchStart
Gemini 3.1 Pro Preview ist Googles multimodales Reasoning-Modell für komplexe Software-, Algorithmus- und Wissensaufgaben. Es nimmt Text, Bilder, Audio, Video und PDF entgegen und gibt Text oder Code aus, mit Werkzeugen und strukturierter Ausgabe. Niedrige, mittlere und hohe Reasoning-Stufen steuern den Aufwand; die hohe Stufe ist der dokumentierte Standard.
- Zulässige Eingaben
- Text
- Ergebnisse
- Text
In Ailoot verfügbar · Eingaben und Methoden
Ailoot Ultra · Stapelverarbeitung POST /v1/batches
- Eingabetypen
text- Ausgabetypen
text- Ausgabeformat
- eingebettetes JSON unter results[].response.body
| Feld | Typ | Anforderung | Werte und Limits | Standard |
|---|---|---|---|---|
Feldendpoint | Typstring | AnforderungErforderlich | Werte und Limits /v1/chat/completions | Standard— |
Feldmodel | Typstring | AnforderungErforderlich | Werte und Limits google/gemini-3.1-pro-preview:batch | Standard— |
Feldrequests | Typbatch_item[] | AnforderungErforderlich | Werte und Limits Mindestanzahl Elemente: 1 | Standard— |
Feldrequests[].custom_id | Typstring | AnforderungErforderlich | Werte und Limits | Standard— |
Feldrequests[].body.messages | Typmessage[] | AnforderungErforderlich | Werte und Limits | Standard— |
Feldcompletion_window | Typstring | AnforderungOptional | Werte und Limits 24h | Standard— |
Feldprovider | Typobject|null | AnforderungOptional | Werte und Limits | Standard— |
Feldrequests[].body.model | Typstring | AnforderungOptional | Werte und Limits google/gemini-3.1-pro-preview:batch, google/gemini-3.1-pro-preview | Standard— |
Feldprovider.only | Typstring[] | AnforderungOptional | Werte und Limits google-vertex/global | Standard— |
Feldprovider.allow_fallbacks | Typboolean|null | AnforderungOptional | Werte und Limits false, null | Standard— |
Methodenparameter und Lebenszyklus
| Parameter | Vertrag |
|---|---|
Parametercontent_type | Vertragapplication/json |
Parameterrequired | Vertragendpoint, model, requests |
Parametermaterial_types | Vertragtext |
Parameterrepresentation | Vertrageingebettete requests[]; jedes Element enthält custom_id und body |
Parameterrequest_endpoint_profile | Vertrag/v1/chat/completions |
Parameterfile_material | VertragDer Aufrufer kann tatsächliches UTF-8-JSONL lokal in requests[] einlesen. Es werden weder ein Upload-Zweck noch input_file_id oder eine Dateireferenz verwendet. Fehlendes oder leeres Kundenmaterial stoppt die Vorbereitung vor POST. |
Parameterserialization_order | Vertragendpoint, model, provider (falls angegeben), completion_window (falls angegeben), requests als letztes Feld |
Parameteroptional_controls | Vertragprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | VertragAnfragekörper für Text Chat Completions in der dokumentierten Inline-Batch-Struktur. |
Lebenszyklus: asynchronous
GET /v1/batches/{operation_id} · die tatsächliche response.id der ursprünglichen Erstellungsantwort; derselbe Nutzer/Schlüssel/dieselbe Gruppe
Tarife
Tarifangaben erweitern die Anfrageoptionen nicht. Unterstützte Parameter stehen bei der ausgewählten Methode.
- Schnellmodus
- Nicht angegeben Wenn der Schnellmodus ausgewählt ist
- Flex-Modus
- Nicht angegeben Wenn der Modus flex ausgewählt ist
- Maximaler Denkaufwand
- Nicht angegeben Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird
- Preise für explizites Caching
- Nicht aktiviert Wenn explizites Caching angefordert wird
Ailoot-Tarife
Preise nach Konfiguration
Ordnen Sie jede Gebühr den angezeigten Bedingungen zu. Verwenden Sie für jede Gruppe alternativer Konfigurationen einen Tarif.
| Konfiguration | Tarifstaffel | Kontexttoken, mehr als | Kontexttoken, bis einschließlich | Gebühr |
|---|---|---|---|---|
| KonfigurationBasistarife für Token | TarifstaffelGrundtarif | Kontexttoken, mehr als— | Kontexttoken, bis einschließlichKeine Obergrenze | Gebühr Eingabe · Eingabetoken $0.002 / 1K Token Ausgabe · Ausgabetoken $0.012 / 1K Token Eingabe · Cache-Lesen — / 1K Token Eingabe · Cache-Schreiben — / 1K Token Eingabe · Cache-Schreiben, 1 Stunde — / 1K Token |
| KonfigurationAnfragelängenstufe 1 | Tarifstaffel— | Kontexttoken, mehr als0 | Kontexttoken, bis einschließlich200.000 | Gebühr Eingabe · Eingabetoken $0.002 / 1K Token Ausgabe · Ausgabetoken $0.012 / 1K Token Eingabe · Cache-Lesen — / 1K Token Eingabe · Cache-Schreiben — / 1K Token Eingabe · Cache-Schreiben, 1 Stunde — / 1K Token |
| KonfigurationAnfragelängenstufe 2 | Tarifstaffel— | Kontexttoken, mehr als200.000 | Kontexttoken, bis einschließlichKeine Obergrenze | Gebühr Eingabe · Eingabetoken $0.004 / 1K Token Ausgabe · Ausgabetoken $0.018 / 1K Token Eingabe · Cache-Lesen — / 1K Token Eingabe · Cache-Schreiben — / 1K Token Eingabe · Cache-Schreiben, 1 Stunde — / 1K Token |
Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschließenden Verbrauchsdatensatzes. So funktionieren Reservierung und Abrechnung →
Beispielanfragen
Ailoot Ultra · Stapelverarbeitung
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.
Ergebnisse abrufen und speichern
Ailoot Ultra · Stapelverarbeitung
eingebettetes JSON unter results[].response.body
GET /v1/batches/{operation_id}
Auftragsstatus prüfen
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 fertiggestellten Ergebnisse aufbewahren
Bewahren Sie jede vollständig zurückgegebene Antwort, Datei und jeden Inhaltsteil auf.
Das vollständige ursprüngliche Status-JSON, jedes Ergebnis/jede custom_id und den vollständigen Antwort- oder Fehlerkörper aufbewahren. Abgeschlossene results[] ohne Filterung als JSONL speichern.
Wenn die ursprüngliche Antwort geprüft werden muss
Die ursprüngliche Vorgangs-ID beibehalten. Bei 503 result_pending_check gilt X-Should-Retry:false; einen ursprünglichen Batch mit unbekanntem Ausgang niemals erneut einreichen.
Antwortfelder
| Feld | Typ |
|---|---|
Feldresults[].custom_id | Typstring |
Feldresults[].response.body.choices[].message.content | Typstring|null |
Feldresults[].error | Typobject|null |
Feldusage | Typobject|null |
Feldid | Typstring |
Feldmodel | Typstring |
Feldendpoint | Typstring |
Feldstatus | Typstring |
Feldrequest_counts | Typobject |
Feldresults[].id | Typstring |
Feldresults[].response.status_code | Typinteger |
Feldresults[].response.request_id | Typstring |
Fehler und nächste Schritte
| Antwort | Bedingung | Nächster Schritt |
|---|---|---|
Antwort400 · invalid_request_error | BedingungUngültige Struktur der dokumentierten Inline-Einbettung, doppelte Schlüssel, ungültige Identitätsangaben zu einem Element oder ein Konflikt mit den konfigurierten Modellfähigkeiten. | Nächster SchrittDie angegebenen Felder vor jeder neuen Einreichung korrigieren. |
Antwort401 · authentication_error | BedingungUngültiger API-Schlüssel. | Nächster SchrittDen autorisierten Ailoot-Schlüssel verwenden. |
Antwort403 · permission_error | BedingungGruppe für Stapelverarbeitung nicht verfügbar. | Nächster SchrittDie Berechtigung des Schlüssels bzw. der Gruppe prüfen. |
Antwort422 · invalid_request_error | BedingungStapelverarbeitung wird über das Guthaben abgerechnet; die Erstellung über ein Abonnement wird abgelehnt. | Nächster SchrittDie autorisierte Gruppe mit Guthabenabrechnung verwenden. |
Antwort422 · price_unavailable | BedingungFür die Batch-Eingabe kann kein Preisangebot erstellt werden. | Nächster SchrittAntwort aufbewahren; die dokumentierte Eingabe der API-Familie verwenden. |
Antwort402 · billing_error | BedingungReservierung für Stapelverarbeitung nicht verfügbar. | Nächster SchrittDie Zulassung klären, bevor eine neue Anfrage gestellt wird. |
Antwort503 · price_unavailable | BedingungMethodenpreis bzw. native Tarife für Stapelverarbeitung nicht verfügbar. | Nächster SchrittAntwort aufbewahren; keine anderen Preise einsetzen. |
Antwort503 · api_error | BedingungDie genaue Anbieterroute ist nicht verfügbar. | Nächster SchrittAntwort zur Reparatur der Route aufbewahren. |
Antwort503 · result_pending_check | BedingungDas ursprüngliche Ergebnis muss geprüft werden; X-Should-Retry:false. | Nächster SchrittDie ursprüngliche operation_id/id beibehalten und ihren Status lesen; den ursprünglichen POST niemals wiederholen. |
Antwort404 · not_found | BedingungDer Batch-Vorgang, dessen Status abgefragt wird, ist nicht vorhanden oder gehört einer anderen Identität. | Nächster SchrittDie genaue ursprüngliche id und denselben Nutzer/Schlüssel/dieselbe Gruppe verwenden. |
Aliasnamen
Modellaliasnamen
Ailoot Ultra google/gemini-3.1-pro-preview:batch
Aliasnamen für Methodenpfade
Verwenden Sie die oben angezeigten Methodenpfade.
Zugehörige Aufrufer-IDs
FAQ · Google: Gemini 3.1 Pro Preview (batch)
- Welche Eingaben und Ergebnisse sind verfügbar?
POST /v1/batches·google/gemini-3.1-pro-preview:batch:text→text- Welche Felder verwendet die Anfrage?
POST /v1/batches·google/gemini-3.1-pro-preview:batch:endpoint,model,requests,completion_window,provider- Welche Grenzen gelten?
POST /v1/batches·google/gemini-3.1-pro-preview:batch:requests.min_items:1