model

Google: Gemini 3.1 Pro Preview Custom Tools

Markdown · JSON

Google: Gemini 3.1 Pro Preview Custom Tools

Gemini 3.1 Pro Preview Custom Tools ialah varian berorientasikan ejen yang berbeza dan mengutamakan alat takrifan aplikasi bersama arahan terminal. Gunakannya apabila tindakan seperti membaca fail atau mencari kod perlu memacu tugas berbilang langkah, dengan aplikasi melaksanakan dan mengembalikan setiap hasil alat.

Tentang model

Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.

Gemini 3.1 Pro Preview Custom Tools ialah varian khusus Google untuk aliran kerja ejen yang mencampurkan arahan terminal dengan alat tersuai. Tingkah laku pembezanya ialah mengutamakan alat takrifan aplikasi, dengan pengeluar memberikan view_file dan search_code sebagai contoh. Ia merupakan varian bernama berasingan Gemini 3.1 Pro Preview, bukannya label lain bagi setiap permintaan Pro. Tugas yang berguna bergantung pada alat betul untuk mendapatkan bukti sebelum menyediakan hasil teks akhir.

Barisan Pro Preview menerima teks, imej, video, audio dan PDF serta mengembalikan teks. Pembuat menyenaraikan had input 1,048,576 token dan had output 65,536 token bagi barisan itu. Penyiasatan repositori boleh menggabungkan fail sumber, keperluan bertulis dan tangkapan skrin antara muka; aliran kerja dokumen boleh menggabungkan halaman dan soalan. Labelkan sumber dan tetapkan artifak akhir supaya belanjawan input besar menyokong tugas khusus, bukannya longgokan arkib tanpa fokus.

Untuk ejen perisian, tetapkan matlamat, alat tersedia dan skop perubahan yang diminta. Alat carian tersuai mungkin mengembalikan lokasi fail sepadan, manakala alat baca fail membekalkan kandungan berkaitan yang tepat. Nyatakan argumen yang diterima dan medan yang dikembalikannya. Aplikasi melaksanakan panggilan diterima dan menghantar hasil kembali kepada model, yang boleh memilih langkah seterusnya berdasarkan perkara yang benar-benar berlaku. Laluan yang dikembalikan ialah bukti hasil carian, bukannya bukti fail diubah atau ujian dijalankan.

Varian Custom Tools ditujukan untuk keadaan apabila tindakan khusus itu perlu didahulukan daripada arahan bash umum. Contohnya, ejen boleh mencari pelaksanaan tingkah laku bernama dahulu, membaca fail berkaitan, membandingkannya dengan keperluan pengguna dan kemudian mencadangkan perubahan terbatas. Tetapkan antara muka dan tingkah laku yang mesti dikekalkan, serta minta senarai akhir perubahan cadangan bersama maklumat sumber yang digunakan. Jika pelaksana ujian terkawal tersedia, kembalikan hasil sebenar sebelum meminta kesimpulan tentang perubahan.

Dokumentasi 3.1 Pro pembuat merangkumi pemikiran, output berstruktur dan pemanggilan fungsi, bersama pelaksanaan kod, pembumian carian, pembumian Google Maps, konteks URL dan cache. Senarai carian failnya dihadkan secara jelas kepada Google AI Studio. Oleh itu, ketersediaan alat ialah sebahagian daripada antara muka pengeluar terpilih dan persediaan aplikasi. Keutamaan khas varian untuk alat tersuai tidak dengan sendirinya membekalkan alat itu atau menjalankan operasi luar. Simpan rekod nama fungsi, argumen yang disahkan dan hasil bagi setiap tindakan aplikasi yang selesai.

Panduan Gemini 3 menerangkan aras pemikiran low, medium dan high bagi 3.1 Pro, dengan high sebagai lalai. Ini ialah peruntukan analisis relatif, bukannya jaminan token ketat. Pilih aras mengikut tugas dan berikan arahan terus, bukannya ritual prom yang rumit. Jika output berstruktur diperlukan, tetapkan medan, jenis dan peraturan nilai tiada. Untuk laporan pelaksanaan, rekod akhir boleh mengenal pasti fail diperiksa, tingkah laku wajib, pengubahsuaian dicadangkan dan persoalan berbaki. Semak bahawa setiap entri berpunca daripada hasil alat atau sumber sebenar.

