VoyageAI by MongoDB: voyage-code-4
Voyage AI voyage-code-4 es un modelo de embeddings de código para encontrar código fuente pertinente a partir de preguntas, descripciones de incidencias y objetivos de agentes de programación. Admite entradas de 32,000 tokens y dimensiones de 256, 512, 1024 o 2048, con representaciones de punto flotante y cuantizadas.
Sobre el modelo
Esta descripción cubre las capacidades del modelo. Las entradas, salidas y opciones disponibles en Ailoot se indican a continuación para el método seleccionado.
voyage-code-4 es el modelo de embeddings de Voyage AI especializado en código para búsqueda en repositorios y recuperación para agentes de programación. Está diseñado para ayudar a localizar código fuente pertinente cuando el punto de partida es una pregunta, un síntoma o una descripción de tarea, en lugar de un identificador conocido. Representa código e información textual como vectores numéricos para recuperación; no edita el repositorio ni genera una corrección.
Recupera código a partir de la incidencia investigada
El fabricante describe un corpus de entrenamiento seleccionado a partir de pull requests completadas, que conecta consultas en lenguaje natural con código. Esta es una diferencia significativa respecto a ejemplos de entrenamiento construidos principalmente alrededor de archivos fuente y sus docstrings: la tarea de recuperación puede comenzar con el comportamiento que necesita investigación.
Prepara una consulta como «Encuentra dónde un resultado vacío hace que una operación completada con éxito se comunique como una falla». Indexa secciones legibles de código fuente con sus rutas de archivo y comentarios pertinentes. Mantén las condiciones que rodean a la función cuando expliquen su comportamiento. Un candidato devuelto debe conducir al lector o agente de vuelta a la sección de código fuente que representa.
La recuperación semántica puede complementar la búsqueda exacta de identificadores y la búsqueda de texto completo. Si ya se conoce el nombre de una función, una búsqueda exacta sigue siendo útil. Si solo se conoce un síntoma, la búsqueda vectorial puede aportar candidatos que examinar y refinar con otra consulta.
Roles de consulta y documento
Las indicaciones de recuperación de Voyage distinguen la consulta del documento del corpus mediante tipos de entrada query/document. Para búsqueda de código, utiliza la descripción de la incidencia o tarea como consulta y el código fuente o documentación indexados como documento. La receta publicada añade instrucciones de recuperación específicas de rol durante la generación de embeddings.
Mantén disponibles fuera del vector el formato original del código, los nombres y la documentación pertinente. Para una sección de código fuente, conserva su ruta de archivo y ubicación; para una guía de programación, conserva su encabezado. Después de recuperar, examina el código real y los componentes que lo invocan antes de elegir un cambio. La relevancia de un candidato no establece que sea la única causa de un problema comunicado.
Contexto y opciones de representación
La longitud de contexto publicada del modelo exacto es de 32,000 tokens. Su embedding predeterminado tiene 1024 dimensiones, con dimensiones de 256, 512 y 2048 también compatibles mediante aprendizaje Matryoshka. El anuncio documenta representaciones de punto flotante de 32 bits, enteros de 8 bits con y sin signo y representaciones binarias.
Selecciona una dimensión y representación para la colección y consérvalas junto con sus metadatos. Los vectores de punto flotante y las representaciones cuantizadas requieren el tratamiento correspondiente de almacenamiento y comparación. Una representación binaria codifica la información vectorial de forma distinta de una lista de coordenadas ordinarias de punto flotante; conserva esa distinción al preparar resultados para búsqueda.
Para un archivo largo, elige secciones coherentes cuyas ubicaciones de origen puedan recuperarse. Una función puede necesitar una definición de tipo o un comentario adyacentes para explicar una condición, mientras que un archivo entero demasiado grande puede incluir material sin relación. Mantén la sección alineada con la tarea que se va a buscar, en lugar de tratar el contexto máximo como un tamaño preferido de fragmento.
Utiliza el código fuente recuperado como evidencia
Un flujo práctico de agente de programación recupera código fuente candidato, lee esos archivos, sigue referencias pertinentes y acota la búsqueda a medida que avanza la investigación. El texto recuperado se convierte en contexto para la etapa de razonamiento o edición. Conserva su asociación con la revisión indexada del repositorio para que un candidato se examine respecto al código fuente correcto.
La contribución específica de voyage-code-4 es su enfoque en el paso de recuperación de código a partir de incidencias utilizado por agentes de programación, junto con dimensiones y representaciones flexibles. Su salida es un vector de recuperación, mientras que el diagnóstico, la edición y la validación siguen siendo tareas separadas fundamentadas en el repositorio real.
Ailoot Ultra · Representaciones vectoriales POST /v1/embeddings voyageai/voyage-code-4
voyageai/voyage-code-4Inicio
Voyage AI voyage-code-4 es un modelo de embeddings de código para encontrar código fuente pertinente a partir de preguntas, descripciones de incidencias y objetivos de agentes de programación. Admite entradas de 32,000 tokens y dimensiones de 256, 512, 1024 o 2048, con representaciones de punto flotante y cuantizadas.
- Entradas aceptadas
- Texto · token_ids
- Resultados
- embedding
Disponible en Ailoot · entradas y métodos
Ailoot Ultra · Representaciones vectoriales POST /v1/embeddings
- Entrada
text,token_ids- Salida
embedding- Contexto
- 32,000 tokens
- Formato de salida
- json
| Campo | Tipo | Requisito | Valores y límites | Predeterminado |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObligatorio | Valores y límites voyageai/voyage-code-4 | Predeterminado— |
Campoinput | Tipostring|string[]|integer[]|integer[][] | RequisitoObligatorio | Valores y límites Número mínimo de elementos: 1 Condiciones: Lote homogéneo no vacío. Los ID de tokens son números enteros no negativos. Presupuesto de entrada: Máximo: 32,000 · Unidad de texto: bytes UTF8 · Unidad de tokens: elementos de un arreglo de tokens | Predeterminado— |
Campoencoding_format | Tipostring | RequisitoOpcional | Valores y límites float | Predeterminadofloat |
Campodimensions | Tipointeger | RequisitoNo compatible | Valores y límites Mínimo: 1 | Predeterminado— |
Campouser | Tipojson_value | RequisitoOpcional | Valores y límites Condiciones: La fuente permite este campo metadata de JSON; la semántica exacta en el sistema de origen depende del modelo. | Predeterminado— |
Camposession_id | Tipojson_value | RequisitoOpcional | Valores y límites Condiciones: La fuente permite este campo metadata de JSON; la semántica exacta en el sistema de origen depende del modelo. | Predeterminado— |
Campotrace | Tipojson_value | RequisitoOpcional | Valores y límites Condiciones: La fuente permite este campo metadata de JSON; la semántica exacta en el sistema de origen depende del modelo. | Predeterminado— |
Campoprovider | Tipoobject | RequisitoOpcional | Valores y límites Condiciones: provider.options rechazado | Predeterminado— |
Combinaciones de materiales de entrada
text_to_embedding
Parámetros del método y ciclo de vida
| 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
Conserva todos los índices y dimensiones de los vectores.
El nombre de un modelo multimodal no habilita objetos de imagen en esta ruta exacta.
Tarifas
Las referencias tarifarias no añaden opciones a la solicitud. Los parámetros admitidos se indican en el método seleccionado.
- Modo fast
- Tarifa estándar Cuando se selecciona el modo fast
- Modo flex
- Tarifa estándar Cuando se selecciona el modo flex
- Esfuerzo máximo de razonamiento
- Tarifa estándar Cuando el esfuerzo máximo de razonamiento usa el ajuste default
Tarifas de Ailoot
Precios por configuración
| Configuración | Tabla de tarifas | Cargo |
|---|---|---|
| ConfiguraciónTarifas base por token | Tabla de tarifasTarifa base | Cargo Entrada · Tokens de entrada $0.00024 / 1K tokens Salida · Tokens de salida $0 / 1K tokens Entrada · Lectura de caché — / 1K tokens Entrada · Escritura en caché — / 1K tokens Entrada · Escritura en caché, 1 hora — / 1K tokens |
Ailoot reserva un monto estimado antes de la solicitud. Tras obtener el resultado, liquida el cargo definitivo según el uso medido. En las respuestas en flujo, la liquidación usa el registro de uso final. Cómo funcionan la reserva y la liquidación →
Solicitudes de ejemplo
Ailoot Ultra · Representaciones vectoriales
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)
Recibir y guardar resultados
Ailoot Ultra · Representaciones vectoriales
json
Conserva todos los resultados completados
Conserva todas las respuestas, archivos y partes de contenido completos recibidos.
Conserva cada vector con su índice. La cantidad de vectores debe ser igual a la cantidad de entradas; las dimensiones deben ser consistentes.
Si es necesario revisar la respuesta original
No se incorpora ningún endpoint de tareas de embeddings.
Campos de respuesta
| Campo | Tipo |
|---|---|
Campoobject | Tipostring |
Campomodel | Tipostring |
Campodata[].index | Tipointeger |
Campodata[].embedding | Tipofinite float[] |
Campousage | Tipoobject |
Errores y siguientes pasos
| Respuesta | Condición | Siguiente paso |
|---|---|---|
Respuesta400 · invalid_request_error | CondiciónCampos obligatorios, representación del material o valor del parámetro no válidos | Siguiente pasoCorrige los campos indicados antes de una nueva solicitud de creación. |
Alias
Alias del modelo
Ailoot Ultra voyageai/voyage-code-4
Alias de rutas de métodos
Usa las rutas de método indicadas arriba.
ID de modelo relacionados
FAQ · VoyageAI by MongoDB: voyage-code-4
- ¿Qué entradas y resultados están disponibles?
POST /v1/embeddings·voyageai/voyage-code-4:text,token_ids→embedding- ¿Qué campos utiliza la solicitud?
POST /v1/embeddings·voyageai/voyage-code-4:model,input,encoding_format,provider- ¿Qué límites se aplican?
POST /v1/embeddings·voyageai/voyage-code-4:ctx:32000;input.budget.maximum:32000(bytes UTF8);input.min_items:1