VoyageAI by MongoDB: voyage-code-4
Voyage AI voyage-code-4 é um modelo de embeddings de código para encontrar código-fonte relevante a partir de perguntas, descrições de problemas e objetivos de agentes de programação. Suporta entradas de 32 000 tokens e dimensões de 256, 512, 1024 ou 2048, com representações de vírgula flutuante e quantizadas.
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.
voyage-code-4 é o modelo de embeddings da Voyage AI especializado em código para pesquisa em repositórios e recuperação para agentes de programação. Foi concebido para ajudar a localizar código-fonte relevante quando o ponto de partida é uma pergunta, um sintoma ou uma descrição de tarefa, em vez de um identificador conhecido. Representa código e informação textual como vetores numéricos para recuperação; não edita o repositório nem gera uma correção.
Recupere código a partir do problema em investigação
O fabricante descreve um corpus de treino selecionado a partir de pull requests concluídos, ligando consultas em linguagem natural a código. Esta é uma distinção significativa em relação a exemplos de treino construídos sobretudo em torno de ficheiros de código-fonte e das suas docstrings: a tarefa de recuperação pode começar pelo comportamento que precisa de investigação.
Prepare uma consulta como «Encontre onde um resultado vazio faz com que uma operação bem-sucedida seja comunicada como falha». Indexe secções legíveis de código-fonte com os respetivos caminhos de ficheiro e comentários relevantes. Mantenha as condições em torno da função quando explicam o seu comportamento. Um candidato devolvido deve conduzir o leitor ou agente de volta à secção de código-fonte que representa.
A recuperação semântica pode complementar a pesquisa exata por identificadores e a pesquisa de texto integral. Se o nome de uma função já for conhecido, uma procura exata continua a ser útil. Se apenas um sintoma for conhecido, a pesquisa vetorial pode fornecer candidatos a examinar e refinar com outra consulta.
Papéis de consulta e documento
As orientações de recuperação da Voyage distinguem a consulta do documento do corpus através dos tipos de entrada query/document. Para pesquisa de código, utilize a descrição do problema ou tarefa como consulta e o código-fonte ou documentação indexados como documento. A receita publicada acrescenta instruções de recuperação específicas de cada papel durante a geração de embeddings.
Mantenha a formatação original do código, os nomes e a documentação relevante disponíveis fora do vetor. Para uma secção de código-fonte, conserve o caminho do ficheiro e a localização; para um guia de programação, conserve o título. Após a recuperação, examine o código real e os componentes que o chamam antes de escolher uma alteração. A relevância de um candidato não demonstra que seja a única causa de um problema comunicado.
Contexto e escolhas de representação
O comprimento de contexto publicado do modelo exato é de 32 000 tokens. O seu embedding predefinido tem 1024 dimensões, estando também suportadas dimensões de 256, 512 e 2048 através de aprendizagem Matryoshka. O anúncio documenta representações de vírgula flutuante de 32 bits, inteiros de 8 bits com e sem sinal e representações binárias.
Selecione uma dimensão e representação para a coleção e mantenha-as com os respetivos metadados. Vetores de vírgula flutuante e representações quantizadas exigem o tratamento correspondente de armazenamento e comparação. Uma representação binária codifica a informação vetorial de forma diferente de uma lista de coordenadas comuns de vírgula flutuante; preserve essa distinção ao preparar resultados para pesquisa.
Para um ficheiro longo, escolha secções coerentes cujas localizações de origem possam ser recuperadas. Uma função pode precisar de uma definição de tipo ou comentário adjacente para explicar uma condição, enquanto um ficheiro inteiro demasiado grande pode incluir material sem relação. Mantenha a secção alinhada com a tarefa a pesquisar, em vez de tratar o contexto máximo como tamanho preferido dos fragmentos.
Utilize o código-fonte recuperado como evidência
Um fluxo prático de agente de programação recupera código-fonte candidato, lê esses ficheiros, segue referências relevantes e restringe a pesquisa à medida que a investigação avança. O texto recuperado torna-se contexto para a etapa de raciocínio ou edição. Mantenha a sua associação à revisão indexada do repositório, para que um candidato seja examinado em relação ao código-fonte correto.
A contribuição específica da edição voyage-code-4 é o seu foco na etapa de recuperação de código a partir de problemas utilizada por agentes de programação, juntamente com dimensões e representações flexíveis. A sua saída é um vetor de recuperação, enquanto diagnóstico, edição e validação permanecem tarefas separadas, fundamentadas no repositório real.
Ailoot Ultra · Embeddings POST /v1/embeddings voyageai/voyage-code-4
voyageai/voyage-code-4Introdução
Voyage AI voyage-code-4 é um modelo de embeddings de código para encontrar código-fonte relevante a partir de perguntas, descrições de problemas e objetivos de agentes de programação. Suporta entradas de 32 000 tokens e dimensões de 256, 512, 1024 ou 2048, com representações de vírgula flutuante e quantizadas.
- 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
- 32 000 tokens
- Formato de saída
- json
| Campo | Tipo | Requisito | Valores e limites | Predefinição |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObrigatório | Valores e limites voyageai/voyage-code-4 | 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: 32 000 · 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 | Contrato32000 |
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.00024 / 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": "voyageai/voyage-code-4", "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='voyageai/voyage-code-4',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 voyageai/voyage-code-4
Aliases dos caminhos dos métodos
Use os caminhos dos métodos indicados acima.
IDs de chamada relacionados
FAQ · VoyageAI by MongoDB: voyage-code-4
- Que entradas e resultados estão disponíveis?
POST /v1/embeddings·voyageai/voyage-code-4:text,token_ids→embedding- Que campos utiliza o pedido?
POST /v1/embeddings·voyageai/voyage-code-4:model,input,encoding_format,provider- Que limites se aplicam?
POST /v1/embeddings·voyageai/voyage-code-4:ctx:32000;input.budget.maximum:32000(bytes UTF8);input.min_items:1