Mistral: Codestral Embed 2505
Codestral Embed 2505 representa código e consultas em linguagem natural como vetores para pesquisa em repositórios e recuperação para assistentes de programação. O fabricante documenta um contexto de 8192 tokens, dimensões configuráveis até 3072 e formatos de saída de vírgula flutuante, inteiros ou bits compactados.
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 Embed 2505 é o modelo de embeddings da Mistral AI especializado em recuperação de código. Recebe texto com código-fonte ou uma consulta sobre código em linguagem natural e devolve vetores numéricos. O fabricante posiciona-o para pesquisa em repositórios, recuperação de contexto para assistentes de programação, análise de similaridade e duplicados e agrupamento de código pela sua funcionalidade ou estrutura. O seu identificador de edição fixa é codestral-embed-2505.
Entrada e representação
Uma entrada de código pode ser uma função, um fragmento de código-fonte relacionado ou outra unidade significativa de um repositório. Uma consulta em linguagem natural pode descrever o comportamento a localizar, em vez de indicar o símbolo exato. O embedding representa essa entrada para comparação; o modelo não gera uma nova implementação nem executa o código que recebe.
A publicação oficial documenta um contexto de entrada completo de 8192 tokens. Para recuperação, o fabricante recomenda fragmentos com cerca de 3000 caracteres e uma sobreposição de 1000 caracteres, observando que fragmentos maiores podem prejudicar a recuperação. Estas são recomendações de preparação para recuperação, não um limite de tokens de 3000 caracteres. Mantenha o ficheiro, o símbolo e a localização de origem associados a cada elemento preparado, para que a aplicação possa devolver o código relevante após a pesquisa.
Precisão e dimensões de saída
O guia de embeddings de código documenta os tipos de saída float, int8, uint8, binary e ubinary. Float utiliza valores de precisão simples de 32 bits. Int8 utiliza inteiros de 8 bits com sinal entre -128 e 127, enquanto uint8 utiliza valores de 8 bits sem sinal entre 0 e 255. Binary e ubinary armazenam valores quantizados de um único bit em elementos compactados de 8 bits, utilizando, respetivamente, contentores com ou sem sinal.
A representação de bits compactados altera o comprimento da lista devolvida: o guia descreve um elemento compactado por cada oito dimensões lógicas do embedding. Uma comparação que tem em conta o formato é, por isso, diferente de tratar os bytes compactados como coordenadas comuns de vírgula flutuante. Preserve o tipo escolhido com o vetor e utilize a mesma representação para o código indexado e a respetiva consulta.
A documentação dos parâmetros indica uma dimensão predefinida de 1536 e um máximo de 3072. As dimensões estão ordenadas por relevância, e o fabricante descreve a conservação do primeiro número escolhido de dimensões como forma de selecionar o tamanho da representação. Escolha a dimensão de forma consistente para a coleção armazenada e as novas consultas. Uma representação mais curta ou quantizada altera o comportamento de armazenamento e comparação; não aumenta o contexto de entrada nem transforma o modelo num gerador de código.
Programação aumentada por recuperação
O primeiro caso de utilização da publicação é recuperar contexto para completar, editar ou explicar código. Prepare unidades de código significativas e conserve a revisão do repositório e os identificadores de origem. Uma pergunta sobre o tratamento de um erro específico pode recuperar funções relacionadas, que a aplicação fornece depois a um modelo de programação juntamente com o pedido real de alteração.
Um resultado prático é um conjunto ordenado de excertos de código-fonte com caminhos de ficheiros, símbolos e o conteúdo necessário para compreender o seu comportamento. Os excertos recuperados podem ser abertos por um programador ou passados a um assistente. Codestral Embed realiza a etapa de representação; um componente separado seleciona os resultados e um modelo de geração escreve a explicação ou o código proposto.
Pesquisa semântica e similaridade
O fabricante descreve pesquisa de código com consultas em linguagem natural ou em código. Um programador pode pedir a implementação de um comportamento mesmo quando o nome da função difere da formulação do pedido. Inclua o comportamento e as condições que distinguem a implementação pretendida; uma consulta geral sobre um subsistema inteiro pode recuperar material relacionado sem resolver a pergunta específica.
A publicação também descreve a localização de código quase duplicado ou funcionalmente semelhante apesar de diferenças lexicais. Esses resultados podem ajudar a localizar uma implementação reutilizável ou identificar código que precisa de revisão adicional. A similaridade no espaço de embeddings é um sinal para examinar o código-fonte; não demonstra que dois fragmentos tenham comportamento idêntico para todas as entradas.
Agrupamento, análise e comparação
Os embeddings de código podem ser utilizados para agrupar código por funcionalidade ou estrutura e examinar a composição de um repositório. Mantenha os excertos originais e os identificadores disponíveis, para que um grupo possa ser interpretado por uma pessoa ou por uma etapa posterior da aplicação. Um cluster é um agrupamento baseado em representações, não uma descrição de arquitetura automaticamente verificada.
Os exemplos de vetores de vírgula flutuante do fabricante utilizam embeddings normalizados com norma unitária, para os quais a similaridade do cosseno, o produto escalar e a distância euclidiana produzem ordenações consistentes. A saída quantizada e de bits compactados deve manter o seu próprio tratamento de formato, em vez de herdar uma suposição sobre coordenadas brutas de vírgula flutuante. O endpoint publicado também conserva índices de entrada, ajudando a preservar a ligação entre cada vetor e o seu elemento de origem.
Edição e limites práticos
A página exata do modelo enumera fluxos de embeddings e lotes com uma designação de contexto de 8k, enquanto a publicação indica o valor de 8192 tokens. Preserve a edição com nome 2505, a dimensão de saída e o tipo escolhidos ao longo do fluxo da coleção e das consultas. Esta é uma saída vetorial orientada a código, distinta do completamento de texto de Codestral e do modelo textual Mistral Embed de dimensão fixa.
Prepare unidades de código que contenham o comportamento relevante, mantenha as suas localizações de origem e formule a pergunta a localizar. O artefacto útil é uma representação recuperável ligada a código real, que apoia a etapa seguinte de explicação, edição ou revisão por um programador sem realizar essa etapa por si só.
Ailoot Ultra · Embeddings POST /v1/embeddings mistralai/codestral-embed-2505
mistralai/codestral-embed-2505
mistralai/codestral-embed-2505Introdução
Codestral Embed 2505 representa código e consultas em linguagem natural como vetores para pesquisa em repositórios e recuperação para assistentes de programação. O fabricante documenta um contexto de 8192 tokens, dimensões configuráveis até 3072 e formatos de saída de vírgula flutuante, inteiros ou bits compactados.
- Entradas aceites
- Texto · token_ids
- Resultados
- embedding
Disponível no Ailoot · entradas e métodos
Ailoot Ultra · Embeddings POST /v1/embeddings
- Entrada
text,token_ids- Saída
embedding- Contexto
- 8192 tokens
- Formato de saída
- json
| Campo | Tipo | Requisito | Valores e limites | Predefinição |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObrigatório | Valores e limites mistralai/codestral-embed-2505 | Predefinição— |
Campoinput | Tipostring|string[]|integer[]|integer[][] | RequisitoObrigatório | Valores e limites Número mínimo de elementos: 1 Condições: Lote homogéneo não vazio. Os IDs de tokens são números inteiros não negativos. Orçamento de entrada: Máximo: 8192 · Unidade de texto: bytes UTF8 · Unidade de tokens: elementos do array de tokens | Predefinição— |
Campoencoding_format | Tipostring | RequisitoOpcional | Valores e limites float | Predefiniçãofloat |
Campodimensions | Tipointeger | RequisitoNão suportado | Valores e limites Mínimo: 1 | Predefinição— |
Campouser | Tipojson_value | RequisitoOpcional | Valores e limites Condições: A fonte permite este campo de metadados JSON; a semântica exata a montante depende do modelo. | Predefinição— |
Camposession_id | Tipojson_value | RequisitoOpcional | Valores e limites Condições: A fonte permite este campo de metadados JSON; a semântica exata a montante depende do modelo. | Predefinição— |
Campotrace | Tipojson_value | RequisitoOpcional | Valores e limites Condições: A fonte permite este campo de metadados JSON; a semântica exata a montante depende do modelo. | Predefinição— |
Campoprovider | Tipoobject | RequisitoOpcional | Valores e limites Condições: provider.options rejeitado | Predefinição— |
Combinações de materiais de entrada
text_to_embedding
Parâmetros e ciclo de vida do método
| Parâmetro | Contrato |
|---|---|
Parâmetrocontent_type | Contratoapplication/json |
Parâmetrorequired | Contratomodel, input |
Parâmetroinput_shapes | Contratostring, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[] |
Parâmetroencoding_format | Contratofloat |
Parâmetrodimensions_override | Contratofalse |
Parâmetromax_input_budget_units | Contrato8192 |
Parâmetromultimodal_objects | Contratofalse |
Parâmetromaterial_types | Contratotext, token_ids |
Ciclo de vida: synchronous_json
Guarde o índice e a dimensão de cada vetor.
O nome do modelo multimodal não permite objetos de imagem neste caminho exato.
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
- Tarifa normal Quando o modo rápido está selecionado
- Modo flex
- Tarifa normal Quando o modo flex está selecionado
- Esforço máximo de raciocínio
- Tarifa normal Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)
Tarifas Ailoot
Preços por configuração
| Configuração | Tabela de tarifas | Custo |
|---|---|---|
| ConfiguraçãoTarifas base dos tokens | Tabela de tarifasTarifa base | Custo Entrada · Tokens de entrada $0.0003 / 1K tokens Saída · Tokens de saída $0 / 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 · Embeddings
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "mistralai/codestral-embed-2505", "input": ["First document", "Second document"]}')
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/embeddings \
-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("data",[]): print(json.dumps({"index":x.get("index"),"embedding":x.get("embedding")}))
PY_RESULT
from openai import OpenAI
import os
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.embeddings.create(model='mistralai/codestral-embed-2505',input=["First document","Second document"])
print(result)
for item in result.data:print(item.index,item.embedding)
Receber e guardar os resultados
Ailoot Ultra · Embeddings
json
Guardar todos os resultados concluídos
Guarde cada resposta, ficheiro e parte de conteúdo devolvidos na íntegra.
Guarde cada vetor com o respetivo índice. O número de vetores tem de ser igual ao número de entradas; as dimensões têm de ser consistentes.
Se for necessário verificar a resposta original
Não é introduzido nenhum endpoint de tarefas de embeddings.
Campos da resposta
| Campo | Tipo |
|---|---|
Campoobject | Tipostring |
Campomodel | Tipostring |
Campodata[].index | Tipointeger |
Campodata[].embedding | Tipofinite float[] |
Campousage | Tipoobject |
Erros e passos seguintes
| Resposta | Condição | Passo seguinte |
|---|---|---|
Resposta400 · invalid_request_error | CondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidos | Passo seguinteCorrija os campos indicados antes de um novo pedido de criação. |
Aliases
Aliases do modelo
Ailoot Ultra mistralai/codestral-embed-2505
Aliases dos caminhos dos métodos
Use os caminhos dos métodos indicados acima.
IDs de chamada relacionados
FAQ · Mistral: Codestral Embed 2505
- Que entradas e resultados estão disponíveis?
POST /v1/embeddings·mistralai/codestral-embed-2505:text,token_ids→embedding- Que campos utiliza o pedido?
POST /v1/embeddings·mistralai/codestral-embed-2505:model,input,encoding_format,provider- Que limites se aplicam?
POST /v1/embeddings·mistralai/codestral-embed-2505:ctx:8192;input.budget.maximum:8192(bytes UTF8);input.min_items:1