Source: https://ailoot.ai/models/pt-pt/mistralai-codestral-2508-u003a-batch/
Canonical: https://ailoot.ai/models/pt-pt/mistralai-codestral-2508-u003a-batch/
Language: pt-pt

# Mistral: Codestral 2508 (batch)

[Markdown](https://ailoot.ai/models/pt-pt/mistralai-codestral-2508-u003a-batch/index.md) · [JSON](https://ailoot.ai/models/pt-pt/mistralai-codestral-2508-u003a-batch/facts.json)

## [Mistral: Codestral 2508 (batch)](https://ailoot.ai/models/pt-pt/mistralai-codestral-2508-u003a-batch/)

Codestral 2508 é o modelo de texto da Mistral AI para geração de código e preenchimento de código sensível ao contexto. Está otimizado para tarefas frequentes no editor, incluindo preenchimento intermédio e edições de várias linhas, com um contexto de 128k indicado pelo fabricante e funcionalidades documentadas de conversa, saída estruturada e ferramentas.

- [**Ailoot Ultra · Processamento em lote** `POST /v1/batches` `mistralai/codestral-2508:batch`](https://ailoot.ai/models/pt-pt/mistralai-codestral-2508-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.

Codestral 2508 é o modelo de programação da Mistral AI para tarefas frequentes de preenchimento de código e geração sensíveis à latência. Recebe código-fonte e requisitos textuais e devolve texto que pode conter uma implementação, um preenchimento de código, uma correção ou uma explicação. A edição identificada como 2508 centra-se no contexto de edição atual do programador; não é um modelo de embeddings nem, por si só, um agente completo de repositório.

Preenchimento de código e atualização 2508

O fabricante destina o Codestral ao preenchimento intermédio e à edição de várias linhas. A versão descreve melhorias no comportamento de preenchimento, incluindo a redução de gerações que se prolongam indevidamente, bem como melhorias no seguimento de instruções e nas tarefas de código em modo de conversa. São alterações desta edição do Codestral; as funcionalidades de recuperação de informação e de agentes autónomos do sistema de programação envolvente pertencem a componentes com nomes próprios.

Numa tarefa de preenchimento de código, mantenha a assinatura da função relevante, as declarações e o contexto de chamada junto da posição do cursor. Identifique se pretende apenas o código em falta ou uma função revista completa. Um pedido próprio de editor pode solicitar o corpo de um ciclo que preserve o tipo de retorno existente, mantenha valores duplicados e não modifique a entrada de quem chama a função. O resultado terá assim um ponto de inserção concreto e um comportamento definido.

Preparação do preenchimento intermédio

Na interface FIM do fabricante, o prompt fornece texto ou código a completar e um sufixo opcional fornece o material que se segue à lacuna. Quando ambos são fornecidos, o modelo preenche o espaço entre eles. Sem sufixo, continua a partir do prompt. Isto difere de um pedido de conversa normal que solicita uma alteração de código e uma explicação; cada forma de preparação define um contrato de saída diferente.

Uma entrada útil para preencher uma lacuna inclui o início da função, o código que deve seguir-se à inserção e quaisquer definições relevantes de tipos ou funções auxiliares. Preserve a indentação e os delimitadores para que o texto devolvido possa encaixar no fragmento existente. Se a tarefa precisar apenas do corpo em falta, peça esse corpo em vez de uma reescrita do ficheiro completo. Uma pergunta de conversa separada pode explicar por que motivo o fragmento concluído satisfaz o requisito.

A documentação oficial de FIM permite um orçamento de tokens de saída e exige que o prompt, somado a esse orçamento, permaneça dentro do contexto do modelo. Documenta também sequências de paragem e transmissão contínua do conteúdo gerado. Escolha um fluxo de preenchimento de código quando o resultado tiver de encaixar na lacuna do código, e um fluxo de conversa quando a tarefa pedir código acompanhado de explicação.

Contexto e funcionalidades de apoio

A página do modelo indica uma janela de contexto de 128k. Use o contexto para conservar o código e as declarações que determinam a alteração pretendida, mantendo explícita a tarefa de edição propriamente dita. Num pedido de correção de erro, forneça a função afetada, uma entrada concreta que falha, o resultado esperado e o erro ou comportamento observado. Peça a correção proposta separadamente da explicação e dos exemplos.

A página enumera também saídas estruturadas, chamadas de funções, saídas previstas, perguntas sobre documentos, prefixos de resposta e processamento em lote, além das capacidades de conversa e FIM. Para uma revisão de código estruturada, defina campos como o símbolo afetado, a divergência observada, a alteração proposta e a hipótese ainda por esclarecer. As orientações da Mistral para saída estruturada distinguem o modo JSON de um esquema personalizado, devendo o formato JSON pretendido constar do prompt.

As saídas previstas destinam-se a conteúdos em que partes substanciais da resposta já são conhecidas. Podem usar-se ao regenerar um documento ou ficheiro de código com uma edição limitada, preservando o conteúdo restante. Especifique a alteração exata e o material que deve permanecer. Um prefixo de resposta, por sua vez, fornece um início conhecido a partir do qual a geração continua; é diferente tanto de um corpo completo conhecido como de um sufixo FIM.

Uma pergunta sobre documentação pode usar o fluxo de processamento de documentos do fabricante para preparar texto e estrutura com OCR antes da análise pelo modelo de linguagem. Para material de programação já disponível como texto, forneça os trechos relevantes da documentação e pergunte que condição rege a implementação. Mantenha cada requisito extraído associado à respetiva secção de origem para que o código gerado ou a explicação continuem ligados à especificação fornecida.

Ferramentas e resultados práticos

As chamadas de funções permitem à aplicação disponibilizar operações descritas e os respetivos parâmetros. O modelo prepara uma chamada, a aplicação executa-a e o resultado devolvido passa a integrar o contexto da resposta seguinte. Um assistente de programação pode receber uma consulta ou um cálculo através deste ciclo, mas compilar, testar ou aplicar uma alteração proposta continua a exigir o ambiente de desenvolvimento envolvente.

Para uma correção prática, defina a interface pública cuja compatibilidade deve manter-se e peça o fragmento revisto, uma explicação concisa e entradas de exemplo com as saídas esperadas. Para uma função gerada, indique os tipos aceites e os casos-limite. Para uma explicação, forneça a entrada cujo percurso deve ser acompanhado, para que a resposta relacione um caminho de execução concreto com o valor devolvido.

Codestral produz texto. Não herda os vetores de pesquisa de código do Codestral Embed, a automatização de repositórios do Devstral nem a geração de imagens de um modelo visual. A página específica do modelo 2508 não publica uma contagem de parâmetros nem um comprimento máximo de resposta independente que se possa importar de outra versão. Preserve a edição identificada, o contexto de programação e o artefacto exigido ao preparar um fluxo repetível de editor ou conversa.

**Ailoot Ultra · Processamento em lote** `POST /v1/batches` `mistralai/codestral-2508:batch`

[`mistralai/codestral-2508:batch`](https://ailoot.ai/models/pt-pt/#m=mistralai%2Fcodestral-2508%3Abatch&route=Ultra&caller=mistralai%2Fcodestral-2508%3Abatch&fmt=batches)

Mistral /`mistralai/codestral-2508:batch`

### Introdução

Codestral 2508 é o modelo de texto da Mistral AI para geração de código e preenchimento de código sensível ao contexto. Está otimizado para tarefas frequentes no editor, incluindo preenchimento intermédio e edições de várias linhas, com um contexto de 128k indicado pelo fabricante e funcionalidades documentadas de conversa, saída estruturada e ferramentas.

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 mistralai/codestral-2508: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 mistralai/codestral-2508:batch, mistralai/codestral-2508 | Predefinição— |
| Campo`provider.only` | Tipo`string[]` | RequisitoOpcional | Valores e limites mistral | 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.0003** / 1K tokens Saída · Tokens de saída **$0.0009** / 1K tokens Entrada · Leitura da cache **$0.00003** / 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.0003** / 1K tokens Saída · Tokens de saída **$0.0009** / 1K tokens Entrada · Leitura da cache **$0.00003** / 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":"mistralai/codestral-2508: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 ['mistralai/codestral-2508:batch', 'mistralai/codestral-2508']: raise ValueError("body.model must be an exact documented caller or wire ID")
    return {"endpoint":"/v1/chat/completions", "model":"mistralai/codestral-2508: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** [`mistralai/codestral-2508:batch`](https://ailoot.ai/models/pt-pt/#m=mistralai%2Fcodestral-2508%3Abatch&route=Ultra&caller=mistralai%2Fcodestral-2508%3Abatch&fmt=batches)

#### Aliases dos caminhos dos métodos

Use os caminhos dos métodos indicados acima.

#### IDs de chamada relacionados

[`mistralai/codestral-2508:batch`](https://ailoot.ai/models/pt-pt/#m=mistralai%2Fcodestral-2508%3Abatch&route=Ultra&caller=mistralai%2Fcodestral-2508%3Abatch&fmt=batches)

FAQ · Mistral: Codestral 2508 (batch)

Que entradas e resultados estão disponíveis?

`POST /v1/batches` · `mistralai/codestral-2508:batch`: `text` → `text`

Que campos utiliza o pedido?

`POST /v1/batches` · `mistralai/codestral-2508:batch`: `endpoint`, `model`, `requests`, `completion_window`, `provider`

Que limites se aplicam?

`POST /v1/batches` · `mistralai/codestral-2508: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.