Ejen berbilang giliran mesti mengekalkan perbualan dan konteks penaakulan wajib. Panduan pembuat menerangkan tandatangan pemikiran serta membezakan sejarah berkeadaan terurus daripada sejarah tanpa keadaan yang diurus secara manual. Gunakan pengendalian yang didokumenkan dalam antara muka terpilih, terutamanya semasa menyambung selepas hasil alat. Untuk bahan sumber panjang, letakkan soalan khusus selepas konteks dan kaitkan jawapan diminta dengannya. Panduan turut mengesyorkan temperature lalai 1.0, daripada memindahkan tetapan suhu rendah yang mungkin menyebabkan gelung dalam tugas kompleks.

Pengeluar memberi amaran bahawa kualiti boleh berubah-ubah dalam kes penggunaan yang tidak mendapat manfaat daripada alat tersuai. Ini ialah sempadan pemilihan bermakna: gunakan profil ini untuk ejen berpusatkan alat daripada mengandaikan penambahbaikan umum bagi setiap prom terpencil. Output teks boleh berupa pelan, cadangan kod, penerangan atau hasil berstruktur; input imej atau audio tidak menjadikan varian penjana media. Semak kod dicadangkan, sahkan pengiraan dan bezakan operasi disahkan daripada cadangan. Kekalkan identiti model Custom Tools yang tepat bersama tugas, takrif alat dan bukti dikembalikan supaya sambungan kemudian mempunyai asas konkrit.

Tugas praktikal

Tugas praktikal

Contoh teknikal dalam bahasa Inggeris

Interpret custom-tool evidence

Use this supplied tool transcript. search_code returned settings.py:12 and view_file returned: 'RETRY_LIMIT = 3'. No edit or test result is present. Requirement: increase the retry limit to five. Return the examined file, the exact proposed edit and the remaining check. Distinguish the retrieved value from actions that have not occurred.

Hasil yang dijangka

A file-linked proposed edit and an explicitly unexecuted validation step.

Semak hasil

The answer must not claim that settings.py was changed or a test passed.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions google/gemini-3.1-pro-preview-customtools

google/gemini-3.1-pro-preview-customtools

Google /google/gemini-3.1-pro-preview-customtools

Pengenalan

Gemini 3.1 Pro Preview Custom Tools ialah varian berorientasikan ejen yang berbeza dan mengutamakan alat takrifan aplikasi bersama arahan terminal. Gunakannya apabila tindakan seperti membaca fail atau mencari kod perlu memacu tugas berbilang langkah, dengan aplikasi melaksanakan dan mengembalikan setiap hasil alat.

Input yang diterima
Teks
Hasil
Teks

