Google: Gemini 3.1 Pro Preview (batch)
Gemini 3.1 Pro Preview é o modelo de raciocínio multimodal da Google para tarefas complexas de software, algoritmos e conhecimento. Aceita texto, imagens, áudio, vídeo e PDF e devolve texto ou código, com ferramentas e saída estruturada. Os níveis de raciocínio low, medium e high orientam o esforço; high é a predefinição documentada.
Sobre o modelo
Esta descrição apresenta as capacidades do modelo. As entradas, saídas e opções disponíveis no Ailoot para o método selecionado estão indicadas abaixo.
Gemini 3.1 Pro Preview é o modelo textual da Google orientado para raciocínio, para tarefas complexas que exigem engenharia de software, desenvolvimento algorítmico ou síntese de provas multimodais. Baseia-se no Gemini 3 Pro, destacando a utilização precisa de ferramentas, raciocínio mais eficiente e execução fiável em várias etapas. Texto, imagens, áudio, vídeo e PDF podem contribuir para uma resposta escrita, um artefacto de código ou um resultado estruturado.
Para uma tarefa exigente de programação, forneça o objetivo, o material relevante do repositório, o comportamento observado e as restrições a preservar. Repositórios de código completos podem fornecer contexto para a tarefa. Para uma revisão de contrato de código, peça ao modelo que compare o tratamento de um contrato de dados partilhado em dois módulos, identifique a discrepância e proponha uma correção focada com referências de código que a sustentem. A saída útil distingue a análise, a revisão proposta e as provas de qualquer validação efetuada pela aplicação ligada.
O material de lançamento demonstra explicações visuais baseadas em código e projetos interativos, incluindo saída SVG animada a partir de um pedido textual. Estes são artefactos de código, e não geração de imagens rasterizadas. Um pedido claro pode definir o que deve ser explicado, como o elemento visual deve comportar-se e os dados que deve representar. Reveja o código e a renderização resultantes face a esses requisitos. Para uma tarefa de síntese de dados, forneça as fontes reais e peça uma vista que preserve as relações e as ressalvas nelas encontradas.
Os níveis de pensamento documentados são low, medium e high, sendo high a predefinição para 3.1 Pro Preview. O pensamento não pode ser completamente desativado neste perfil Pro. Escolha um esforço inferior para uma resposta delimitada e mais raciocínio para trabalho difícil de várias etapas, deixando margem de saída suficiente para o artefacto final. Um limite de saída pequeno pode interromper o raciocínio antes de surgir uma resposta final utilizável. O guia de pensamento distingue um resumo do raciocínio do processo interno completo e explica por que razão importa o contexto de assinaturas de pensamento da conversação.
A tabela exata Preview apresenta chamadas de funções, execução de código, fundamentação por pesquisa, fundamentação com Maps, contexto de URL e saídas estruturadas. Delimita File Search ao AI Studio. Forneça as finalidades das funções e as definições dos parâmetros e continue a partir do resultado real devolvido. O perfil separado Custom Tools Preview está otimizado para dar prioridade a ferramentas personalizadas e bash; é um endpoint distinto e identificado do produtor, pelo que essa especialização não deve ser tratada silenciosamente como propriedade de todos os pedidos 3.1 Pro. Selecione um esquema de resultado estruturado quando uma tarefa precisar de registos definidos em vez de prosa livre.
Para análise multimodal, identifique a página, o elemento visual, o intervalo de gravação ou o acontecimento no vídeo relevantes. Para análise documental, compare um diagrama com a sua especificação escrita e devolva cada discrepância com a passagem que a sustenta. Uma fonte falada pode contribuir com uma transcrição ou uma interpretação em texto. Preserve referências às fontes para as conclusões que precisam de verificação e distinga o que é visível ou declarado do que é inferido. A saída deste perfil continua a ser texto, incluindo código; a geração nativa de imagens ou voz não faz parte da sua tabela exata de capacidades.
A ficha nativa de 3.1 Pro especifica contexto de até 1M e saída textual de 64K, e a tabela exata da API Preview indica 1 048 576 tokens de entrada e 65 536 tokens de saída. Inclua instruções, histórico de conversação e suportes multimédia no orçamento de entrada. A cache e o processamento em lote estão documentados, com opções Flex e Priority também apresentadas para o perfil do produtor. Para vários itens independentes, defina a saída exigida e preserve o identificador de cada fonte, em vez de combinar provas sem relação numa única resposta sem rastreabilidade.
A edição identificada Preview mantém-se distinta do perfil Custom Tools do Pro e de lançamentos Flash ou Pro posteriores. Os seus pontos fortes dizem respeito a raciocínio complexo, programação e síntese de provas; o artefacto final continua a precisar de ser verificado face à fonte e aos resultados reais das ferramentas. Preserve a ambiguidade por resolver quando a informação fornecida não sustentar uma conclusão definitiva. Um artefacto útil é a resposta, o código ou o registo sustentados que a tarefa pediu, com provas suficientes para avaliar os seus limites práticos.
Ailoot Ultra · Processamento em lote POST /v1/batches google/gemini-3.1-pro-preview:batch
google/gemini-3.1-pro-preview:batch
google/gemini-3.1-pro-preview:batchIntrodução
Gemini 3.1 Pro Preview é o modelo de raciocínio multimodal da Google para tarefas complexas de software, algoritmos e conhecimento. Aceita texto, imagens, áudio, vídeo e PDF e devolve texto ou código, com ferramentas e saída estruturada. Os níveis de raciocínio low, medium e high orientam o esforço; high é a predefinição documentada.
- Entradas aceites
- Texto
- Resultados
- Texto
Disponível no Ailoot · entradas e métodos
Ailoot Ultra · Processamento em lote POST /v1/batches
- Entrada
text- Saída
text- Formato de saída
- JSON em linha de results[].response.body
| Campo | Tipo | Requisito | Valores e limites | Predefinição |
|---|---|---|---|---|
Campoendpoint | Tipostring | RequisitoObrigatório | Valores e limites /v1/chat/completions | Predefinição— |
Campomodel | Tipostring | RequisitoObrigatório | Valores e limites google/gemini-3.1-pro-preview:batch | Predefinição— |
Camporequests | Tipobatch_item[] | RequisitoObrigatório | Valores e limites Número mínimo de elementos: 1 | Predefinição— |
Camporequests[].custom_id | Tipostring | RequisitoObrigatório | Valores e limites | Predefinição— |
Camporequests[].body.messages | Tipomessage[] | RequisitoObrigatório | Valores e limites | Predefinição— |
Campocompletion_window | Tipostring | RequisitoOpcional | Valores e limites 24h | Predefinição— |
Campoprovider | Tipoobject|null | RequisitoOpcional | Valores e limites | Predefinição— |
Camporequests[].body.model | Tipostring | RequisitoOpcional | Valores e limites google/gemini-3.1-pro-preview:batch, google/gemini-3.1-pro-preview | Predefinição— |
Campoprovider.only | Tipostring[] | RequisitoOpcional | Valores e limites google-vertex/global | Predefinição— |
Campoprovider.allow_fallbacks | Tipoboolean|null | RequisitoOpcional | Valores e limites false, null | Predefinição— |
Parâmetros e ciclo de vida do método
| Parâmetro | Contrato |
|---|---|
Parâmetrocontent_type | Contratoapplication/json |
Parâmetrorequired | Contratoendpoint, model, requests |
Parâmetromaterial_types | Contratotext |
Parâmetrorepresentation | Contratorequests[] em linha; cada item tem custom_id e body |
Parâmetrorequest_endpoint_profile | Contrato/v1/chat/completions |
Parâmetrofile_material | ContratoQuem faz a chamada pode ler localmente o conteúdo JSONL UTF-8 efetivo para requests[]. Não é utilizada qualquer finalidade de carregamento, input_file_id ou referência a ficheiro. Se o material do cliente estiver em falta ou vazio, a preparação é interrompida antes do POST. |
Parâmetroserialization_order | Contratoendpoint, model, provider (se fornecido), completion_window (se fornecido), requests em último lugar |
Parâmetrooptional_controls | Contratoprovider.only, provider.allow_fallbacks, completion_window |
Parâmetroschema_scope | ContratoCorpos de pedidos de texto de Chat Completions na estrutura de lote em linha documentada. |
Ciclo de vida: asynchronous
GET /v1/batches/{operation_id} · response.id efetivo da resposta original de criação; mesmo utilizador/chave/grupo
Tarifários
As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.
- Modo rápido
- Não especificado Quando o modo rápido está selecionado
- Modo flex
- Não especificado Quando o modo flex está selecionado
- Esforço máximo de raciocínio
- Não especificado Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)
- Preços da cache explícita
- Não ativado Quando é pedida cache explícita
Tarifas Ailoot
Preços por configuração
Associe cada custo às condições apresentadas. Use uma única tarifa para cada conjunto de configurações alternativas.
| Configuração | Tabela de tarifas | Tokens de contexto, mais de | Tokens de contexto, até ao limite inclusive | Custo |
|---|---|---|---|---|
| ConfiguraçãoTarifas base dos tokens | Tabela de tarifasTarifa base | Tokens de contexto, mais de— | Tokens de contexto, até ao limite inclusiveSem limite superior | Custo Entrada · Tokens de entrada $0.002 / 1K tokens Saída · Tokens de saída $0.012 / 1K tokens Entrada · Leitura da cache — / 1K tokens Entrada · Escrita na cache — / 1K tokens Entrada · Escrita na cache, 1 hora — / 1K tokens |
| ConfiguraçãoEscalão 1 por comprimento do pedido | Tabela de tarifas— | Tokens de contexto, mais de0 | Tokens de contexto, até ao limite inclusive200 000 | Custo Entrada · Tokens de entrada $0.002 / 1K tokens Saída · Tokens de saída $0.012 / 1K tokens Entrada · Leitura da cache — / 1K tokens Entrada · Escrita na cache — / 1K tokens Entrada · Escrita na cache, 1 hora — / 1K tokens |
| ConfiguraçãoEscalão 2 por comprimento do pedido | Tabela de tarifas— | Tokens de contexto, mais de200 000 | Tokens de contexto, até ao limite inclusiveSem limite superior | Custo Entrada · Tokens de entrada $0.004 / 1K tokens Saída · Tokens de saída $0.018 / 1K tokens Entrada · Leitura da cache — / 1K tokens Entrada · Escrita na cache — / 1K tokens Entrada · Escrita na cache, 1 hora — / 1K tokens |
O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. Como funcionam a reserva e a liquidação →
Exemplos de pedidos
Ailoot Ultra · Processamento em lote
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.
Receber e guardar os resultados
Ailoot Ultra · Processamento em lote
JSON em linha de results[].response.body
GET /v1/batches/{operation_id}
Verificar o estado da tarefa
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
Guardar todos os resultados concluídos
Guarde cada resposta, ficheiro e parte de conteúdo devolvidos na íntegra.
Conserve o JSON completo do estado original, todos os resultados/custom_id e o corpo completo da resposta ou do erro. Guarde os results[] concluídos em formato JSONL, sem filtrar.
Se for necessário verificar a resposta original
Preserve o ID original da operação. A resposta 503 result_pending_check inclui X-Should-Retry:false; nunca volte a enviar um lote original de estado desconhecido.
Campos da resposta
| Campo | Tipo |
|---|---|
Camporesults[].custom_id | Tipostring |
Camporesults[].response.body.choices[].message.content | Tipostring|null |
Camporesults[].error | Tipoobject|null |
Campousage | Tipoobject|null |
Campoid | Tipostring |
Campomodel | Tipostring |
Campoendpoint | Tipostring |
Campostatus | Tipostring |
Camporequest_counts | Tipoobject |
Camporesults[].id | Tipostring |
Camporesults[].response.status_code | Tipointeger |
Camporesults[].response.request_id | Tipostring |
Erros e passos seguintes
| Resposta | Condição | Passo seguinte |
|---|---|---|
Resposta400 · invalid_request_error | CondiçãoEstrutura em linha documentada inválida, chaves duplicadas, identidade do item inválida ou conflito com as capacidades configuradas do modelo. | Passo seguinteCorrija os campos indicados antes de qualquer novo envio. |
Resposta401 · authentication_error | CondiçãoChave de API inválida. | Passo seguinteUse a chave Ailoot autorizada. |
Resposta403 · permission_error | CondiçãoGrupo de processamento em lote indisponível. | Passo seguinteVerifique os direitos de acesso da chave/do grupo. |
Resposta422 · invalid_request_error | CondiçãoO processamento em lote usa faturação por débito do saldo; a criação com subscrição é rejeitada. | Passo seguinteUse o grupo autorizado com faturação por débito do saldo. |
Resposta422 · price_unavailable | CondiçãoNão é possível calcular uma estimativa de preço para os dados de entrada do lote. | Passo seguinteConserve a resposta; use os dados de entrada documentados para a família. |
Resposta402 · billing_error | CondiçãoReserva para processamento em lote indisponível. | Passo seguinteResolva a questão da admissão antes de um novo pedido. |
Resposta503 · price_unavailable | CondiçãoPreço do método de processamento em lote/tarifas nativas indisponíveis. | Passo seguinteConserve a resposta; não substitua os preços. |
Resposta503 · api_error | CondiçãoA rota exata do fornecedor está indisponível. | Passo seguinteConserve a resposta para corrigir a rota. |
Resposta503 · result_pending_check | CondiçãoO resultado original requer verificação; X-Should-Retry:false. | Passo seguinteGuarde o operation_id/id original e consulte o respetivo estado; nunca repita o POST original. |
Resposta404 · not_found | CondiçãoA operação de consulta do estado do lote não existe ou pertence a outra identidade. | Passo seguinteUse o id original exato e o mesmo utilizador/chave/grupo. |
Aliases
Aliases do modelo
Ailoot Ultra google/gemini-3.1-pro-preview:batch
Aliases dos caminhos dos métodos
Use os caminhos dos métodos indicados acima.
IDs de chamada relacionados
FAQ · Google: Gemini 3.1 Pro Preview (batch)
- Que entradas e resultados estão disponíveis?
POST /v1/batches·google/gemini-3.1-pro-preview:batch:text→text- Que campos utiliza o pedido?
POST /v1/batches·google/gemini-3.1-pro-preview:batch:endpoint,model,requests,completion_window,provider- Que limites se aplicam?
POST /v1/batches·google/gemini-3.1-pro-preview:batch:requests.min_items:1