VoyageAI by MongoDB: voyage-code-4
Voyage AI voyage-code-4 ist ein Code-Embedding-Modell zum Auffinden relevanten Quellcodes anhand von Fragen, Problembeschreibungen und Zielen von Programmieragenten. Es unterstützt Eingaben mit 32.000 Tokens und 256, 512, 1024 oder 2048 Dimensionen sowie Gleitkomma- und quantisierte Repräsentationen.
Über das Modell
Diese Beschreibung erläutert die Fähigkeiten des Modells. Die über Ailoot verfügbaren Eingaben, Ausgaben und Optionen sind unten für die ausgewählte Methode aufgeführt.
voyage-code-4 ist das auf Code spezialisierte Embedding-Modell von Voyage AI für Repository-Suche und die Informationssuche von Programmieragenten. Es soll helfen, relevanten Quellcode zu finden, wenn der Ausgangspunkt eine Frage, ein Symptom oder eine Aufgabenbeschreibung statt einer bekannten Kennung ist. Es repräsentiert Code und textliche Informationen als numerische Vektoren für die Suche; es bearbeitet das Repository nicht und erzeugt keine Fehlerbehebung.
Code anhand des untersuchten Problems abrufen
Der Hersteller beschreibt einen Trainingskorpus, der aus abgeschlossenen Pull Requests zusammengestellt wurde und natürlichsprachliche Anfragen mit Code verknüpft. Dies ist ein bedeutsamer Unterschied zu Trainingsbeispielen, die hauptsächlich aus Quelldateien und deren Docstrings bestehen: Die Suchaufgabe kann bei dem Verhalten beginnen, das untersucht werden muss.
Bereiten Sie eine Anfrage wie „Finde die Stelle, an der ein leeres Ergebnis dazu führt, dass ein erfolgreicher Vorgang als Fehler gemeldet wird“ vor. Indizieren Sie lesbare Quellcodeabschnitte mit ihren Dateipfaden und relevanten Kommentaren. Bewahren Sie die umgebenden Bedingungen einer Funktion, wenn sie ihr Verhalten erklären. Ein zurückgegebener Kandidat sollte Leser oder Agenten zu dem Quellcodeabschnitt zurückführen, den er repräsentiert.
Semantische Suche kann die exakte Kennungs- und Volltextsuche ergänzen. Ist ein Funktionsname bereits bekannt, bleibt eine exakte Suche nützlich. Ist nur ein Symptom bekannt, kann Vektorsuche Kandidaten zur Untersuchung liefern, die sich mit einer weiteren Anfrage eingrenzen lassen.
Rollen von Anfrage und Dokument
Voyages Suchhinweise unterscheiden die Anfrage vom Korpusdokument durch die Eingabetypen query/document. Verwenden Sie bei der Codesuche die Problem- oder Aufgabenbeschreibung als Anfrage und den indizierten Quellcode oder die Dokumentation als Dokument. Das veröffentlichte Rezept fügt bei der Embedding-Berechnung rollenspezifische Suchinstruktionen hinzu.
Halten Sie die ursprüngliche Formatierung, Namen und relevante Dokumentation des Codes außerhalb des Vektors verfügbar. Bewahren Sie bei einem Quellcodeabschnitt Dateipfad und Position, bei einer Programmieranleitung die Überschrift. Prüfen Sie nach dem Abruf den tatsächlichen Code und seine Aufrufer, bevor Sie eine Änderung wählen. Die Relevanz eines Kandidaten belegt nicht, dass er die einzige Ursache eines gemeldeten Problems ist.
Kontext und Repräsentationsmöglichkeiten
Die veröffentlichte Kontextlänge dieses konkreten Modells beträgt 32.000 Tokens. Sein Standard-Embedding hat 1024 Dimensionen; durch Matryoshka-Lernen werden auch 256, 512 und 2048 Dimensionen unterstützt. Die Ankündigung dokumentiert 32-Bit-Gleitkomma-, vorzeichenbehaftete und vorzeichenlose 8-Bit-Ganzzahl- sowie binäre Repräsentationen.
Wählen Sie eine Dimension und Repräsentation für die Sammlung und speichern Sie diese in ihren Metadaten. Gleitkommavektoren und quantisierte Repräsentationen erfordern die jeweils passende Speicherung und Vergleichsverarbeitung. Eine binäre Repräsentation kodiert Vektorinformationen anders als eine Liste gewöhnlicher Gleitkommakoordinaten; bewahren Sie diese Unterscheidung bei der Vorbereitung von Suchergebnissen.
Wählen Sie bei einer langen Datei zusammenhängende Abschnitte, deren Quellpositionen wiedergefunden werden können. Eine Funktion kann eine benachbarte Typdefinition oder einen Kommentar benötigen, um eine Bedingung zu erklären, während eine ganze übergroße Datei sachfremdes Material enthalten kann. Richten Sie den Abschnitt an der gesuchten Aufgabe aus, statt den maximalen Kontext als bevorzugte Abschnittsgröße zu behandeln.
Abgerufenen Quellcode als Beleg verwenden
Ein praktischer Workflow für Programmieragenten ruft mögliche Quellcodeabschnitte ab, liest diese Dateien, folgt relevanten Verweisen und grenzt die Suche im Verlauf der Untersuchung ein. Der abgerufene Text wird zum Kontext für den Denk- oder Bearbeitungsschritt. Bewahren Sie seine Zuordnung zur indizierten Repository-Revision, damit ein Kandidat anhand des richtigen Quellcodes geprüft wird.
Der ausgabespezifische Beitrag von voyage-code-4 ist der Schwerpunkt auf dem von Programmieragenten verwendeten Schritt von der Problembeschreibung zum relevanten Code, zusammen mit flexiblen Dimensionen und Repräsentationen. Seine Ausgabe ist ein Suchvektor; Diagnose, Bearbeitung und Validierung bleiben separate, im tatsächlichen Repository verankerte Aufgaben.
Ailoot Ultra · Embeddings POST /v1/embeddings voyageai/voyage-code-4
voyageai/voyage-code-4Einstieg
Voyage AI voyage-code-4 ist ein Code-Embedding-Modell zum Auffinden relevanten Quellcodes anhand von Fragen, Problembeschreibungen und Zielen von Programmieragenten. Es unterstützt Eingaben mit 32.000 Tokens und 256, 512, 1024 oder 2048 Dimensionen sowie Gleitkomma- und quantisierte Repräsentationen.
- Zulässige Eingaben
- Text · token_ids
- Ergebnisse
- embedding
In Ailoot verfügbar · Eingaben und Methoden
Ailoot Ultra · Embeddings POST /v1/embeddings
- Eingabe
text,token_ids- Ausgabe
embedding- Kontext
- 32 000 tokens
- Ausgabeformat
- json
| Feld | Typ | Anforderung | Werte und Limits | Standard |
|---|---|---|---|---|
Feldmodel | Typstring | AnforderungErforderlich | Werte und Limits voyageai/voyage-code-4 | Standard— |
Feldinput | Typstring|string[]|integer[]|integer[][] | AnforderungErforderlich | Werte und Limits Mindestanzahl Elemente: 1 Bedingungen: Nicht leerer, homogener Batch. Token-IDs sind nichtnegative Ganzzahlen. Eingabebudget: Maximum: 32 000 · Texteinheit: UTF8-Bytes · Tokeneinheit: Elemente des Token-Arrays | Standard— |
Feldencoding_format | Typstring | AnforderungOptional | Werte und Limits float | Standardfloat |
Felddimensions | Typinteger | AnforderungNicht unterstützt | Werte und Limits Minimum: 1 | Standard— |
Felduser | Typjson_value | AnforderungOptional | Werte und Limits Bedingungen: Die Quelle lässt dieses JSON-Metadatenfeld zu; die genaue Semantik des vorgelagerten Systems ist modellspezifisch. | Standard— |
Feldsession_id | Typjson_value | AnforderungOptional | Werte und Limits Bedingungen: Die Quelle lässt dieses JSON-Metadatenfeld zu; die genaue Semantik des vorgelagerten Systems ist modellspezifisch. | Standard— |
Feldtrace | Typjson_value | AnforderungOptional | Werte und Limits Bedingungen: Die Quelle lässt dieses JSON-Metadatenfeld zu; die genaue Semantik des vorgelagerten Systems ist modellspezifisch. | Standard— |
Feldprovider | Typobject | AnforderungOptional | Werte und Limits Bedingungen: provider.options abgelehnt | Standard— |
Kombinationen von Eingabematerialien
text_to_embedding
Methodenparameter und Lebenszyklus
| Parameter | Vertrag |
|---|---|
Parametercontent_type | Vertragapplication/json |
Parameterrequired | Vertragmodel, input |
Parameterinput_shapes | Vertragstring, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[] |
Parameterencoding_format | Vertragfloat |
Parameterdimensions_override | Vertragfalse |
Parametermax_input_budget_units | Vertrag32000 |
Parametermultimodal_objects | Vertragfalse |
Parametermaterial_types | Vertragtext, token_ids |
Lebenszyklus: synchronous_json
Jeden Vektorindex und jede Dimension beibehalten.
Ein multimodaler Modellname erlaubt auf genau diesem Pfad keine Bildobjekte.
Tarife
Tarifangaben erweitern die Anfrageoptionen nicht. Unterstützte Parameter stehen bei der ausgewählten Methode.
- Schnellmodus
- Standardtarif Wenn der Schnellmodus ausgewählt ist
- Flex-Modus
- Standardtarif Wenn der Modus flex ausgewählt ist
- Maximaler Denkaufwand
- Standardtarif Wenn beim maximalen Denkaufwand die Standardanpassung (default) verwendet wird
Ailoot-Tarife
Preise nach Konfiguration
| Konfiguration | Tarifstaffel | Gebühr |
|---|---|---|
| KonfigurationBasistarife für Token | TarifstaffelGrundtarif | Gebühr Eingabe · Eingabetoken $0.00024 / 1K Tokens Ausgabe · Ausgabetoken $0 / 1K Tokens Eingabe · Cache lesen — / 1K Tokens Eingabe · In Cache schreiben — / 1K Tokens Eingabe · In Cache schreiben, 1 Stunde — / 1K Tokens |
Ailoot reserviert vor einer Anfrage einen geschätzten Betrag. Nach dem Ergebnis rechnet Ailoot die endgültige Gebühr anhand des gemessenen Verbrauchs ab. Bei Streaming erfolgt die Abrechnung anhand des abschließenden Verbrauchsdatensatzes. So funktionieren Reservierung und Abrechnung →
Beispielanfragen
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)
Ergebnisse abrufen und speichern
Ailoot Ultra · Embeddings
json
Alle fertiggestellten Ergebnisse aufbewahren
Bewahren Sie jede vollständig zurückgegebene Antwort, Datei und jeden Inhaltsteil auf.
Jeden Vektor mit seinem Index beibehalten. Die Anzahl der Vektoren muss der Anzahl der Eingaben entsprechen; die Dimensionen müssen konsistent sein.
Wenn die ursprüngliche Antwort geprüft werden muss
Es wird kein Endpunkt für Embedding-Aufträge eingeführt.
Antwortfelder
| Feld | Typ |
|---|---|
Feldobject | Typstring |
Feldmodel | Typstring |
Felddata[].index | Typinteger |
Felddata[].embedding | Typfinite float[] |
Feldusage | Typobject |
Fehler und nächste Schritte
| Antwort | Bedingung | Nächster Schritt |
|---|---|---|
Antwort400 · invalid_request_error | BedingungPflichtfelder, Darstellung des Eingabematerials oder Parameterwert ungültig | Nächster SchrittDie angegebenen Felder vor einer neuen Erstellungsanfrage korrigieren. |
Aliasnamen
Modellaliasnamen
Ailoot Ultra voyageai/voyage-code-4
Aliasnamen für Methodenpfade
Verwenden Sie die oben angezeigten Methodenpfade.
Zugehörige Aufrufer-IDs
FAQ · VoyageAI by MongoDB: voyage-code-4
- Welche Eingaben und Ergebnisse sind verfügbar?
POST /v1/embeddings·voyageai/voyage-code-4:text,token_ids→embedding- Welche Felder verwendet die Anfrage?
POST /v1/embeddings·voyageai/voyage-code-4:model,input,encoding_format,provider- Welche Grenzen gelten?
POST /v1/embeddings·voyageai/voyage-code-4:ctx:32000;input.budget.maximum:32000(UTF8-Bytes);input.min_items:1