Tersedia di Ailoot · input & kaedah

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Input
text
Output
text
Format output
json atau SSE
MedanJenisKeperluanNilai & hadLalai
MedanmodelJenisstringKeperluanDiperlukanNilai & had
google/gemini-3.1-pro-preview-customtools
Lalai—
MedanmessagesJenismessage[]KeperluanDiperlukanNilai & had
Item minimum: 1
Lalai—
Medanmessages[].roleJenisstringKeperluanDiperlukanNilai & had
Contoh: system, user, assistant, tool, function
Syarat: Peranan ini diwakili secara eksplisit oleh jenis keserasian dalam kod sumber; set peranan model yang tepat kekal khusus untuk setiap model.
Bergantung pada model
Lalai—
Medanmessages[].contentJenisstring|content_part[]|nullKeperluanPilihanNilai & hadLalai—
Medanmessages[].tool_callsJenistool_call[]KeperluanPilihanNilai & hadLalai—
Medanmessages[].tool_call_idJenisstringKeperluanPilihanNilai & had
Terpakai apabila: role=tool; gunakan ID sebenar yang dipulangkan
Lalai—
Medanmessages[].nameJenisstringKeperluanPilihanNilai & hadLalai—
Medanmessages[].reasoning_contentJenisstringKeperluanPilihanNilai & had
Terpakai apabila: Hantar semula penaakulan sebenar yang dipulangkan apabila model ini menggunakannya
Lalai—
Medanmessages[].reasoning_detailsJenisobject|arrayKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medanmax_tokensJenisintegerKeperluanPilihanNilai & had
Minimum: 1
Bergantung pada model
Lalai—
Medanmax_completion_tokensJenisintegerKeperluanPilihanNilai & had
Minimum: 1
Bergantung pada model
Lalai—
MedanstreamJenisbooleanKeperluanPilihanNilai & hadLalaifalse
Medanstream_options.include_usageJenisbooleanKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
MedantemperatureJenisnumberKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medantop_pJenisnumberKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
MedanstopJenisstring|string[]KeperluanPilihanNilai & had
Bergantung pada model
Lalai—
MedantoolsJenisfunction_tool[]KeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medantools[].typeJenisstringKeperluanPilihanNilai & had
function
Bergantung pada model
Lalai—
Medantools[].function.nameJenisstringKeperluanDiperlukanNilai & had
Terpakai apabila: alat fungsi dibekalkan
Lalai—
Medantools[].function.descriptionJenisstringKeperluanPilihanNilai & hadLalai—
Medantools[].function.parametersJenisJSON_schemaKeperluanPilihanNilai & hadLalai—
Medantool_choiceJenisstring|objectKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medanparallel_tool_callsJenisbooleanKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medanresponse_formatJenisobjectKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medanreasoning_effortJenisstringKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
MedanreasoningJenisobjectKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medanservice_tierJenisstringKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
MedaninstructionsJenisstringKeperluanPilihanNilai & had
Medan keserasian
Lalai—
MedanfunctionsJenisfunction[]KeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medanfunction_callJenisstring|objectKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
Medanprompt_cache_optionsJenisobjectKeperluanPilihanNilai & had
Bergantung pada model
Lalai—
MedanmodalitiesJenisstring[]KeperluanPilihanNilai & had
text
Lalai—
MedanproviderJenisobjectKeperluanPilihanNilai & had
Syarat: provider.options ditolak pada laluan teks Ultra ini
Lalai—
Medancache_control.ttlJenisstringKeperluanPilihanNilai & had
Syarat: 1h ditolak pada lokasi cache prompt yang digunakan
Lalai—
Gabungan bahan input

Teks · Teks UTF8

messages[].content

Parameter kaedah dan kitar hayat
ParameterKontrak
Parametercontent_typeKontrakapplication/json
ParameterrequiredKontrakmodel, messages
Parametermaterial_typesKontraktext
ParametermessagesKontraktatasusunan mesej dengan struktur role/content
Parameterfile_materialKontrakdokumen UTF-8 sebenar dimasukkan sebagai teks literal; ID fail tidak diandaikan
Parameteroptional_controlsKontrakstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parametercontrol_scopeKontrakkhusus model; alat fungsi pengguna berbeza daripada alat yang dihoskan
Parameteroutput_modalitiesKontraktext
Parameterhosted_operationsKontrakfalse
Parametermultimodal_input_bindingKontraknull

Kitar hayat: synchronous_or_streamed

Hantar ID model yang tepat bersama messages.

Panjang konteks bukan had output.

Fail teks boleh membekalkan teks literal; input imej/audio/objek fail memerlukan pengikatan tepat.

Pelan harga

Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.

