We use cookies to enhance your experience and measure how the site performs. Choose "Essential Only" to disable analytics. Read our Privacy Policy.

    Odeus Docs

    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.ai with 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 the text-embedding-ada-002 model is supported.
    • encoding_format: Supports both float and base64 formats.

    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"