OpenAI: GPT-4.1 (batch)
OpenAI GPT-4.1 é um modelo sem uma etapa dedicada de raciocínio, para cumprimento preciso de instruções, programação e chamadas de ferramentas. Aceita texto e imagens e devolve texto, com uma janela de contexto grande, Structured Outputs e Predicted Outputs para regenerar texto ou código em grande parte inalterados.
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.
GPT-4.1 é o modelo da OpenAI sem uma etapa dedicada de raciocínio, para cumprimento de instruções e chamadas de ferramentas, com conhecimentos amplos em vários domínios. Aceita texto e imagens e devolve texto sem uma etapa dedicada de raciocínio. O seu contexto grande torna-o útil quando a tarefa está claramente definida, mas o material relevante abrange documentos ou código substanciais. Indique a operação pretendida, o material de origem a que se aplica e a forma do resultado final.
Para processamento documental, separe as instruções do material com títulos ou outros limites claros. Identifique os documentos e preserve os identificadores a que a resposta precisa de se referir. Defina os campos para extração, os critérios para comparação ou o público e a extensão para reescrita. Uma saída ilustrativa pode ser uma tabela de requisitos com as suas localizações na origem, um resumo organizado por um conjunto especificado de perguntas ou um registo estruturado que distinga informação em falta de um valor explícito.
Para programação, forneça os ficheiros relevantes, a alteração pedida e o comportamento que deve permanecer intacto. Peça o resultado efetivo de que precisa: uma função revista, um ficheiro completo, argumentos propostos para ferramentas ou uma explicação da lógica afetada. Exemplos podem esclarecer uma regra de formatação ou um caso limite, mas devem seguir os mesmos requisitos da tarefa real. As orientações da OpenAI de redação de pedidos enfatizam instruções diretas, papéis, limites de origem e exemplos representativos, em vez de presumir que um pedido de texto longo é automaticamente preciso.
A especificação exata de GPT-4.1 indica uma janela de contexto de 1 047 576 tokens, uma saída máxima de 32 768 tokens e conhecimentos atualizados até 1 de junho de 2024. O contexto grande de entrada não implica uma saída igualmente grande, pelo que um pedido de reescrita de material extenso deve identificar a parte e o resultado final necessários. Mantenha espaço suficiente para a resposta e forneça informação atual quando a tarefa depender de factos posteriores à data limite de conhecimentos. O tipo documentado do modelo GPT-4.1 é chat; definições de esforço de raciocínio de modelos de raciocínio mais recentes não fazem parte deste perfil.
A OpenAI documenta as interfaces Chat Completions, Responses, Assistants, Batch e ajuste fino para GPT-4.1. As funcionalidades enumeradas incluem streaming, Structured Outputs, chamadas de funções, carregamentos de ficheiros, entrada de imagens, pesquisa na web e em ficheiros, ajuste fino e colocação da entrada em cache. As ferramentas incluem interpretação de código, geração de imagens e ligações MCP, além de pesquisa e funções. A saída do próprio modelo é texto, enquanto uma ferramenta pode devolver um resultado ou observação separados. Defina o objetivo e os argumentos de uma operação da aplicação e utilize o resultado efetivamente devolvido; um pedido gerado pelo modelo não é confirmação de que uma operação externa foi concluída.
Uma funcionalidade distintiva é Predicted Outputs na interface Chat Completions da OpenAI. Quando a maior parte de um resultado pretendido de texto ou código já é conhecida, o conteúdo existente pode ser fornecido como previsão para ajudar a regenerar o resultado completo com uma pequena alteração. Por exemplo, forneça um ficheiro atual e peça uma mudança de nome de propriedade estritamente especificada, mantendo o código circundante. A previsão é conteúdo de saída esperado, não uma instrução ou garantia de que as partes inalteradas continuarão corretas. Examine o resultado regenerado face à alteração pedida e ao material original.
Predicted Outputs tem limites próprios de compatibilidade. A OpenAI documenta utilização apenas de texto, sem entradas ou saídas de áudio e sem chamadas de funções nesse pedido. Não suporta múltiplas escolhas com n superior a 1, logaritmos das probabilidades, penalizações positivas de presença ou frequência ou o parâmetro max_completion_tokens. Mantenha este processo de regeneração distinto de uma tarefa que precisa de chamadas de ferramentas. O texto de previsão pode corresponder a partes da saída, e o fabricante indica tokens de previsão aceites e rejeitados; uma previsão inadequada pode ficar parcialmente por utilizar, pelo que a funcionalidade não garante uma aceleração ou resultado específicos.
Para tarefas normais de cumprimento de instruções, um resultado útil de GPT-4.1 é um documento ou código que siga especificações definidas, uma extração com campos explícitos ou um pedido de ferramenta cujos argumentos se adequem à operação fornecida. Para uma pequena alteração a um ficheiro em grande parte inalterado, o processo de saída prevista oferece uma forma mais específica de preparar o resultado esperado. Em ambos os casos, preserve o material de origem necessário para verificar a resposta e torne explícita a ambiguidade. A capacidade de contexto e as ferramentas do modelo suportam o processo de trabalho; as orientações da tarefa continuam a determinar o que contém uma resposta completa e utilizável.
Ailoot Ultra · Processamento em lote POST /v1/batches openai/gpt-4.1:batch
openai/gpt-4.1:batchIntrodução
OpenAI GPT-4.1 é um modelo sem uma etapa dedicada de raciocínio, para cumprimento preciso de instruções, programação e chamadas de ferramentas. Aceita texto e imagens e devolve texto, com uma janela de contexto grande, Structured Outputs e Predicted Outputs para regenerar texto ou código em grande parte inalterados.
- 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 openai/gpt-4.1: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 openai/gpt-4.1:batch, openai/gpt-4.1 | Predefinição— |
Campoprovider.only | Tipostring[] | RequisitoOpcional | Valores e limites openai | 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.008 / 1K tokens Entrada · Leitura da cache $0.0005 / 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 inclusiveSem limite superior | Custo Entrada · Tokens de entrada $0.002 / 1K tokens Saída · Tokens de saída $0.008 / 1K tokens Entrada · Leitura da cache $0.0005 / 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":"openai/gpt-4.1: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 ['openai/gpt-4.1:batch', 'openai/gpt-4.1']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"openai/gpt-4.1: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 openai/gpt-4.1:batch
Aliases dos caminhos dos métodos
Use os caminhos dos métodos indicados acima.
IDs de chamada relacionados
FAQ · OpenAI: GPT-4.1 (batch)
- Que entradas e resultados estão disponíveis?
POST /v1/batches·openai/gpt-4.1:batch:text→text- Que campos utiliza o pedido?
POST /v1/batches·openai/gpt-4.1:batch:endpoint,model,requests,completion_window,provider- Que limites se aplicam?
POST /v1/batches·openai/gpt-4.1:batch:requests.min_items:1