Mod pantas
Kadar standard Apabila mod pantas dipilih
Mod flex
Kadar standard Apabila mod flex dipilih
Usaha penaakulan maksimum
Kadar standard Apabila usaha penaakulan maksimum menggunakan pelarasan default
Usaha penaakulan · high
Kadar standard Apabila usaha penaakulan ditetapkan kepada high
Usaha penaakulan · low
Kadar standard Apabila usaha penaakulan ditetapkan kepada low
Usaha penaakulan · medium
Kadar standard Apabila usaha penaakulan ditetapkan kepada medium
Harga cache eksplisit
Tidak diaktifkan Apabila cache eksplisit diminta
Output penaakulan
Penaakulan menggunakan kadar subset yang disenaraikan dalam output terkumpul; jangan tambah token tersebut dua kali. Apabila output merangkumi token penaakulan

Kadar Ailoot

Harga mengikut konfigurasi

Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.

KonfigurasiJadual kadarToken konteks, melebihiToken konteks, sehingga dan termasukCaj
KonfigurasiKadar asas tokenJadual kadarKadar asasToken konteks, melebihi—Token konteks, sehingga dan termasukTiada had atasCaj
Input · Token input $0.004 / 1K token
Output · Token output $0.024 / 1K token
Input · Bacaan cache $0.0004 / 1K token
Input · Penulisan cache $0.00075 / 1K token
Input · Penulisan cache, 1 jam — / 1K token
Output · Token keluaran penaakulan $0.024 / 1K token
KonfigurasiTahap panjang permintaan 1Jadual kadar—Token konteks, melebihi0Token konteks, sehingga dan termasuk200,000Caj
Input · Token input $0.004 / 1K token
Output · Token output $0.024 / 1K token
Input · Bacaan cache $0.0004 / 1K token
Input · Penulisan cache $0.00075 / 1K token
Input · Penulisan cache, 1 jam — / 1K token
KonfigurasiTahap panjang permintaan 2Jadual kadar—Token konteks, melebihi200,000Token konteks, sehingga dan termasukTiada had atasCaj
Input · Token input $0.008 / 1K token
Output · Token output $0.036 / 1K token
Input · Bacaan cache $0.0008 / 1K token
Input · Penulisan cache $0.00075 / 1K token
Input · Penulisan cache, 1 jam — / 1K token

Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. Cara rizab dan penyelesaian caj berfungsi →

Contoh permintaan

Ailoot Ultra · OpenAI Chat

curlPython SDKPenstriman Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "google/gemini-3.1-pro-preview-customtools", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='google/gemini-3.1-pro-preview-customtools',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='google/gemini-3.1-pro-preview-customtools',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")

Terima dan simpan hasil

Ailoot Ultra · OpenAI Chat

json atau SSE

Simpan semua hasil yang selesai

Simpan setiap respons lengkap, fail dan bahagian kandungan yang dikembalikan.

Kekalkan setiap pilihan jawapan bersama kandungan, panggilan alat dan penaakulannya. Dalam SSE, gabungkan delta mengikut indeks pilihan jawapan/alat dan kekalkan sebab penamatan akhir serta data penggunaan.

Jika respons asal perlu disemak

Kekalkan ID permintaan/respons dan pengepala. Tiada URL umum bagi pengambilan tugas teks dibekalkan.

Medan respons
MedanJenis
Medanchoices[].indexJenisinteger
Medanchoices[].message.contentJenisstring|null
Medanchoices[].message.tool_callsJenistool_call[]
Medanchoices[].message.reasoning_contentJenisstring
Medanchoices[].message.reasoning_detailsJenisobject|array
Medanchoices[].finish_reasonJenisstring|null
MedanusageJenisobject
Ralat dan langkah seterusnya
ResponsSyaratLangkah seterusnya
Respons400 · invalid_request_errorSyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sahLangkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.

Alias

Alias model

Ailoot Ultra google/gemini-3.1-pro-preview-customtools

Alias laluan kaedah

Gunakan laluan kaedah yang dipaparkan di atas.

ID pemanggil berkaitan

google/gemini-3.1-pro-preview-customtools

Ailoot Ultra · Anthropic Messages POST /v1/messages google/gemini-3.1-pro-preview-customtools

google/gemini-3.1-pro-preview-customtools

Google /google/gemini-3.1-pro-preview-customtools

Pengenalan

