VoyageAI by MongoDB: voyage-code-4
Voyage AI voyage-code-4 är en kodinbäddningsmodell för att hitta relevant källkod från frågor, problembeskrivningar och kodagenters mål. Den stöder indata på 32 000 token och 256, 512, 1024 eller 2048 dimensioner, med flyttals- och kvantiserade representationer.
Om modellen
Den här beskrivningen omfattar modellens förmågor. Tillgängliga indata, utdata och alternativ i Ailoot anges nedan för den valda metoden.
voyage-code-4 är Voyage AI:s kodspecialiserade inbäddningsmodell för kodarkivssökning och informationssökning åt kodagenter. Den är utformad för att hjälpa till att hitta relevant källkod när utgångspunkten är en fråga, ett symptom eller en uppgiftsbeskrivning i stället för en känd identifierare. Den representerar kod och textinformation som numeriska vektorer för sökning; den redigerar inte kodarkivet eller genererar en rättning.
Hämta kod utifrån problemet som undersöks
Tillverkaren beskriver en träningskorpus utvald från slutförda pull requests som kopplar frågor på naturligt språk till kod. Detta är en meningsfull skillnad mot träningsexempel som främst bygger på källfiler och deras docstrings: Sökuppgiften kan börja med beteendet som behöver undersökas.
Förbered en fråga som ”Hitta var ett tomt resultat gör att en lyckad operation rapporteras som misslyckad.” Indexera läsbara källkodsavsnitt med filsökvägar och relevanta kommentarer. Behåll villkoren runt funktionen när de förklarar dess beteende. En returnerad kandidat bör leda läsaren eller agenten tillbaka till källkodsavsnittet den representerar.
Semantisk sökning kan komplettera exakt identifierarsökning och fulltextsökning. Om funktionsnamnet redan är känt är en exakt uppslagning fortfarande användbar. Om bara ett symptom är känt kan vektorsökning ge kandidater att granska och sökningen förfinas med en ny fråga.
Query- och document-roller
Voyages sökvägledning skiljer frågan från korpusdokumentet genom indatatyperna query/document. För kodsökning använder du problem- eller uppgiftsbeskrivningen på frågesidan och den indexerade källkoden eller dokumentationen på dokumentsidan. Det publicerade receptet lägger till rollspecifika sökinstruktioner när inbäddningen beräknas.
Håll kodens ursprungliga formatering, namn och relevanta dokumentation tillgängliga utanför vektorn. För ett källkodsavsnitt behåller du filsökvägen och platsen; för en programmeringsguide behåller du rubriken. Granska den faktiska koden och koden som anropar den efter sökning innan en ändring väljs. En kandidats relevans fastställer inte att den är den enda orsaken till ett rapporterat problem.
Kontext- och representationsval
Den exakta modellens publicerade kontextlängd är 32 000 token. Standardinbäddningen har 1024 dimensioner, med 256, 512 och 2048 också stödda genom Matryoshka-inlärning. Tillkännagivandet dokumenterar representationer med 32-bitars flyttal, 8-bitars heltal med eller utan tecken och binärrepresentationer.
Välj en dimension och representation för samlingen och behåll dem med dess metadata. Flyttalsvektorer och kvantiserade representationer kräver motsvarande lagrings- och jämförelsehantering. En binärrepresentation kodar vektorinformation annorlunda än en lista med vanliga flyttalskoordinater; bevara skillnaden när resultat förbereds för sökning.
För en lång fil väljer du sammanhängande avsnitt vars källplatser kan återfinnas. En funktion kan behöva en intilliggande typdefinition eller kommentar för att förklara ett villkor, medan en hel för stor fil kan innehålla ovidkommande material. Håll avsnittet anpassat till uppgiften som ska sökas efter i stället för att behandla maximal kontext som en föredragen delstorlek.
Använd hämtad källkod som evidens
Ett praktiskt kodagentarbetsflöde hämtar kandidatkällkod, läser filerna, följer relevanta hänvisningar och begränsar sökningen efter hand som undersökningen fortskrider. Den hämtade texten blir kontext för resonemangs- eller redigeringssteget. Behåll dess koppling till den indexerade kodarkivsrevisionen så att en kandidat granskas mot rätt källkod.
Det utgåvespecifika bidraget från voyage-code-4 är fokus på steget från problem till kodsökning som kodagenter använder, tillsammans med flexibla dimensioner och representationer. Resultatet är en sökvektor, medan diagnos, redigering och validering förblir separata uppgifter grundade i det faktiska kodarkivet.
Ailoot Ultra · Embeddings POST /v1/embeddings voyageai/voyage-code-4
voyageai/voyage-code-4Start
Voyage AI voyage-code-4 är en kodinbäddningsmodell för att hitta relevant källkod från frågor, problembeskrivningar och kodagenters mål. Den stöder indata på 32 000 token och 256, 512, 1024 eller 2048 dimensioner, med flyttals- och kvantiserade representationer.
- Godkända indata
- Text · token_ids
- Resultat
- embedding
Tillgängligt i Ailoot · indata & metoder
Ailoot Ultra · Embeddings POST /v1/embeddings
- Indatatyper
text,token_ids- Utdatatyper
embedding- Kontext
- 32 000 tokens
- Utdataformat
- json
| Fält | Typ | Krav | Värden & gränser | Standard |
|---|---|---|---|---|
Fältmodel | Typstring | KravObligatoriskt | Värden & gränser voyageai/voyage-code-4 | Standard— |
Fältinput | Typstring|string[]|integer[]|integer[][] | KravObligatoriskt | Värden & gränser Minsta antal objekt: 1 Villkor: En homogen batch som inte är tom. Token-ID:n är heltal som är större än eller lika med noll. Indatabudget: Maximum: 32 000 · Textenhet: UTF8-byte · Tokenenhet: element i en tokenarray | Standard— |
Fältencoding_format | Typstring | KravValfritt | Värden & gränser float | Standardfloat |
Fältdimensions | Typinteger | KravStöds inte | Värden & gränser Minimum: 1 | Standard— |
Fältuser | Typjson_value | KravValfritt | Värden & gränser Villkor: Källan tillåter detta JSON-metadatafält; den exakta innebörden hos leverantören beror på modellen. | Standard— |
Fältsession_id | Typjson_value | KravValfritt | Värden & gränser Villkor: Källan tillåter detta JSON-metadatafält; den exakta innebörden hos leverantören beror på modellen. | Standard— |
Fälttrace | Typjson_value | KravValfritt | Värden & gränser Villkor: Källan tillåter detta JSON-metadatafält; den exakta innebörden hos leverantören beror på modellen. | Standard— |
Fältprovider | Typobject | KravValfritt | Värden & gränser Villkor: provider.options avvisades | Standard— |
Kombinationer av indatamaterial
text_to_embedding
Metodparametrar och livscykel
| Parameter | Avtal |
|---|---|
Parametercontent_type | Avtalapplication/json |
Parameterrequired | Avtalmodel, input |
Parameterinput_shapes | Avtalstring, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[] |
Parameterencoding_format | Avtalfloat |
Parameterdimensions_override | Avtalfalse |
Parametermax_input_budget_units | Avtal32000 |
Parametermultimodal_objects | Avtalfalse |
Parametermaterial_types | Avtaltext, token_ids |
Livscykel: synchronous_json
Behåll varje vektorindex och dimension.
Att modellen har ett multimodalt namn innebär inte att bildobjekt tillåts på just denna anropsväg.
Priser
Tariffuppgifter lägger inte till begäransalternativ. Parametrar som stöds anges för den valda metoden.
- Snabbt läge
- Standardpris När snabbt läge är valt
- Flex-läge
- Standardpris När läget flex är valt
- Högsta resonemangsnivå
- Standardpris När den högsta resonemangsnivån använder standardjusteringen (default)
Ailoot-priser
Priser efter konfiguration
| Konfiguration | Prislista | Avgift |
|---|---|---|
| KonfigurationGrundpriser för token | PrislistaGrundpris | Avgift Indata · Indatatoken $0.00024 / 1K token Utdata · Utdatatoken $0 / 1K token Indata · Cacheläsning — / 1K token Indata · Skrivning till cache — / 1K token Indata · Skrivning till cache, 1 tim — / 1K token |
Ailoot reserverar ett uppskattat belopp före en begäran. Efter resultatet slutregleras avgiften utifrån uppmätt förbrukning. Slutreglering för strömning använder den slutliga förbrukningsposten. Så fungerar reservation och slutreglering →
Exempelbegäranden
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)
Ta emot och spara resultat
Ailoot Ultra · Embeddings
json
Behåll alla färdiga resultat
Behåll varje fullständigt returnerat svar, fil och innehållsdel.
Behåll varje vektor tillsammans med dess index. Antalet vektorer måste vara lika med antalet indataobjekt; dimensionerna måste vara konsekventa.
Om det ursprungliga svaret behöver kontrolleras
Ingen endpoint för inbäddningsjobb införs.
Svarsfält
| Fält | Typ |
|---|---|
Fältobject | Typstring |
Fältmodel | Typstring |
Fältdata[].index | Typinteger |
Fältdata[].embedding | Typfinite float[] |
Fältusage | Typobject |
Fel och nästa steg
| Svar | Villkor | Nästa steg |
|---|---|---|
Svar400 · invalid_request_error | VillkorOgiltiga obligatoriska fält, ogiltig representation av underlaget eller ogiltigt parametervärde | Nästa stegKorrigera de angivna fälten före en ny begäran om att skapa. |
Alias
Modellalias
Ailoot Ultra voyageai/voyage-code-4
Alias för metodsökvägar
Använd metodsökvägarna som visas ovan.
Relaterade anropar-ID:n
FAQ · VoyageAI by MongoDB: voyage-code-4
- Vilka indata och resultat finns?
POST /v1/embeddings·voyageai/voyage-code-4:text,token_ids→embedding- Vilka fält använder begäran?
POST /v1/embeddings·voyageai/voyage-code-4:model,input,encoding_format,provider- Vilka gränser gäller?
POST /v1/embeddings·voyageai/voyage-code-4:ctx:32000;input.budget.maximum:32000(UTF8-byte);input.min_items:1