Source: https://ailoot.ai/models/pt-pt/openai-gpt-oss-20b-u003a-batch/
Canonical: https://ailoot.ai/models/pt-pt/openai-gpt-oss-20b-u003a-batch/
Language: pt-pt

# OpenAI: gpt-oss-20b (batch)

[Markdown](https://ailoot.ai/models/pt-pt/openai-gpt-oss-20b-u003a-batch/index.md) · [JSON](https://ailoot.ai/models/pt-pt/openai-gpt-oss-20b-u003a-batch/facts.json)

## [OpenAI: gpt-oss-20b (batch)](https://ailoot.ai/models/pt-pt/openai-gpt-oss-20b-u003a-batch/)

O modelo gpt-oss de uso geral mais pequeno da OpenAI aceita e devolve texto para raciocínio, programação e fluxos especializados. Suporta raciocínio configurável, chamadas de funções, Structured Outputs e ajuste fino dos pesos abertos publicados.

- [**Ailoot Ultra · Processamento em lote** `POST /v1/batches` `openai/gpt-oss-20b:batch`](https://ailoot.ai/models/pt-pt/openai-gpt-oss-20b-u003a-batch/#method-0)

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-oss-20b é o modelo de uso geral mais pequeno da OpenAI com pesos abertos para raciocínio e fluxos de trabalho de programação. Aceita texto e devolve texto. O produtor publica 21 mil milhões de parâmetros no total, com 3,6 mil milhões de parâmetros ativos por token. É a edição 20b da família gpt-oss, distinta da edição 120b maior e do modelo Safeguard de classificação segundo políticas.

O produtor descreve utilizações locais e especializadas e um conjunto de treino composto apenas por texto, centrado em STEM, programação e conhecimentos gerais. Um exemplo de tarefa é explicar um excerto de código com pressupostos declarados e propor uma alteração dirigida. Uma tarefa de análise textual pode, em alternativa, comparar descrições com critérios explícitos ou transformar notas de trabalho num conjunto útil de conclusões. Forneça ao modelo o material de origem e o resultado de que o leitor ou a etapa seguinte da aplicação necessita.

A arquitetura publicada de mistura de especialistas tem 24 camadas, 32 especialistas e quatro especialistas ativos por token. O lançamento original MXFP4 da OpenAI para os pesos dos especialistas foi concebido para caber em 16 GB de memória. Os pesos são publicados sob Apache 2.0 e podem receber ajuste fino para trabalho especializado. Estas propriedades do produtor descrevem o modelo publicado, permitindo a um programador distinguir a sua dimensão e o seu papel de personalização sem pressupor a configuração usada por uma aplicação específica.

A documentação da OpenAI indica uma janela de contexto de 131 072 tokens, uma saída gerada máxima de 131 072 tokens e conhecimentos atualizados até 1 de junho de 2024. O contexto disponível tem de acomodar o material fornecido, a análise e a resposta final. O modelo suporta os níveis de raciocínio low, medium e high. O formato Harmony exigido mantém a análise interna e a resposta final em canais distintos, e o produtor indica que a análise bruta não deve ser apresentada diretamente aos utilizadores finais.

O produtor documenta chamadas de funções, navegação na Web, execução de código Python através de ferramentas e Structured Outputs. As funcionalidades indicadas do modelo também incluem transmissão progressiva; o ambiente de ferramentas documentado inclui funções, interpretação de código, ligações MCP e pesquisa na Web. As aplicações expõem e executam as suas operações e devolvem resultados reais para a decisão seguinte. O texto final deve distinguir uma ação proposta de uma operação concluída e das provas que esta devolveu.

Para um fluxo direcionado, defina os campos obrigatórios, as restrições e o critério de conclusão. Peça uma explicação ligada ao código ou uma conclusão ligada ao texto fornecido, depois use uma interação seguinte para tratar um detalhe em falta. Um resultado final útil é uma proposta concreta de edição, uma comparação, uma nota de síntese ou um resultado estruturado que preserve os factos necessários e identifique qualquer condição ainda por resolver.

**Ailoot Ultra · Processamento em lote** `POST /v1/batches` `openai/gpt-oss-20b:batch`

[`openai/gpt-oss-20b:batch`](https://ailoot.ai/models/pt-pt/#m=openai%2Fgpt-oss-20b%3Abatch&route=Ultra&caller=openai%2Fgpt-oss-20b%3Abatch&fmt=batches)

OpenAI /`openai/gpt-oss-20b:batch`

### Introdução

O modelo gpt-oss de uso geral mais pequeno da OpenAI aceita e devolve texto para raciocínio, programação e fluxos especializados. Suporta raciocínio configurável, chamadas de funções, Structured Outputs e ajuste fino dos pesos abertos publicados.

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 |
| --- | --- | --- | --- | --- |
| Campo`endpoint` | Tipo`string` | RequisitoObrigatório | Valores e limites /v1/chat/completions | Predefinição— |
| Campo`model` | Tipo`string` | RequisitoObrigatório | Valores e limites openai/gpt-oss-20b:batch | Predefinição— |
| Campo`requests` | Tipo`batch_item[]` | RequisitoObrigatório | Valores e limites Número mínimo de elementos: 1 | Predefinição— |
| Campo`requests[].custom_id` | Tipo`string` | RequisitoObrigatório | Valores e limites | Predefinição— |
| Campo`requests[].body.messages` | Tipo`message[]` | RequisitoObrigatório | Valores e limites | Predefinição— |
| Campo`completion_window` | Tipo`string` | RequisitoOpcional | Valores e limites 24h | Predefinição— |
| Campo`provider` | Tipo`object\|null` | RequisitoOpcional | Valores e limites | Predefinição— |
| Campo`requests[].body.model` | Tipo`string` | RequisitoOpcional | Valores e limites openai/gpt-oss-20b:batch, openai/gpt-oss-20b | Predefinição— |
| Campo`provider.only` | Tipo`string[]` | RequisitoOpcional | Valores e limites deepinfra/bf16 | Predefinição— |
| Campo`provider.allow_fallbacks` | Tipo`boolean\|null` | RequisitoOpcional | Valores e limites false, null | Predefinição— |

Parâmetros e ciclo de vida do método

| Parâmetro | Contrato |
| --- | --- |
| Parâmetro`content_type` | Contratoapplication/json |
| Parâmetro`required` | Contratoendpoint, model, requests |
| Parâmetro`material_types` | Contratotext |
| Parâmetro`representation` | Contratorequests\[\] em linha; cada item tem custom\_id e body |
| Parâmetro`request_endpoint_profile` | Contrato/v1/chat/completions |
| Parâmetro`file_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âmetro`serialization_order` | Contratoendpoint, model, provider (se fornecido), completion\_window (se fornecido), requests em último lugar |
| Parâmetro`optional_controls` | Contratoprovider.only, provider.allow\_fallbacks, completion\_window |
| Parâmetro`schema_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.000048** / 1K tokens Saída · Tokens de saída **$0.000224** / 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 inclusiveSem limite superior | Custo Entrada · Tokens de entrada **$0.000048** / 1K tokens Saída · Tokens de saída **$0.000224** / 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 →](https://ailoot.ai/docs/pt-pt/billing/reserve/)

### Exemplos de pedidos

#### Ailoot Ultra · Processamento em lote

curl · dados de teste preservadosPython HTTP · JSONL real do clientePython · guarde cada resultado concluído

```bash
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-oss-20b: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
```

```python
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-oss-20b:batch', 'openai/gpt-oss-20b']: raise ValueError("body.model must be an exact documented caller or wire ID")
    return {"endpoint":"/v1/chat/completions", "model":"openai/gpt-oss-20b: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"))
```

```python
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

curl · estado da operação original

```bash
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 |
| --- | --- |
| Campo`results[].custom_id` | Tipostring |
| Campo`results[].response.body.choices[].message.content` | Tipostring\|null |
| Campo`results[].error` | Tipoobject\|null |
| Campo`usage` | Tipoobject\|null |
| Campo`id` | Tipostring |
| Campo`model` | Tipostring |
| Campo`endpoint` | Tipostring |
| Campo`status` | Tipostring |
| Campo`request_counts` | Tipoobject |
| Campo`results[].id` | Tipostring |
| Campo`results[].response.status_code` | Tipointeger |
| Campo`results[].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-oss-20b:batch`](https://ailoot.ai/models/pt-pt/#m=openai%2Fgpt-oss-20b%3Abatch&route=Ultra&caller=openai%2Fgpt-oss-20b%3Abatch&fmt=batches)

#### Aliases dos caminhos dos métodos

Use os caminhos dos métodos indicados acima.

#### IDs de chamada relacionados

[`openai/gpt-oss-20b:batch`](https://ailoot.ai/models/pt-pt/#m=openai%2Fgpt-oss-20b%3Abatch&route=Ultra&caller=openai%2Fgpt-oss-20b%3Abatch&fmt=batches)

FAQ · OpenAI: gpt-oss-20b (batch)

Que entradas e resultados estão disponíveis?

`POST /v1/batches` · `openai/gpt-oss-20b:batch`: `text` → `text`

Que campos utiliza o pedido?

`POST /v1/batches` · `openai/gpt-oss-20b:batch`: `endpoint`, `model`, `requests`, `completion_window`, `provider`

Que limites se aplicam?

`POST /v1/batches` · `openai/gpt-oss-20b:batch`: `requests.min_items`: `1`

Ligue o Ailoot ao Claude Code, OpenCode, Hermes ou à sua aplicação.

## A empresa e a sua carteira de projetos

A empresa e a sua carteira de projetos: milhões de clientes; vendas mensais na ordem dos milhares de milhões.

## Compre tokens com desconto.

Desconto por subscrição para trabalho regular. Códigos promocionais — até 50% na compra de tokens.

Subscrição

Escolha um plano com desconto para os pedidos regulares.

Código promocional até 50%

Introduza o código na compra. O preço é recalculado conforme a campanha em vigor.

Custos no histórico

O modelo, os tokens e o montante são guardados para cada pedido.

[Escolher subscrição](https://ailoot.ai/docs/pt-pt/billing/subscriptions/) · [Ver preços dos modelos](https://ailoot.ai/models/pt-pt/)

## Ligue a API ao produto que vende.

SaaS, aplicações e bots — ao abrigo da oferta e do contrato de licença Ailoot. Para revenda, peça uma licença de revendedor.

Aplicação comercial

Integre geração de texto, imagens, vídeo e som nas funcionalidades pagas do seu serviço.

Licença de revendedor

Envie uma descrição do projeto e do modelo de acesso. Peça condições escritas de utilização e revenda.

Documentos no site

A oferta, o contrato de licença e a política de tratamento de dados estão disponíveis antes da ligação.

[Pedir licença de revendedor](mailto:support@ailoot.ai) · [Oferta e contrato de licença](https://ailoot.ai/legal/offer?lang=pt-pt)

## Ailoot · A empresa e a sua carteira de projetos





A Ailoot assenta numa experiência operacional consolidada, numa ampla base de clientes, num serviço estável e no acompanhamento contínuo dos KPI.





A empresa e a sua carteira de projetos: milhões de clientes; vendas mensais na ordem dos milhares de milhões.





A Ailoot aplica essa experiência operacional ao acesso por API a funcionalidades de IA nos produtos dos clientes, agentes, aplicações e automatizações.
