VoyageAI by MongoDB: voyage-4
voyage-4 tworzy osadzenia tekstu do wyszukiwania ogólnego przeznaczenia i wielojęzycznego we wspólnej przestrzeni wektorowej rodziny Voyage 4. Obsługuje wejścia do 32 000 tokenów, wybieralne wyjścia o 256–2048 wymiarach oraz role query/document do wyszukiwania i RAG.
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-4 to średniej wielkości model osadzeń tekstu Voyage AI z rodziny Voyage 4. Zamienia tekst zapytań i dokumentów na wektory liczbowe do wyszukiwania ogólnego przeznaczenia i wielojęzycznego. Cechą definiującą rodzinę jest wspólna przestrzeń osadzeń: voyage-4, voyage-4-large, voyage-4-lite i voyage-4-nano tworzą zgodne reprezentacje, dzięki czemu strona zapytań i strona dokumentów w zadaniu wyszukiwania mogą używać różnych modeli z tej rodziny.
Wspólna przestrzeń i wyszukiwanie asymetryczne
Producent nazywa stosowanie różnych modeli zapytań i korpusu wyszukiwaniem asymetrycznym. Jednym z udokumentowanych schematów jest przygotowanie korpusu za pomocą voyage-4-large i przeszukiwanie go przy użyciu osadzeń zapytań z voyage-4. Osadzenia korpusu tworzy się raz lub po zmianie jego materiału źródłowego, a wektory zapytań powstają wraz z kolejnymi wyszukiwaniami. Wspólna przestrzeń pozwala zmieniać model po stronie zapytań w obrębie rodziny bez konieczności ponownego tworzenia osadzeń korpusu wyłącznie z powodu tej zmiany.
Utrzymuj zgodność liczby wymiarów wyjścia i reprezentacji między porównywanymi wektorami. Deklaracja wspólnej przestrzeni dotyczy nazwanych modeli tekstowych Voyage 4; nie potwierdza jej samo zwracanie tablic tej samej długości przez dwa niepowiązane modele. W praktycznym zadaniu można zatem używać voyage-4 po obu stronach wyszukiwania lub stosować jego wektory zapytań z istniejącym indeksem dokumentów voyage-4-large, gdy ustawienia ich reprezentacji są zgodne.
Role zapytania i dokumentu
Do wyszukiwania Voyage zaleca oznaczanie tekstu wejściowego jako zapytania lub dokumentu. Opcja roli wejścia dostarcza odpowiednią instrukcję wyszukiwania przed wektoryzacją. Przygotuj fragmenty korpusu jako dokumenty, a sformułowanie wyszukiwania użytkownika jako zapytanie, zachowując rzeczywisty tekst źródłowy i identyfikatory obok każdego zapisanego wektora.
Na przykład kolekcja do wyszukiwania wiedzy może indeksować instrukcje techniczne i objaśnienia produktów. Zapytanie o to, co dzieje się po nieudanym imporcie, powinno zwrócić fragment źródłowy opisujący to zachowanie. Zachowaj przy fragmencie nagłówki, istotne warunki i położenie w źródle, aby można było sprawdzić wynik wyszukiwania lub wykorzystać go w późniejszym etapie pisania odpowiedzi RAG. Osadzenie jest liczbową reprezentacją do wyszukiwania; właściwy fragment stanowi materiał dowodowy używany w tym późniejszym etapie.
Wymiary i typy danych wyjściowych
Udokumentowane okno kontekstu na tekst wynosi 32 000 tokenów. Można wybrać 256, 512, 1024 lub 2048 wymiarów, przy domyślnej wartości 1024. Uczenie Matryoshka zapewnia te zagnieżdżone rozmiary reprezentacji. Wyjście może używać 32-bitowych liczb zmiennoprzecinkowych, 8-bitowych liczb całkowitych ze znakiem lub bez znaku albo pakowanych wartości binarnych, dzięki przygotowaniu rodziny uwzględniającemu kwantyzację.
Przy pakowanym wyjściu binarnym każdy zwrócony bajt przechowuje osiem bitów osadzenia, więc długość listy bajtów wynosi jedną ósmą wybranej liczby wymiarów. Liczba bajtów i liczba wymiarów osadzenia mają różne znaczenia. Wybierz reprezentację, którą indeks wyszukiwania potrafi interpretować, i przed wyborem konfiguracji skompresowanej sprawdź trafność kandydatów na pytaniach i językach rzeczywiście używanych w kolekcji.
Długość wejścia, przetwarzanie wsadowe i obcinanie
Aktualny przewodnik producenta po osadzeniach tekstu dopuszcza do 1000 ciągów znaków i łącznie 320 000 tokenów w żądaniu voyage-4. Limit wsadu jest odrębny od okna 32 000 tokenów dla każdego wejścia. Obcinanie jest domyślnie włączone: zbyt długi tekst jest skracany do dopuszczalnego rozmiaru. Jeśli obcinanie zostanie wyłączone, zbyt długi element zamiast tego powoduje błąd.
W przypadku długiego raportu lub transkrypcji celowo przygotuj fragmenty zawierające odpowiedź, zamiast polegać na odcięciu na granicy wejścia. Powiąż każdy fragment z dokumentem nadrzędnym i wersją źródła. Zwykłe wejścia osadzeń voyage-4 to pojedyncze teksty; kontekstowe przetwarzanie grup fragmentów należy do osobno udokumentowanych modeli osadzeń kontekstowych.
Wykorzystuj wynik wyszukiwania
Przechowuj wektory z tekstem fragmentów i trwałymi identyfikatorami źródeł, porównuj każdy wektor zapytania ze zgodnymi wektorami dokumentów i zwracaj kandydujące fragmenty. Publikacja przedstawiająca rodzinę ocenia wyszukiwanie w materiałach obejmujących dokumenty techniczne, rozmowy, długie dokumenty, kod, prawo, finanse i tekst internetowy. Osobny model ponownego rankingu może dopracować kandydatów, a późniejszy etap odpowiedzi może wykorzystać ich tekst. Oceniaj zwrócone fragmenty względem zadania; zgodność wspólnej przestrzeni umożliwia połączenie modeli, ale użyteczność wyniku nadal zależy od materiału źródłowego i pytania.
Ailoot Ultra · Reprezentacje wektorowe POST /v1/embeddings voyageai/voyage-4
voyageai/voyage-4Start
voyage-4 tworzy osadzenia tekstu do wyszukiwania ogólnego przeznaczenia i wielojęzycznego we wspólnej przestrzeni wektorowej rodziny Voyage 4. Obsługuje wejścia do 32 000 tokenów, wybieralne wyjścia o 256–2048 wymiarach oraz role query/document do wyszukiwania i RAG.
- 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-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.00012 / 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-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-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-4
Aliasy ścieżek metod
Użyj ścieżek metod podanych powyżej.
Powiązane ID modeli
FAQ · VoyageAI by MongoDB: voyage-4
- Jakie dane wejściowe i wyniki są dostępne?
POST /v1/embeddings·voyageai/voyage-4:text,token_ids→embedding- Jakich pól używa żądanie?
POST /v1/embeddings·voyageai/voyage-4:model,input,encoding_format,provider- Jakie limity obowiązują?
POST /v1/embeddings·voyageai/voyage-4:ctx:32000;input.budget.maximum:32000(bajty UTF8);input.min_items:1