VoyageAI by MongoDB: voyage-4
voyage-4 embedt tekst voor algemene en meertalige informatieopvraging, met een gedeelde vectorruimte binnen de Voyage-4-familie. Het ondersteunt invoer van 32.000 tokens, selecteerbare uitvoer van 256–2048 dimensies en query/document-rollen voor zoeken en RAG.
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-4 is het middelgrote tekstembeddingmodel van Voyage AI in de Voyage-4-familie. Het zet zoekvraag- en documenttekst om in numerieke vectoren voor algemene en meertalige informatieopvraging. Het bepalende kenmerk van de familie is een gedeelde embeddingruimte: voyage-4, voyage-4-large, voyage-4-lite en voyage-4-nano produceren compatibele representaties, zodat de zoekvraag- en documentzijde van een zoektaak verschillende modellen uit die familie kunnen gebruiken.
Gedeelde ruimte en asymmetrische informatieopvraging
De fabrikant noemt het gebruik van verschillende zoekvraag- en corpusmodellen asymmetrische informatieopvraging. Een gedocumenteerd patroon is om het corpus met voyage-4-large voor te bereiden en het met zoekvraag-embeddings van voyage-4 te doorzoeken. Het corpus wordt één keer ingebed of wanneer het bronmateriaal verandert, terwijl zoekvraagvectoren worden gemaakt wanneer zoekopdrachten binnenkomen. De gedeelde ruimte laat de modelkeuze aan de zoekvraagzijde binnen de familie veranderen zonder dat het corpus alleen voor die wissel opnieuw moet worden ingebed.
Houd uitvoerdimensie en representatie compatibel tussen de vergeleken vectoren. De verklaring over gedeelde ruimte betreft de benoemde Voyage-4-tekstmodellen; zij wordt niet vastgesteld doordat twee niet-gerelateerde modellen arrays van dezelfde lengte retourneren. Een praktische taak kan dus voyage-4 aan beide kanten van het zoeken gebruiken of de zoekvraagvectoren met een bestaande voyage-4-large-documentindex combineren wanneer hun representatie-instellingen overeenkomen.
Rollen van zoekvraag en document
Voor informatieopvraging beveelt Voyage aan invoertekst als query of document te identificeren. De invoerroloptie levert vóór vectorisering de bijbehorende zoekinstructie. Bereid corpuspassages als documenten voor en de zoekformulering van de gebruiker als zoekvraag en bewaar de daadwerkelijke brontekst en identifiers bij elke opgeslagen vector.
Een kenniszoekverzameling kan bijvoorbeeld technische instructies en productuitleg indexeren. Een zoekvraag over wat er na een mislukte import gebeurt moet de bronpassage teruggeven die dat gedrag beschrijft. Bewaar koppen, relevante voorwaarden en de bronlocatie bij de passage, zodat de resulterende zoektreffer kan worden onderzocht of door een latere RAG-antwoordfase kan worden gebruikt. De embedding is de numerieke zoekrepresentatie; de onderliggende passage is de onderbouwing die in die latere fase wordt gebruikt.
Dimensies en uitvoerdatatypen
Het gedocumenteerde contextvenster per tekst is 32.000 tokens. Selecteerbare dimensies zijn 256, 512, 1024 en 2048, met 1024 als standaard. Matryoshka-leren levert die geneste representatiegroottes. De uitvoer kan 32-bits drijvende-kommagetallen, 8-bits gehele getallen met of zonder teken of gepakte binaire waarden gebruiken, mogelijk gemaakt door de kwantisatiebewuste voorbereiding van de familie.
Bij gepakte binaire uitvoer slaat elke geretourneerde byte acht embeddingbits op, dus de lengte van de bytelijst is één achtste van de gekozen dimensie. Het aantal bytes en de embeddingdimensie hebben verschillende betekenissen. Kies een representatie die uw zoekindex kan interpreteren en onderzoek kandidaatrelevantie op de vragen en talen die de verzameling daadwerkelijk gebruikt voordat u een gecomprimeerde configuratie kiest.
Invoerlengte, batches en afkappen
De huidige tekstembeddinggids van de maker staat maximaal 1.000 tekenreeksen en 320.000 tokens in totaal toe in een voyage-4-aanvraag. Het batchbudget staat los van het venster van 32.000 tokens voor elke invoer. Afkappen is standaard ingeschakeld: te lange tekst wordt ingekort om te passen. Als afkappen wordt uitgeschakeld, produceert een te lang item in plaats daarvan een fout.
Bereid bij een lang rapport of transcript bewust antwoorddragende passages voor in plaats van op een afsnijding bij de invoergrens te vertrouwen. Houd elke passage gekoppeld aan het bovenliggende document en de bronversie. Gewone voyage-4-embeddinginvoer bestaat uit individuele teksten; contextuele verwerking van fragmentgroepen hoort bij de afzonderlijk gedocumenteerde contextuele embeddingmodellen.
Gebruik het zoekresultaat
Bewaar de vectoren met de passagetekst en stabiele bronidentifiers, vergelijk elke zoekvraagvector met de compatibele documentvectoren en retourneer kandidaatpassages. De familierelease evalueert informatieopvraging over onder meer technische documenten, gesprekken, lange documenten, code, recht, financiën en webtekst. Een afzonderlijke reranker kan kandidaten verfijnen en een latere antwoordfase kan hun tekst gebruiken. Beoordeel die geretourneerde passages tegen de taak; compatibiliteit in de gedeelde ruimte maakt de modelcombinatie mogelijk, terwijl de bruikbaarheid van een resultaat nog steeds afhangt van het bronmateriaal en de vraag.
Ailoot Ultra · Embeddings POST /v1/embeddings voyageai/voyage-4
voyageai/voyage-4Aan de slag
voyage-4 embedt tekst voor algemene en meertalige informatieopvraging, met een gedeelde vectorruimte binnen de Voyage-4-familie. Het ondersteunt invoer van 32.000 tokens, selecteerbare uitvoer van 256–2048 dimensies en query/document-rollen voor zoeken en RAG.
- 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-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.00012 / 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-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)
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-4
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
FAQ · VoyageAI by MongoDB: voyage-4
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/embeddings·voyageai/voyage-4:text,token_ids→embedding- Welke velden gebruikt het verzoek?
POST /v1/embeddings·voyageai/voyage-4:model,input,encoding_format,provider- Welke limieten gelden?
POST /v1/embeddings·voyageai/voyage-4:ctx:32000;input.budget.maximum:32000(UTF8-bytes);input.min_items:1