VoyageAI by MongoDB: voyage-code-4
Voyage AI voyage-code-4 is een code-embeddingmodel om relevante broncode te vinden vanuit vragen, probleembeschrijvingen en doelen van programmeeragenten. Het ondersteunt invoer van 32.000 tokens en 256, 512, 1024 of 2048 dimensies, met drijvende-komma- en gekwantiseerde representaties.
Over het model
Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.
voyage-code-4 is het in code gespecialiseerde embeddingmodel van Voyage AI voor repositoryzoeken en informatieopvraging door programmeeragenten. Het is ontworpen om relevante broncode te helpen vinden wanneer het vertrekpunt een vraag, symptoom of taakbeschrijving is in plaats van een bekende identifier. Het representeert code en tekstuele informatie als numerieke vectoren voor informatieopvraging; het bewerkt de repository niet en genereert geen reparatie.
Haal code op vanuit het onderzochte probleem
De maker beschrijft een trainingscorpus dat uit afgeronde pull requests is samengesteld en natuurlijke-taalvragen met code verbindt. Dat is een betekenisvol verschil met trainingsvoorbeelden die vooral rond bronbestanden en hun docstrings zijn opgebouwd: de zoektaak kan beginnen met het gedrag dat onderzoek nodig heeft.
Bereid een zoekvraag voor zoals “Zoek waar een leeg resultaat ertoe leidt dat een succesvolle handeling als mislukt wordt gemeld.” Indexeer leesbare bronsecties met hun bestandspaden en relevante commentaren. Behoud de omringende voorwaarden van de functie wanneer die het gedrag verklaren. Een geretourneerde kandidaat moet de lezer of agent terugleiden naar de bronsectie die hij vertegenwoordigt.
Semantische informatieopvraging kan exact zoeken op identifiers en volledige tekst aanvullen. Als een functienaam al bekend is, blijft een exacte zoekopdracht bruikbaar. Als alleen een symptoom bekend is, kan vectorzoeken kandidaten voor onderzoek leveren die met een volgende zoekvraag verder worden verfijnd.
Rollen van zoekvraag en document
De zoekrichtlijnen van Voyage onderscheiden de zoekvraag van het corpusdocument via query/document-invoertypen. Gebruik bij codezoeken de probleem- of taakbeschrijving als zoekvraag en de geïndexeerde broncode of documentatie als document. Het gepubliceerde recept voegt tijdens het embedden rolgebonden zoekinstructies toe.
Houd de oorspronkelijke opmaak, namen en relevante documentatie van de code beschikbaar buiten de vector. Bewaar bij een bronsectie het bestandspad en de locatie; bewaar bij een programmeergids de kop. Onderzoek na het ophalen de daadwerkelijke code en de aanroepers voordat u een bewerking kiest. Relevantie van een kandidaat stelt niet vast dat hij de enige oorzaak van een gemeld probleem is.
Context en representatiekeuzes
De gepubliceerde contextlengte van het exacte model is 32.000 tokens. De standaardembedding heeft 1024 dimensies, met ook 256, 512 en 2048 ondersteund via Matryoshka-leren. De aankondiging documenteert 32-bits drijvende-kommagetallen, 8-bits gehele getallen met en zonder teken en binaire representaties.
Selecteer één dimensie en representatie voor de verzameling en bewaar die bij de metadata. Drijvende-kommavectoren en gekwantiseerde representaties vereisen de bijbehorende opslag- en vergelijkingsverwerking. Een binaire representatie codeert vectorinformatie anders dan een lijst gewone drijvende-kommacoördinaten; behoud dat onderscheid wanneer u zoekresultaten voorbereidt.
Kies bij een lang bestand samenhangende secties waarvan de bronlocaties kunnen worden teruggevonden. Een functie kan een aangrenzende typedefinitie of opmerking nodig hebben om een voorwaarde te verklaren, terwijl een volledig te groot bestand niet-relevant materiaal kan bevatten. Stem de sectie af op de te doorzoeken taak in plaats van de maximale context als voorkeursfragmentgrootte te behandelen.
Gebruik opgehaalde broncode als onderbouwing
Een praktische workflow voor programmeeragenten haalt kandidaatbroncode op, leest die bestanden, volgt relevante verwijzingen en vernauwt de zoekopdracht naarmate het onderzoek vordert. De opgehaalde tekst wordt context voor de redeneer- of bewerkingsfase. Behoud de koppeling aan de geïndexeerde repositoryrevisie, zodat een kandidaat tegen de juiste bron wordt onderzocht.
De editiespecifieke bijdrage van voyage-code-4 is de focus op de stap van probleem naar code die programmeeragenten gebruiken, samen met flexibele dimensies en representaties. De uitvoer is een zoekvector, terwijl diagnose, bewerking en validatie afzonderlijke taken blijven die op de daadwerkelijke repository zijn gebaseerd.
Ailoot Ultra · Embeddings POST /v1/embeddings voyageai/voyage-code-4
voyageai/voyage-code-4Aan de slag
Voyage AI voyage-code-4 is een code-embeddingmodel om relevante broncode te vinden vanuit vragen, probleembeschrijvingen en doelen van programmeeragenten. Het ondersteunt invoer van 32.000 tokens en 256, 512, 1024 of 2048 dimensies, met drijvende-komma- en gekwantiseerde representaties.
- Toegestane invoer
- Tekst · token_ids
- Resultaten
- embedding
Beschikbaar in Ailoot · invoer en methoden
Ailoot Ultra · Embeddings POST /v1/embeddings
- Invoertypen
text,token_ids- Uitvoertypen
embedding- Context
- 32.000 tokens
- Uitvoerformaat
- json
| Veld | Type | Vereiste | Waarden en limieten | Standaard |
|---|---|---|---|---|
Veldmodel | Typestring | VereisteVereist | Waarden en limieten voyageai/voyage-code-4 | Standaard— |
Veldinput | Typestring|string[]|integer[]|integer[][] | VereisteVereist | Waarden en limieten Minimumaantal items: 1 Voorwaarden: Niet-lege homogene batch. Token-ID’s zijn niet-negatieve gehele getallen. Invoerbudget: Maximum: 32.000 · Teksteenheid: UTF8-bytes · Tokeneenheid: elementen van de token-array | Standaard— |
Veldencoding_format | Typestring | VereisteOptioneel | Waarden en limieten float | Standaardfloat |
Velddimensions | Typeinteger | VereisteNiet ondersteund | Waarden en limieten Minimum: 1 | Standaard— |
Velduser | Typejson_value | VereisteOptioneel | Waarden en limieten Voorwaarden: De bron staat dit JSON-metadataveld toe; de exacte betekenis bij de upstreamprovider verschilt per model. | Standaard— |
Veldsession_id | Typejson_value | VereisteOptioneel | Waarden en limieten Voorwaarden: De bron staat dit JSON-metadataveld toe; de exacte betekenis bij de upstreamprovider verschilt per model. | Standaard— |
Veldtrace | Typejson_value | VereisteOptioneel | Waarden en limieten Voorwaarden: De bron staat dit JSON-metadataveld toe; de exacte betekenis bij de upstreamprovider verschilt per model. | Standaard— |
Veldprovider | Typeobject | VereisteOptioneel | Waarden en limieten Voorwaarden: provider.options geweigerd | Standaard— |
Combinaties van invoermaterialen
text_to_embedding
Methodeparameters en levenscyclus
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, input |
Parameterinput_shapes | Contractstring, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[] |
Parameterencoding_format | Contractfloat |
Parameterdimensions_override | Contractfalse |
Parametermax_input_budget_units | Contract32000 |
Parametermultimodal_objects | Contractfalse |
Parametermaterial_types | Contracttext, token_ids |
Levenscyclus: synchronous_json
Bewaar elke vectorindex en dimensie.
Een multimodale modelnaam houdt niet in dat afbeeldingsobjecten op dit specifieke pad zijn toegestaan.
Tarieven
Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.
- Snelle modus
- Standaardtarief Wanneer de snelle modus is geselecteerd
- Flexmodus
- Standaardtarief Wanneer de modus flex is geselecteerd
- Maximale redeneerinspanning
- Standaardtarief Wanneer bij maximale redeneerinspanning de default-aanpassing wordt gebruikt
Ailoot-tarieven
Prijzen per configuratie
| Configuratie | Tariefstaffel | Kosten |
|---|---|---|
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Kosten Invoer · Invoertokens $0.00024 / 1K tokens Uitvoer · Uitvoertokens $0 / 1K tokens Invoer · Cache lezen — / 1K tokens Invoer · Cache schrijven — / 1K tokens Invoer · Cache schrijven, 1 uur — / 1K tokens |
Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. Zo werken reservering en afrekening →
Voorbeeldverzoeken
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)
Resultaten ophalen en opslaan
Ailoot Ultra · Embeddings
json
Alle voltooide resultaten bewaren
Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.
Bewaar elke vector met zijn index. Het aantal vectoren moet gelijk zijn aan het aantal invoeritems; de dimensies moeten consistent zijn.
Als het oorspronkelijke antwoord moet worden gecontroleerd
Er wordt geen endpoint voor embeddingtaken geïntroduceerd.
Antwoordvelden
| Veld | Type |
|---|---|
Veldobject | Typestring |
Veldmodel | Typestring |
Velddata[].index | Typeinteger |
Velddata[].embedding | Typefinite float[] |
Veldusage | Typeobject |
Fouten en vervolgstappen
| Antwoord | Voorwaarde | Volgende stap |
|---|---|---|
Antwoord400 · invalid_request_error | VoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldig | Volgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag. |
Aliasnamen
Modelaliasnamen
Ailoot Ultra voyageai/voyage-code-4
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
FAQ · VoyageAI by MongoDB: voyage-code-4
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/embeddings·voyageai/voyage-code-4:text,token_ids→embedding- Welke velden gebruikt het verzoek?
POST /v1/embeddings·voyageai/voyage-code-4:model,input,encoding_format,provider- Welke limieten gelden?
POST /v1/embeddings·voyageai/voyage-code-4:ctx:32000;input.budget.maximum:32000(UTF8-bytes);input.min_items:1