VoyageAI by MongoDB: voyage-code-4
Voyage AI voyage-code-4 to model osadzeń kodu do odnajdywania odpowiedniego kodu źródłowego na podstawie pytań, opisów problemów i celów agentów programistycznych. Obsługuje wejścia do 32 000 tokenów oraz 256, 512, 1024 lub 2048 wymiarów, z reprezentacjami zmiennoprzecinkowymi i skwantyzowanymi.
O modelu
Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.
voyage-code-4 to model osadzeń Voyage AI wyspecjalizowany w kodzie, przeznaczony do przeszukiwania repozytoriów i wyszukiwania kontekstu dla agentów programistycznych. Pomaga odnajdywać odpowiedni kod źródłowy, gdy punktem wyjścia jest pytanie, objaw lub opis zadania, a nie znany identyfikator. Reprezentuje kod i informacje tekstowe jako wektory liczbowe do wyszukiwania; nie edytuje repozytorium ani nie generuje poprawki.
Wyszukuj kod na podstawie badanego problemu
Producent opisuje korpus treningowy dobrany z zakończonych pull requestów, łączący zapytania w języku naturalnym z kodem. To istotna różnica względem przykładów treningowych opartych głównie na plikach źródłowych i ich docstringach: zadanie wyszukiwania może zaczynać się od zachowania wymagającego zbadania.
Przygotuj zapytanie takie jak „Znajdź miejsce, w którym pusty wynik powoduje zgłoszenie udanej operacji jako niepowodzenia”. Indeksuj czytelne sekcje kodu źródłowego wraz ze ścieżkami plików i istotnymi komentarzami. Zachowaj warunki otaczające funkcję, jeśli wyjaśniają jej zachowanie. Zwrócony kandydat powinien prowadzić czytelnika lub agenta z powrotem do reprezentowanej sekcji źródłowej.
Wyszukiwanie semantyczne może uzupełniać wyszukiwanie dokładnych identyfikatorów i wyszukiwanie pełnotekstowe. Jeśli nazwa funkcji jest już znana, dokładne wyszukanie nadal jest przydatne. Jeśli znany jest tylko objaw, wyszukiwanie wektorowe może dostarczyć kandydatów do sprawdzenia i zawężenia kolejnym zapytaniem.
Role zapytania i dokumentu
Wskazówki Voyage dotyczące wyszukiwania rozróżniają zapytanie i dokument korpusu za pomocą typów wejścia query/document. Przy wyszukiwaniu kodu używaj opisu problemu lub zadania jako zapytania, a indeksowanego kodu źródłowego lub dokumentacji jako dokumentu. Opublikowana procedura dodaje podczas tworzenia osadzeń instrukcje wyszukiwania właściwe dla danej roli.
Zachowaj poza wektorem oryginalne formatowanie kodu, nazwy i odpowiednią dokumentację. Dla sekcji źródłowej zachowaj ścieżkę pliku i położenie, a dla poradnika programistycznego – nagłówek. Po wyszukaniu sprawdź rzeczywisty kod i miejsca, z których jest wywoływany, zanim wybierzesz zmianę. Trafność kandydata nie dowodzi, że jest on jedyną przyczyną zgłoszonego problemu.
Kontekst i wybór reprezentacji
Opublikowana długość kontekstu tego konkretnego modelu wynosi 32 000 tokenów. Domyślne osadzenie ma 1024 wymiary; uczenie Matryoshka umożliwia także 256, 512 i 2048 wymiarów. Ogłoszenie dokumentuje reprezentacje zmiennoprzecinkowe 32-bitowe, całkowitoliczbowe 8-bitowe ze znakiem i bez znaku oraz binarne.
Wybierz jedną liczbę wymiarów i reprezentację dla kolekcji i zachowaj je w jej metadanych. Wektory zmiennoprzecinkowe i reprezentacje skwantyzowane wymagają odpowiedniej obsługi przechowywania i porównywania. Reprezentacja binarna koduje informacje wektora inaczej niż lista zwykłych współrzędnych zmiennoprzecinkowych; zachowaj to rozróżnienie, przygotowując wyniki do wyszukiwania.
W przypadku długiego pliku wybierz spójne sekcje, których położenie w źródle można odtworzyć. Funkcja może wymagać sąsiedniej definicji typu lub komentarza wyjaśniającego warunek, a cały zbyt duży plik może zawierać niepowiązane materiały. Dopasuj sekcję do zadania, według którego będzie wyszukiwana, zamiast traktować maksymalny kontekst jako preferowany rozmiar fragmentu.
Traktuj znaleziony kod źródłowy jako materiał dowodowy
Praktyczny proces pracy agenta programistycznego wyszukuje potencjalnie trafne fragmenty kodu źródłowego, odczytuje te pliki, podąża za istotnymi odwołaniami i zawęża wyszukiwanie w miarę postępów analizy. Znaleziony tekst staje się kontekstem dla etapu rozumowania lub edycji. Zachowaj jego powiązanie z indeksowaną rewizją repozytorium, aby kandydat był sprawdzany względem właściwego źródła.
Wkładem charakterystycznym dla wersji voyage-code-4 jest skupienie na używanym przez agentów programistycznych etapie wyszukiwania kodu na podstawie problemu, wraz z elastycznymi wymiarami i reprezentacjami. Wynikiem jest wektor do wyszukiwania, natomiast diagnoza, edycja i weryfikacja pozostają odrębnymi zadaniami opartymi na rzeczywistym repozytorium.
Ailoot Ultra · Reprezentacje wektorowe POST /v1/embeddings voyageai/voyage-code-4
voyageai/voyage-code-4Start
Voyage AI voyage-code-4 to model osadzeń kodu do odnajdywania odpowiedniego kodu źródłowego na podstawie pytań, opisów problemów i celów agentów programistycznych. Obsługuje wejścia do 32 000 tokenów oraz 256, 512, 1024 lub 2048 wymiarów, z reprezentacjami zmiennoprzecinkowymi i skwantyzowanymi.
- Akceptowane dane wejściowe
- Tekst · token_ids
- Wyniki
- embedding
Dostępne w Ailoot · dane wejściowe i metody
Ailoot Ultra · Reprezentacje wektorowe POST /v1/embeddings
- Wejście
text,token_ids- Wyjście
embedding- Kontekst
- 32 000 tokens
- Format wyjściowy
- json
| Pole | Typ | Wymaganie | Wartości i limity | Domyślnie |
|---|---|---|---|---|
Polemodel | Typstring | WymaganieWymagane | Wartości i limity voyageai/voyage-code-4 | Domyślnie— |
Poleinput | Typstring|string[]|integer[]|integer[][] | WymaganieWymagane | Wartości i limity Minimalna liczba elementów: 1 Warunki: Niepusta, jednorodna partia danych. Identyfikatory tokenów są nieujemnymi liczbami całkowitymi. Budżet wejścia: Maksimum: 32 000 · Jednostka tekstu: bajty UTF8 · Jednostka tokenów: elementy tablicy tokenów | Domyślnie— |
Poleencoding_format | Typstring | WymaganieOpcjonalne | Wartości i limity float | Domyślniefloat |
Poledimensions | Typinteger | WymaganieNieobsługiwane | Wartości i limity Minimum: 1 | Domyślnie— |
Poleuser | Typjson_value | WymaganieOpcjonalne | Wartości i limity Warunki: Źródło dopuszcza to pole metadanych JSON; dokładna semantyka po stronie dostawcy zależy od modelu. | Domyślnie— |
Polesession_id | Typjson_value | WymaganieOpcjonalne | Wartości i limity Warunki: Źródło dopuszcza to pole metadanych JSON; dokładna semantyka po stronie dostawcy zależy od modelu. | Domyślnie— |
Poletrace | Typjson_value | WymaganieOpcjonalne | Wartości i limity Warunki: Źródło dopuszcza to pole metadanych JSON; dokładna semantyka po stronie dostawcy zależy od modelu. | Domyślnie— |
Poleprovider | Typobject | WymaganieOpcjonalne | Wartości i limity Warunki: Odrzucono provider.options | Domyślnie— |
Kombinacje materiałów wejściowych
text_to_embedding
Parametry i cykl życia metody
| Parametr | Kontrakt |
|---|---|
Parametrcontent_type | Kontraktapplication/json |
Parametrrequired | Kontraktmodel, input |
Parametrinput_shapes | Kontraktstring, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[] |
Parametrencoding_format | Kontraktfloat |
Parametrdimensions_override | Kontraktfalse |
Parametrmax_input_budget_units | Kontrakt32000 |
Parametrmultimodal_objects | Kontraktfalse |
Parametrmaterial_types | Kontrakttext, token_ids |
Cykl życia: synchronous_json
Zachowaj indeks i liczbę wymiarów każdego wektora.
Nawet jeśli nazwa modelu wskazuje na multimodalność, ta konkretna ścieżka nie obsługuje obiektów obrazów.
Cennik
Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.
- Tryb szybki
- Stawka standardowa Gdy wybrany jest tryb szybki
- Tryb flex
- Stawka standardowa Gdy wybrany jest tryb flex
- Maksymalna intensywność rozumowania
- Stawka standardowa Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)
Stawki Ailoot
Ceny według konfiguracji
| Konfiguracja | Tabela stawek | Opłata |
|---|---|---|
| KonfiguracjaPodstawowe stawki za tokeny | Tabela stawekStawka podstawowa | Opłata Wejście · Tokeny wejściowe $0.00024 / 1K tokenów Wyjście · Tokeny wyjściowe $0 / 1K tokenów Wejście · Odczyt cache — / 1K tokenów Wejście · Zapis do cache — / 1K tokenów Wejście · Zapis do cache, 1 godz. — / 1K tokenów |
Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →
Przykładowe żądania
Ailoot Ultra · Reprezentacje wektorowe
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)
Odbieranie i zapisywanie wyników
Ailoot Ultra · Reprezentacje wektorowe
json
Zachowaj wszystkie ukończone wyniki
Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.
Zachowaj każdy wektor wraz z jego indeksem. Liczba wektorów musi być równa liczbie elementów wejściowych; wszystkie wektory muszą mieć tę samą liczbę wymiarów.
Jeśli trzeba sprawdzić pierwotną odpowiedź
Nie wprowadzono endpointu zadań generowania osadzeń.
Pola odpowiedzi
| Pole | Typ |
|---|---|
Poleobject | Typstring |
Polemodel | Typstring |
Poledata[].index | Typinteger |
Poledata[].embedding | Typfinite float[] |
Poleusage | Typobject |
Błędy i dalsze kroki
| Odpowiedź | Warunek | Następny krok |
|---|---|---|
Odpowiedź400 · invalid_request_error | WarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametru | Następny krokPopraw wskazane pola przed nowym żądaniem utworzenia. |
Aliasy
Aliasy modelu
Ailoot Ultra voyageai/voyage-code-4
Aliasy ścieżek metod
Użyj ścieżek metod podanych powyżej.
Powiązane ID modeli
FAQ · VoyageAI by MongoDB: voyage-code-4
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/embeddings·voyageai/voyage-code-4:text,token_ids→embedding- Jakich pól używa żądanie?
POST /v1/embeddings·voyageai/voyage-code-4:model,input,encoding_format,provider- Jakie limity obowiązują?
POST /v1/embeddings·voyageai/voyage-code-4:ctx:32000;input.budget.maximum:32000(bajty UTF8);input.min_items:1