Gemini 3.1 Pro Preview Custom Tools ialah varian berorientasikan ejen yang berbeza dan mengutamakan alat takrifan aplikasi bersama arahan terminal. Gunakannya apabila tindakan seperti membaca fail atau mencari kod perlu memacu tugas berbilang langkah, dengan aplikasi melaksanakan dan mengembalikan setiap hasil alat.

Input yang diterima
Teks
Hasil
json · sse

Tersedia di Ailoot · input & kaedah

Ailoot Ultra · Anthropic Messages POST /v1/messages
Input
text
Output
json, sse
Format output
JSON atau SSE
MedanJenisKeperluanNilai & hadLalai
MedanmodelJenisstringKeperluanDiperlukanNilai & had
google/gemini-3.1-pro-preview-customtools
Lalai—
MedanmessagesJenismessage[]KeperluanDiperlukanNilai & hadLalai—
Medanmessages[].roleJenisstringKeperluanDiperlukanNilai & had
user, assistant
Lalai—
Medanmessages[].contentJenisstringKeperluanDiperlukanNilai & hadLalai—
Medanmax_tokensJenisintegerKeperluanDiperlukanNilai & hadLalai—
MedanstreamJenisbooleanKeperluanPilihanNilai & hadLalaifalse
Gabungan bahan input

Teks · Teks UTF-8

rentetan messages[].content

Parameter kaedah dan kitar hayat
ParameterKontrak
Parametercontent_typeKontrakapplication/json
ParameterrequiredKontrakmodel, messages, max_tokens
Parameteroptional_controlsKontrakstream
Parametermaterial_typesKontraktext
Parametertext_file_materialKontrakBaca dokumen UTF-8 sebenar dan letakkan teksnya dalam rentetan input atau kandungan mesej yang ditunjukkan.

Kitar hayat: synchronous_or_streamed

Pelan harga

Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.

Mod pantas
Kadar standard Apabila mod pantas dipilih
Mod flex
Kadar standard Apabila mod flex dipilih
Usaha penaakulan maksimum
Kadar standard Apabila usaha penaakulan maksimum menggunakan pelarasan default
Usaha penaakulan · high
Kadar standard Apabila usaha penaakulan ditetapkan kepada high
Usaha penaakulan · low
Kadar standard Apabila usaha penaakulan ditetapkan kepada low
Usaha penaakulan · medium
Kadar standard Apabila usaha penaakulan ditetapkan kepada medium
Harga cache eksplisit
Tidak diaktifkan Apabila cache eksplisit diminta
Output penaakulan
Penaakulan menggunakan kadar subset yang disenaraikan dalam output terkumpul; jangan tambah token tersebut dua kali. Apabila output merangkumi token penaakulan

Kadar Ailoot

Harga mengikut konfigurasi

Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.

KonfigurasiJadual kadarToken konteks, melebihiToken konteks, sehingga dan termasukCaj
KonfigurasiKadar asas tokenJadual kadarKadar asasToken konteks, melebihi—Token konteks, sehingga dan termasukTiada had atasCaj
Input · Token input $0.004 / 1K token
Output · Token output $0.024 / 1K token
Input · Bacaan cache $0.0004 / 1K token
Input · Penulisan cache $0.00075 / 1K token
Input · Penulisan cache, 1 jam — / 1K token
Output · Token keluaran penaakulan $0.024 / 1K token
KonfigurasiTahap panjang permintaan 1Jadual kadar—Token konteks, melebihi0Token konteks, sehingga dan termasuk200,000Caj
Input · Token input $0.004 / 1K token
Output · Token output $0.024 / 1K token
Input · Bacaan cache $0.0004 / 1K token
Input · Penulisan cache $0.00075 / 1K token
Input · Penulisan cache, 1 jam — / 1K token
KonfigurasiTahap panjang permintaan 2Jadual kadar—Token konteks, melebihi200,000Token konteks, sehingga dan termasukTiada had atasCaj
Input · Token input $0.008 / 1K token
Output · Token output $0.036 / 1K token
Input · Bacaan cache $0.0008 / 1K token
Input · Penulisan cache $0.00075 / 1K token
Input · Penulisan cache, 1 jam — / 1K token

Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. Cara rizab dan penyelesaian caj berfungsi →

