Google: Gemini 3.5 Flash (batch)
Gemini 3.5 Flash verbindet multimodales Verständnis mit Denken für Programmierung und mehrstufige Agentenaufgaben. Es verarbeitet Text, Bilder, Video, Audio und PDF und erzeugt Text, mit strukturierten Ausgaben, Werkzeugen und einer Eingabegrenze von 1’048’576 Token in seinem dokumentierten Profil.
Ü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.5 Flash ist Googles multimodales Flash-Modellprofil für länger andauernde Programmierung und Agentenarbeit. Seine dokumentierten Eingaben sind Text, Bilder, Video, Audio und PDF, mit Text als Ausgabe. Zu den Aufgabenschwerpunkten des Modells gehören iterative Programmierung, die Untersuchung alternativer Lösungen und längere Folgen von Anweisungen und Werkzeugnutzung. Die Edition 3.5 bietet dokumentierte Denksteuerung, multimodale Eingaben und Werkzeugabläufe.
Eine Programmieraufgabe kann eine schriftliche Anforderung, relevante Quelldateien und einen Screenshot des gewünschten Ergebnisses verbinden. Stellen Sie das beobachtete Verhalten, das erwartete Verhalten und die unverändert zu erhaltenden Bedingungen bereit. Ein beispielhafter Auftrag lautet: «Vergleichen Sie den Screenshot mit dem Komponententext, ermitteln Sie die Abweichung im Formularablauf und schlagen Sie eine gezielte Korrektur vor. Erklären Sie, welche Quelldetails die Änderung begründen.» Stellen Sie bei einer Dokumentaufgabe die relevanten Seiten bereit und verlangen Sie einen Vergleich mit ausdrücklichen Anforderungen, mit Quellenverweisen für jede Feststellung.
Die Edition dokumentiert die Denkstufen minimal, low, medium und high. medium ist der Standard und ersetzt den Standard high von Gemini 3 Flash Preview. minimal eignet sich für einfache Antworten und unkomplizierte Werkzeugentscheidungen, ohne zu garantieren, dass der Denkprozess vollständig deaktiviert ist; low richtet sich an Aufgaben mit weniger Schritten; high bietet vertieftes Denken für schwierige Mathematik, Programmierung und Agentenprobleme. Google empfiehlt, thinking_level zur Aufwandssteuerung zu verwenden und die Standard-Sampling-Einstellungen beizubehalten, statt den Denkprozess durch Änderungen an temperature, top-p oder top-k erzwingen zu wollen.
Ein prägendes Verhalten ist der Erhalt des Denkkontexts über eine Aufgabe mit mehreren Gesprächsschritten hinweg. Googles Interactions-Ablauf übernimmt diesen Kontext automatisch; sein GenerateContent-Ablauf erfordert den vollständigen unveränderten Gesprächsverlauf einschliesslich Denksignaturen. Dies unterstützt eine fortlaufende Fehlersuche oder ein Refactoring, bei dem frühere Überlegungen in den nächsten Schritt einfliessen. Erhalten Sie die tatsächliche Gesprächsstruktur, statt jede Folgeanfrage in einen unabhängigen Prompt umzuwandeln, und halten Sie während der Arbeit das gewünschte Endergebnis klar.
Die dokumentierten Werkzeuge umfassen Google Search, Grounding mit Google Maps, File Search, Code Execution, URL Context und Standard Function Calling; kombinierte Werkzeugnutzung und Computer Use sind als Vorschaufunktion gekennzeichnet. Structured Outputs kann einen definierten Datensatz liefern. Geben Sie Funktionen einen klaren Zweck und definierte Parameter: Das Modell wählt eine Funktion, während die angebundene Anwendung ihren Vorgang ausführt und das Ergebnis zurückgibt. Google verlangt, dass Funktionsergebnisse den vorhergehenden Aufrufen nach Identität, Name und Anzahl entsprechen; multimodale Ergebnisse gehören in die Funktionsantwort.
Die genaue API-Modelltabelle nennt maximal 1’048’576 Eingabetoken und 65’536 Ausgabetoken. Gesprächsverlauf und bereitgestellte Medien zählen zum Eingabebudget. Caching und Stapelverarbeitung sind für dieses Profil dokumentiert, mit zusätzlichen Flex- und Priority-Verarbeitungsoptionen in Googles Tabelle. Diese Grenzen und Fähigkeiten beschreiben die Herstelleredition; sie verlangen weder eine Antwort, die das ganze Ausgabefenster füllt, noch machen sie jedes Werkzeug für eine Aufgabe notwendig.
Dieses Profil erzeugt Text statt Bilder oder Audio und verwendet Live API nicht. Sein Entwicklerleitfaden schliesst ausserdem Bildsegmentierung aus. Verlangen Sie bei einer visuellen Frage eine Beschreibung, Extraktion oder Interpretation des bereitgestellten Materials; bei einer Sprachaufnahme ein Textergebnis. Wenn die Antwort von neueren Informationen abhängt, kann der dokumentierte Such-Grounding-Ablauf Quellen über das Trainingswissen hinaus hinzufügen. Geben Sie an, ob externe Informationen benötigt werden und welche Belege die abschliessende Antwort erhalten soll.
Definieren Sie für einen hilfreichen längeren Auftrag das Endergebnis und das Abschlusskriterium vor dem ersten Schritt. Eine Supportanalyse könnte eine Tabelle beobachteter Probleme, stützender Passagen und einen Antwortvorschlag verlangen; eine Programmieraufgabe könnte die gezielte Änderung und das betreffende Validierungsergebnis erfordern. Fügen Sie den relevanten Quellkontext hinzu, bestimmen Sie erlaubte Werkzeugaktionen und verlangen Sie eine ausdrückliche Schlussantwort, die abgeschlossene Arbeit von Fragen mit weiterem Informationsbedarf trennt. So wird der fortlaufende Ablauf des Modells zu einem konkreten Text, Code oder strukturierten Ergebnis.
Ailoot Ultra · Stapelverarbeitung POST /v1/batches google/gemini-3.5-flash:batch
google/gemini-3.5-flash:batchEinstieg
Gemini 3.5 Flash verbindet multimodales Verständnis mit Denken für Programmierung und mehrstufige Agentenaufgaben. Es verarbeitet Text, Bilder, Video, Audio und PDF und erzeugt Text, mit strukturierten Ausgaben, Werkzeugen und einer Eingabegrenze von 1’048’576 Token in seinem dokumentierten Profil.
- Zulässige Eingaben
- Text
- Ergebnisse
- Text
In Ailoot verfügbar · Eingaben und Methoden
Ailoot Ultra · Stapelverarbeitung POST /v1/batches
- Eingabe
text- Ausgabe
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.5-flash: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.5-flash:batch, google/gemini-3.5-flash | 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 einschliesslich | Gebühr |
|---|---|---|---|---|
| KonfigurationBasistarife für Token | TarifstaffelGrundtarif | Kontexttoken, mehr als— | Kontexttoken, bis einschliesslichKeine Obergrenze | Gebühr Eingabe · Eingabetoken $0.0015 / 1K Tokens Ausgabe · Ausgabetoken $0.009 / 1K Tokens Eingabe · Cache lesen $0.00015 / 1K Tokens Eingabe · Cache schreiben — / 1K Tokens Eingabe · Cache schreiben, 1 Stunde — / 1K Tokens |
| KonfigurationAnfragelängenstufe 1 | Tarifstaffel— | Kontexttoken, mehr als0 | Kontexttoken, bis einschliesslichKeine Obergrenze | Gebühr Eingabe · Eingabetoken $0.0015 / 1K Tokens Ausgabe · Ausgabetoken $0.009 / 1K Tokens Eingabe · Cache lesen $0.00015 / 1K Tokens Eingabe · Cache schreiben — / 1K Tokens Eingabe · Cache schreiben, 1 Stunde — / 1K Tokens |
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 abschliessenden 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.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.
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.5-flash:batch
Aliasnamen für Methodenpfade
Verwenden Sie die oben angezeigten Methodenpfade.
Zugehörige Aufrufer-IDs
FAQ · Google: Gemini 3.5 Flash (batch)
- Welche Eingaben und Ergebnisse sind verfügbar?
POST /v1/batches·google/gemini-3.5-flash:batch:text→text- Welche Felder verwendet die Anfrage?
POST /v1/batches·google/gemini-3.5-flash:batch:endpoint,model,requests,completion_window,provider- Welche Grenzen gelten?
POST /v1/batches·google/gemini-3.5-flash:batch:requests.min_items:1