Google: Gemini 3.1 Pro Preview (batch)
Gemini 3.1 Pro Preview adalah model penalaran multimodal Google untuk tugas perangkat lunak, algoritma, dan pengetahuan yang kompleks. Model ini menerima teks, gambar, audio, video, dan PDF serta menghasilkan teks atau kode, dengan alat dan keluaran terstruktur. Tingkat penalaran Low, medium, dan high memandu upaya; high merupakan bawaan yang didokumentasikan.
Tentang model
Deskripsi ini mencakup kemampuan model. Masukan, keluaran, dan opsi yang tersedia di Ailoot tercantum di bawah untuk metode yang dipilih.
Gemini 3.1 Pro Preview adalah model teks Google yang berorientasi pada penalaran untuk tugas kompleks yang memerlukan rekayasa perangkat lunak, pengembangan algoritma, atau sintesis bukti multimodal. Model ini dikembangkan dari Gemini 3 Pro, dengan penekanan pada penggunaan alat yang presisi, penalaran lebih efisien, dan eksekusi bertahap yang andal. Teks, gambar, audio, video, dan PDF dapat berkontribusi pada jawaban tertulis, artefak kode, atau hasil terstruktur.
Untuk penugasan pemrograman yang menantang, berikan tujuan, materi repositori yang relevan, perilaku yang diamati, dan batasan yang harus dipertahankan. Seluruh repositori kode dapat menyediakan konteks untuk penugasan. Untuk peninjauan kontrak kode, minta model membandingkan penanganan kontrak data bersama oleh dua modul, mengidentifikasi ketidaksesuaian, dan mengusulkan koreksi terarah dengan referensi kode pendukung. Keluaran yang berguna membedakan analisis, revisi yang diusulkan, dan bukti dari validasi apa pun yang dilakukan aplikasi terhubung.
Materi peluncuran mendemonstrasikan penjelasan visual berbasis kode dan proyek interaktif, termasuk keluaran SVG animasi dari arahan teks. Ini merupakan artefak kode, bukan pembuatan gambar raster. Arahan yang jelas dapat mendefinisikan apa yang harus dijelaskan, bagaimana visual harus berperilaku, dan data yang harus direpresentasikannya. Tinjau kode dan hasil rendering terhadap persyaratan tersebut. Untuk tugas sintesis data, berikan sumber sebenarnya dan minta satu tampilan yang mempertahankan hubungan dan kualifikasi yang ditemukan di dalamnya.
Tingkat thinking yang didokumentasikan adalah low, medium, dan high, dengan high sebagai bawaan untuk 3.1 Pro Preview. Thinking tidak dapat sepenuhnya dinonaktifkan dalam profil Pro ini. Pilih upaya lebih rendah untuk jawaban dengan cakupan terbatas dan penalaran lebih banyak untuk pekerjaan bertahap yang sulit, sambil menyisakan alokasi keluaran yang memadai bagi artefak akhir. Batas keluaran yang kecil dapat menghentikan penalaran sebelum jawaban akhir yang berguna muncul. Panduan thinking memisahkan ringkasan penalaran dari proses internal lengkap dan menjelaskan mengapa konteks thought signatures percakapan penting.
Tabel khusus Preview mencantumkan function calling, eksekusi kode, grounding pencarian, grounding Maps, konteks URL, dan keluaran terstruktur. Tabel tersebut membatasi File Search pada AI Studio. Berikan tujuan fungsi dan definisi parameter, lalu lanjutkan dari hasil nyata yang dikembalikan. Profil Custom Tools Preview yang terpisah dioptimalkan untuk memprioritaskan alat khusus dan bash; profil tersebut merupakan endpoint produsen bernama tersendiri, sehingga spesialisasi itu tidak boleh diam-diam dianggap sebagai sifat setiap permintaan 3.1 Pro. Pilih skema hasil terstruktur ketika tugas memerlukan rekaman dengan definisi tertentu, bukan prosa tanpa batasan.
Untuk analisis multimodal, identifikasi halaman, visual, interval rekaman, atau peristiwa video yang relevan. Untuk analisis dokumen, bandingkan diagram dengan spesifikasi tertulisnya dan kembalikan setiap perbedaan beserta kutipan pendukung. Sumber lisan dapat berkontribusi sebagai transkrip atau interpretasi dalam teks. Pertahankan referensi sumber untuk kesimpulan yang perlu diperiksa, dan pisahkan apa yang terlihat atau dinyatakan dari apa yang diinferensikan. Keluaran profil ini tetap berupa teks, termasuk kode; pembuatan gambar atau ucapan native bukan bagian dari tabel kemampuan khususnya.
Kartu asli 3.1 Pro menetapkan konteks hingga 1M dan keluaran teks 64K, sedangkan tabel API khusus Preview memberikan 1,048,576 token masukan dan 65,536 token keluaran. Masukkan instruksi, riwayat percakapan, dan media ke dalam anggaran masukan. Caching dan pemrosesan batch didokumentasikan, dengan opsi Flex dan Priority juga dicantumkan untuk profil produsen ini. Untuk beberapa item independen, definisikan keluaran yang diwajibkan dan pertahankan setiap pengenal sumber, alih-alih menggabungkan bukti yang tidak berkaitan menjadi satu jawaban yang tidak dapat ditelusuri.
Edisi bernama Preview tetap berbeda dari profil Custom Tools Pro serta rilis Flash atau Pro berikutnya. Keunggulannya berkaitan dengan penalaran kompleks, pemrograman, dan sintesis bukti; artefak akhir tetap perlu diperiksa terhadap sumber dan hasil alat sebenarnya. Pertahankan ambiguitas yang belum terselesaikan ketika informasi yang diberikan tidak mendukung kesimpulan pasti. Hasil serahan yang berguna adalah jawaban, kode, atau rekaman yang didukung dan diminta oleh tugas, dengan bukti yang cukup untuk menilai batas praktisnya.
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:batchMulai
Gemini 3.1 Pro Preview adalah model penalaran multimodal Google untuk tugas perangkat lunak, algoritma, dan pengetahuan yang kompleks. Model ini menerima teks, gambar, audio, video, dan PDF serta menghasilkan teks atau kode, dengan alat dan keluaran terstruktur. Tingkat penalaran Low, medium, dan high memandu upaya; high merupakan bawaan yang didokumentasikan.
- Masukan yang diterima
- Teks
- Hasil
- Teks
Tersedia di Ailoot · masukan & metode
Ailoot Ultra · Batch POST /v1/batches
- Masukan
text- Keluaran
text- Format keluaran
- JSON inline pada results[].response.body
| Kolom | Jenis | Persyaratan | Nilai & batasan | Bawaan |
|---|---|---|---|---|
Kolomendpoint | Jenisstring | PersyaratanWajib | Nilai & batasan /v1/chat/completions | Bawaan— |
Kolommodel | Jenisstring | PersyaratanWajib | Nilai & batasan google/gemini-3.1-pro-preview:batch | Bawaan— |
Kolomrequests | Jenisbatch_item[] | PersyaratanWajib | Nilai & batasan Item minimum: 1 | Bawaan— |
Kolomrequests[].custom_id | Jenisstring | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolomrequests[].body.messages | Jenismessage[] | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolomcompletion_window | Jenisstring | PersyaratanOpsional | Nilai & batasan 24h | Bawaan— |
Kolomprovider | Jenisobject|null | PersyaratanOpsional | Nilai & batasan | Bawaan— |
Kolomrequests[].body.model | Jenisstring | PersyaratanOpsional | Nilai & batasan google/gemini-3.1-pro-preview:batch, google/gemini-3.1-pro-preview | Bawaan— |
Kolomprovider.only | Jenisstring[] | PersyaratanOpsional | Nilai & batasan google-vertex/global | Bawaan— |
Kolomprovider.allow_fallbacks | Jenisboolean|null | PersyaratanOpsional | Nilai & batasan false, null | Bawaan— |
Parameter metode dan siklus hidup
| Parameter | Kontrak |
|---|---|
Parametercontent_type | Kontrakapplication/json |
Parameterrequired | Kontrakendpoint, model, requests |
Parametermaterial_types | Kontraktext |
Parameterrepresentation | Kontrakrequests[] inline; setiap item memiliki custom_id dan body |
Parameterrequest_endpoint_profile | Kontrak/v1/chat/completions |
Parameterfile_material | KontrakPemanggil dapat membaca JSONL UTF-8 aktual secara lokal ke dalam requests[]. Tidak menggunakan purpose unggahan, input_file_id, atau referensi file. Materi pelanggan yang tidak ada atau kosong menghentikan persiapan sebelum POST. |
Parameterserialization_order | Kontrakendpoint, model, provider (jika disertakan), completion_window (jika disertakan), requests paling akhir |
Parameteroptional_controls | Kontrakprovider.only, provider.allow_fallbacks, completion_window |
Parameterschema_scope | Kontrakbody teks Chat Completions dalam envelope Batch inline yang didokumentasikan. |
Siklus hidup: asynchronous
GET /v1/batches/{operation_id} · response.id aktual dari operasi create awal; user/key/group yang sama
Paket
Referensi tarif tidak menambah opsi permintaan. Parameter yang didukung tercantum pada metode yang dipilih.
- Mode Fast
- Tidak ditentukan Saat mode fast dipilih
- Mode Flex
- Tidak ditentukan Saat mode flex dipilih
- Upaya penalaran maksimum
- Tidak ditentukan Saat upaya penalaran maksimum menggunakan penyesuaian default
- Harga cache eksplisit
- Tidak diaktifkan Saat cache eksplisit diminta
Tarif Ailoot
Harga menurut konfigurasi
Cocokkan setiap biaya dengan kondisi yang ditampilkan. Gunakan satu tarif untuk setiap kelompok konfigurasi alternatif.
| Konfigurasi | Jadwal tarif | Token konteks, lebih dari | Token konteks, hingga dan termasuk | Biaya |
|---|---|---|---|---|
| KonfigurasiTarif dasar token | Jadwal tarifTarif dasar | Token konteks, lebih dari— | Token konteks, hingga dan termasukTanpa batas atas | Biaya Masukan · Token masukan $0.002 / 1K token Keluaran · Token keluaran $0.012 / 1K token Masukan · Pembacaan cache — / 1K token Masukan · Penulisan cache — / 1K token Masukan · Penulisan cache, 1 jam — / 1K token |
| KonfigurasiPanjang permintaan · tingkat 1 | Jadwal tarif— | Token konteks, lebih dari0 | Token konteks, hingga dan termasuk200.000 | Biaya Masukan · Token masukan $0.002 / 1K token Keluaran · Token keluaran $0.012 / 1K token Masukan · Pembacaan cache — / 1K token Masukan · Penulisan cache — / 1K token Masukan · Penulisan cache, 1 jam — / 1K token |
| KonfigurasiPanjang permintaan · tingkat 2 | Jadwal tarif— | Token konteks, lebih dari200.000 | Token konteks, hingga dan termasukTanpa batas atas | Biaya Masukan · Token masukan $0.004 / 1K token Keluaran · Token keluaran $0.018 / 1K token Masukan · Pembacaan cache — / 1K token Masukan · Penulisan cache — / 1K token Masukan · Penulisan cache, 1 jam — / 1K token |
Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. Cara kerja cadangan dan penyelesaian tagihan →
Contoh permintaan
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.
Terima dan simpan hasil
Ailoot Ultra · Batch
JSON inline pada results[].response.body
GET /v1/batches/{operation_id}
Periksa status tugas
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
Simpan semua hasil yang selesai
Simpan setiap respons lengkap, berkas, dan bagian konten yang dikembalikan.
Pertahankan JSON status asli secara lengkap, setiap result/custom_id, serta body response atau error yang lengkap. Simpan results[] yang telah selesai sebagai JSONL tanpa penyaringan.
Jika respons asli perlu diperiksa
Pertahankan ID operasi asli. 503 result_pending_check memiliki X-Should-Retry:false; jangan pernah kirim ulang batch asli yang statusnya tidak diketahui.
Kolom respons
| Kolom | Jenis |
|---|---|
Kolomresults[].custom_id | Jenisstring |
Kolomresults[].response.body.choices[].message.content | Jenisstring|null |
Kolomresults[].error | Jenisobject|null |
Kolomusage | Jenisobject|null |
Kolomid | Jenisstring |
Kolommodel | Jenisstring |
Kolomendpoint | Jenisstring |
Kolomstatus | Jenisstring |
Kolomrequest_counts | Jenisobject |
Kolomresults[].id | Jenisstring |
Kolomresults[].response.status_code | Jenisinteger |
Kolomresults[].response.request_id | Jenisstring |
Kesalahan dan langkah berikutnya
| Respons | Kondisi | Langkah berikutnya |
|---|---|---|
Respons400 · invalid_request_error | KondisiEnvelope inline yang didokumentasikan tidak valid, ada kunci duplikat, atau terdapat konflik pada identitas item atau kemampuan model yang dikonfigurasi. | Langkah berikutnyaPerbaiki kolom yang ditunjukkan sebelum pengiriman baru apa pun. |
Respons401 · authentication_error | KondisiKunci API tidak valid. | Langkah berikutnyaGunakan kunci Ailoot yang berizin. |
Respons403 · permission_error | KondisiGrup Batch tidak tersedia. | Langkah berikutnyaPeriksa hak akses key/group. |
Respons422 · invalid_request_error | KondisiBatch menggunakan penagihan dari saldo; pembuatan dengan langganan ditolak. | Langkah berikutnyaGunakan grup berizin yang ditagih dari saldo. |
Respons422 · price_unavailable | KondisiPenawaran harga untuk input Batch tidak dapat dibuat. | Langkah berikutnyaSimpan respons; gunakan input keluarga API yang didokumentasikan. |
Respons402 · billing_error | KondisiCadangan Batch tidak tersedia. | Langkah berikutnyaSelesaikan kendala penerimaan sebelum mengirim permintaan baru. |
Respons503 · price_unavailable | KondisiHarga metode Batch/tarif native tidak tersedia. | Langkah berikutnyaSimpan respons; jangan mengganti harga. |
Respons503 · api_error | KondisiRute pemasok yang tepat tidak tersedia. | Langkah berikutnyaSimpan respons untuk perbaikan rute. |
Respons503 · result_pending_check | KondisiHasil asli perlu diperiksa; X-Should-Retry:false. | Langkah berikutnyaSimpan operation_id/id asli dan baca statusnya; jangan pernah mengulangi POST asli. |
Respons404 · not_found | KondisiOperasi status Batch tidak ada atau dimiliki oleh identitas lain. | Langkah berikutnyaGunakan id asli yang persis sama dan user/key/group yang sama. |
Alias
Alias model
Ailoot Ultra google/gemini-3.1-pro-preview:batch
Alias jalur metode
Gunakan jalur metode yang ditampilkan di atas.
ID pemanggil terkait
FAQ · Google: Gemini 3.1 Pro Preview (batch)
- Input dan hasil apa yang tersedia?
POST /v1/batches·google/gemini-3.1-pro-preview:batch:text→text- Kolom apa yang digunakan permintaan?
POST /v1/batches·google/gemini-3.1-pro-preview:batch:endpoint,model,requests,completion_window,provider- Batasan apa yang berlaku?
POST /v1/batches·google/gemini-3.1-pro-preview:batch:requests.min_items:1