Contoh permintaan

Ailoot Ultra · Anthropic Messages

Badan JSON minimum yang lengkapcurl · gunakan dokumen UTF-8 andaPython · simpan hasil lengkap
{
  "model": "google/gemini-3.1-pro-preview-customtools",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'google/gemini-3.1-pro-preview-customtools', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'google/gemini-3.1-pro-preview-customtools', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Terima dan simpan hasil

Ailoot Ultra · Anthropic Messages

JSON atau SSE

Simpan semua hasil yang selesai

Simpan setiap respons lengkap, fail dan bahagian kandungan yang dikembalikan.

Kekalkan semua blok kandungan, tandatangan penaakulan dan ID penggunaan alat sebenar. Gabungkan semua delta blok SSE; blok teks pertama bukan keseluruhan output.

Jika respons asal perlu disemak

Kekalkan ID permintaan/respons dan pengepala. Tiada URL umum bagi pengambilan tugas teks dibekalkan.

Medan respons
MedanJenis
MedanidJenisstring
MedanmodelJenisstring
Medancontent[]Jenistext|thinking|tool_use|other content block
Medanstop_reasonJenisstring|null
MedanusageJenisobject
Ralat dan langkah seterusnya
ResponsSyaratLangkah seterusnya
Respons400 · invalid_request_errorSyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sahLangkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu.

Alias

Alias model

Ailoot Ultra google/gemini-3.1-pro-preview-customtools

Alias laluan kaedah

Gunakan laluan kaedah yang dipaparkan di atas.

ID pemanggil berkaitan

google/gemini-3.1-pro-preview-customtools

FAQ · Google: Gemini 3.1 Pro Preview Custom Tools
Apakah input dan hasil yang tersedia?

POST /v1/chat/completions · google/gemini-3.1-pro-preview-customtools: text → text

POST /v1/messages · google/gemini-3.1-pro-preview-customtools: text → json, sse

Apakah medan yang digunakan oleh permintaan?

POST /v1/chat/completions · google/gemini-3.1-pro-preview-customtools: model, messages, stream, modalities, provider

POST /v1/messages · google/gemini-3.1-pro-preview-customtools: model, messages, max_tokens, stream

Apakah had yang terpakai?

POST /v1/chat/completions · google/gemini-3.1-pro-preview-customtools: messages.min_items: 1

Butiran lanjut

Sambungkan Ailoot kepada Claude Code, OpenCode, Hermes atau aplikasi anda.

Syarikat dan portfolio projeknya

Syarikat dan portfolio projeknya: jutaan pelanggan; jualan bernilai berbilion setiap bulan.

Beli token dengan diskaun.

Diskaun langganan untuk penggunaan berkala. Kod promosi — sehingga 50% bagi pembelian token.

Langganan
Pilih pelan berdiskaun untuk permintaan berkala anda.
Kod promosi sehingga 50%
Masukkan kod semasa pembelian. Harga dikira semula mengikut promosi semasa.
Perbelanjaan dalam sejarah
Model, token dan jumlah disimpan bagi setiap permintaan.

Pilih langganan · Lihat harga model

Sambungkan API kepada produk yang anda jual.

SaaS, aplikasi dan bot — di bawah tawaran rasmi serta perjanjian lesen Ailoot. Untuk jualan semula, mohon lesen penjual semula.

Aplikasi komersial
Tambahkan penjanaan teks, imej, video dan audio pada ciri berbayar perkhidmatan anda.
Lesen penjual semula
Hantar keterangan projek dan susunan akses. Minta terma penggunaan serta jualan semula secara bertulis.
Dokumen pada laman
Tawaran, perjanjian lesen dan dasar pemprosesan data tersedia sebelum sambungan.

Mohon lesen penjual semula · Tawaran dan perjanjian lesen