OpenAI Embeddings
Creates embeddings for text using OpenAI's embedding models
OpenAI Embeddings
Creates embeddings for text using OpenAI's embedding models
⚠️ Using our API via a dedicated deployment? Just replace
api.odeus.aiwith your deployment's base URL:<deployment-url>/api/public
Creates embeddings for text using OpenAI's embedding models. This endpoint follows the OpenAI API specification and the requests are sent to the Azure OpenAI endpoint.
To use the API you need an API key. Admins can create API keys in the settings.
All parameters from the OpenAI Embeddings endpoint are supported according to the OpenAI specifications, with the following exceptions:
model: Currently only thetext-embedding-ada-002model is supported.encoding_format: Supports bothfloatandbase64formats.
Rate limits
The rate limit for the Embeddings endpoint is 500 RPM (requests per minute) and 60,000 TPM (tokens per minute). Rate limits are defined at the workspace level - and not at an API key level. If you exceed your rate limit, you will receive a 429 Too Many Requests response.
Please note that the rate limits are subject to change, refer to this documentation for the most up-to-date information.
Using OpenAI-compatible libraries
As the request and response format is the same as the OpenAI API, you can use popular libraries like the OpenAI Python library or the Vercel AI SDK to use the Odeus API.
Example using the OpenAI Python library
from openai import OpenAI
client = OpenAI(
base_url="https://api.odeus.ai/openai/eu/v1",
api_key="<YOUR_ODEUS_API_KEY>"
)
embedding = client.embeddings.create(
model="text-embedding-ada-002",
input="The quick brown fox jumps over the lazy dog",
encoding_format="float"
)
print(embedding.data[0].embedding)
Example using the Vercel AI SDK in Node.js
import { createOpenAI } from "@ai-sdk/openai";
const odeusProvider = createOpenAI({
baseURL: "https://api.odeus.ai/openai/eu/v1",
apiKey: "<YOUR_ODEUS_API_KEY>",
});
const response = await odeusProvider.embeddings.create({
model: "text-embedding-ada-002",
input: "The quick brown fox jumps over the lazy dog",
encoding_format: "float",
});
console.log(response.data[0].embedding);
Odeus intentionally blocks browser-origin requests to protect your API key and ensure your applications remain secure. For more information, please see our guide on API Key Best Practices.
OpenAPI
openapi: 3.0.0
info:
title: Odeus API
version: 3.0.0
servers:
- url: https://api.odeus.ai
security:
- bearerAuth: []
paths:
/openai/{region}/v1/embeddings:
post:
tags:
- Embeddings
summary: Creates embeddings for the given input text.
parameters:
- name: region
in: path
required: true
description: The region of the API to use.
schema:
type: string
enum:
- eu
- us
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEmbeddingRequest'
example:
model: text-embedding-ada-002
input: The quick brown fox jumps over the lazy dog
encoding_format: float
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/CreateEmbeddingResponse'
example:
data:
- embedding:
- 0.0023064255
- -0.009327292
- ...
index: 0
object: embedding
model: text-embedding-ada-002
object: list
usage:
prompt_tokens: 9
total_tokens: 9
'400':
description: Bad Request
content:
application/json:
schema:
type: object
properties:
message:
type: string
oneOf:
- example: No embedding models available for the ${region} region
description: >-
Error message indicating either no models are available in the
region or the requested model is not available
'401':
description: Unauthorized
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: The provided API key is invalid.
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Rate limit for public API exceeded
'500':
description: Internal Server Error
content:
application/json:
schema:
type: object
properties:
message:
type: string
example: Internal Server Error
security:
- bearerAuth: []
components:
schemas:
CreateEmbeddingRequest:
type: object
properties:
input:
description: >-
Input text to get embeddings for, encoded as a string or array of
tokens. To get embeddings for multiple inputs in a single request,
pass an array of strings or array of tokens, e.g. `["text1",
"text2"]`. Each input must not exceed 8192 tokens in length.
oneOf:
- type: string
- type: array
items:
type: string
- type: array
items:
type: number
- type: array
items:
type: array
items:
type: number
model:
description: >-
ID of the model to use. You can use the [List
models](https://platform.openai.com/docs/api-reference/models/list)
API to see all of your available models, or see OpenAI's [Model
overview](https://platform.openai.com/docs/models/overview) for
descriptions of them.
oneOf:
- type: string
- type: string
enum:
- text-embedding-ada-002
- text-embedding-3-small
- text-embedding-3-large
encoding_format:
description: >-
The format to return the embeddings in. Can be either `float` or
`base64`.
type: string
enum:
- float
- base64
default: float
dimensions:
description: >-
The number of dimensions the resulting output embeddings should
have. Only supported in `text-embedding-3` and later models.
type: integer
minimum: 1
user:
description: >-
A unique identifier representing your end-user, which can help
OpenAI to monitor and detect abuse.
type: string
required:
- model
- input
CreateEmbeddingResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Embedding'
description: The list of embeddings generated by the model.
model:
type: string
description: The name of the model used to generate the embedding.
object:
type: string
enum:
- list
description: The object type, which is always "list".
usage:
type: object
properties:
prompt_tokens:
type: integer
description: The number of tokens used for the prompt(s).
total_tokens:
type: integer
description: The total number of tokens used by the request.
required:
- prompt_tokens
- total_tokens
required:
- data
- model
- object
- usage
Embedding:
type: object
properties:
index:
type: integer
description: The index of the embedding in the list of embeddings.
embedding:
type: array
items:
type: number
description: >-
The embedding vector, which is a list of floats. The length of
vector depends on the model as listed in the [embedding
guide](https://platform.openai.com/docs/guides/embeddings).
object:
type: string
enum:
- embedding
description: The object type, which is always "embedding".
required:
- index
- embedding
- object
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: API Key
description: API key as Bearer token. Format "Bearer YOUR_API_KEY"