Voyage AI
Voyage AI’s embedding models, including domain models for code, finance and law. Voyage’s own API lives at /v1/embeddings in a shape close to OpenAI’s, so VectorAxis serves both on that one endpoint: the Voyage AI SDK and the OpenAI SDK work against it. Use a Voyage AI virtual key (Bring your own key, with your Voyage API key). Voyage AI keys serve embeddings only; they are refused on chat completions.
import voyageai
vo = voyageai.Client(
api_key="vk-1a2b3c4d5e6f7a8b.Xk3pQ9vN2mR7tY1wZ8bC4dF6gH0jK5lM3nP7qS9uV2w", # a Voyage AI virtual key
base_url="https://api.vectoraxis.ai/v1", # the SDK appends /embeddings
)
result = vo.embed(["What is our refund policy?"], model="voyage-3.5", input_type="query")
print(len(result.embeddings[0]))Voyage’s request fields reach Voyage as you send them: input_type (query or document), truncation, output_dimension, output_dtype and encoding_format. See Voyage’s API reference.
client.embeddings.create(
model="voyage-3.5",
input=["Refunds are issued within 14 days."],
dimensions=512,
extra_body={"input_type": "document"},
)| OpenAI field | Sent to Voyage as |
|---|---|
| dimensions | output_dimension |
| user | dropped (Voyage has no such field) |
| every other field | as sent |
Voyage’s answer already has OpenAI’s shape; VectorAxis adds usage.prompt_tokens next to Voyage’s usage.total_tokens, which OpenAI clients read.
Each call is priced on the tokens Voyage reports, at the model’s rate, and logged with operation embedding. Budgets, guardrails, retries and the exact-match cache (x-cache-mode: simple) work as on every embeddings call. Voyage’s rerank, multimodal and contextualized-chunk endpoints are not available through VectorAxis yet.