> ## Documentation Index
> Fetch the complete documentation index at: https://docs.langdock.com/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenAI Embeddings

> Creates embeddings for text using OpenAI's embedding models

<Info>
  **⚠️ Using our API via a dedicated deployment?** Just replace `api.langdock.com` with your deployment's base URL: **`<deployment-url>/api/public`**
</Info>

Creates embeddings for text using OpenAI's embedding models. This endpoint follows the [OpenAI API specification](https://platform.openai.com/docs/api-reference/embeddings) and the requests are sent to the Azure OpenAI endpoint.

<Info>
  To use the API you need an API key. Admins can create API keys in the
  settings.
</Info>

All parameters from the [OpenAI Embeddings endpoint](https://platform.openai.com/docs/api-reference/embeddings) 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](https://github.com/openai/openai-python) or the [Vercel AI SDK](https://ai-sdk.dev/docs/introduction) to use the Langdock API.

### Example using the OpenAI Python library

```python theme={null}
from openai import OpenAI
client = OpenAI(
  base_url="https://api.langdock.com/openai/eu/v1",
  api_key="<YOUR_LANGDOCK_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

```typescript theme={null}
import { createOpenAI } from "@ai-sdk/openai";

const langdockProvider = createOpenAI({
  baseURL: "https://api.langdock.com/openai/eu/v1",
  apiKey: "<YOUR_LANGDOCK_API_KEY>",
});

const response = await langdockProvider.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);
```

<Info>
  Langdock 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](/en/admin/ai-adoption-and-rollout/best-practices/api-key-best-practices).
</Info>


## OpenAPI

````yaml POST /openai/{region}/v1/embeddings
openapi: 3.0.0
info:
  title: Langdock API
  version: 3.0.0
servers:
  - url: https://api.langdock.com
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"

````