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

# Create embeddings

Metin veya medya girdilerinden embedding vektörleri oluşturur. Yalnızca metin içeren istekler her girdi için bir vektör döndürür; bilgi getirme, semantik arama, kümeleme, sınıflandırma ve RAG için kullanışlıdır. Medya içeren istekler (base64 data URI olarak görüntü, ses veya video) **tüm** girdileri **tek bir** çapraz-modal vektörde birleştirir — her varlık için ayrı bir vektör gerekiyorsa her varlığı kendi isteğinde gönderin. OpenAI Embeddings API formatıyla uyumludur. Bu endpoint'te akış (streaming) desteklenmez.

## Kimlik Doğrulama

<ParamField header="Authorization" type="string" required>
  Bearer token. Authorization başlığında API anahtarınızı bearer token olarak kullanın.

  Format: `Bearer <SUNRA_KEY>`
</ParamField>

## İstek

Bu endpoint bir JSON nesnesi bekler.

<ParamField body="model" type="string" required>
  Kullanılacak embedding modelinin kimliği, örneğin `google/gemini-embedding-2`. Mevcut embedding modelleri için [modeller sayfasına](https://sunra.ai/models) bakın.
</ParamField>

<ParamField body="input" type="string | string[]" required>
  Embedding'e dönüştürülecek girdiler; tek bir string veya string dizisi olabilir. Yalnızca metin içeren girdiler bağımsız olarak işlenir ve girdi sırasına göre her girdi için bir vektör döndürülür. Medya girdileri base64 data URI olarak iletilir (`data:image/png;base64,…`, `data:audio/mpeg;base64,…`, `data:video/mp4;base64,…`) ve metinle karıştırılabilir — ancak medya içeren herhangi bir istek, tüm girdilerin birleşimi için tek bir birleştirilmiş vektör döndürür. Limitler (upstream): istek başına en fazla 6 görüntü, en fazla 120 saniyelik video ve tüm modaliteler genelinde toplam 8.192 token bütçesi (metin token'ları; her görüntü 258 token, ses saniyede 25 token, video saniyede 66 token olarak sayılır).
</ParamField>

<ParamField body="dimensions" type="integer">
  Çıktı embedding'lerinin boyut sayısı. Yalnızca esnek çıktı boyutlarına sahip modeller tarafından desteklenir (Matryoshka Representation Learning). `google/gemini-embedding-2` için varsayılan değer `3072` olup `128` ile `3072` arasındaki değerler desteklenir. Daha küçük değerler, semantik kalitenin büyük kısmını koruyarak vektörü kısaltır.
</ParamField>

<ParamField body="encoding_format" type="string">
  Döndürülen embedding'lerin formatı. `float` (varsayılan) veya `base64` olabilir.
</ParamField>

## Yanıt

<ResponseField name="object" type="string">
  Her zaman `list`.
</ResponseField>

<ResponseField name="data" type="object[]">
  Girdi sırasına göre, her girdi için bir tane olmak üzere embedding nesnelerinin listesi.

  <Expandable title="embedding nesnesi">
    <ResponseField name="object" type="string">
      Her zaman `embedding`.
    </ResponseField>

    <ResponseField name="index" type="integer">
      İlgili girdinin dizini.
    </ResponseField>

    <ResponseField name="embedding" type="number[]">
      Embedding vektörü.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="model" type="string">
  Embedding'leri oluşturmak için kullanılan model.
</ResponseField>

<ResponseField name="usage" type="object">
  İstek için token kullanımı. Embedding'ler yalnızca girdi token'ları üzerinden, modaliteye özgü tarifelerle ücretlendirilir (fiyatlandırma için model sayfasına bakın). Medya içeren isteklerde modalite başına token sayıları yer alır.

  <Expandable title="usage nesnesi">
    <ResponseField name="prompt_tokens" type="integer">
      Metin girdi token'larının sayısı.
    </ResponseField>

    <ResponseField name="input_image_tokens" type="integer">
      Görüntü girdi token'ları (görüntü başına 258). Yalnızca istek görüntü içerdiğinde bulunur.
    </ResponseField>

    <ResponseField name="input_audio_tokens" type="integer">
      Ses girdi token'ları (saniye başına 25). Yalnızca istek ses içerdiğinde bulunur.
    </ResponseField>

    <ResponseField name="input_video_tokens" type="integer">
      Video girdi token'ları (saniye başına 66). Yalnızca istek video içerdiğinde bulunur.
    </ResponseField>

    <ResponseField name="total_tokens" type="integer">
      Tüm modaliteler genelinde toplam girdi token'ı sayısı (embedding'ler çıktı token'ı üretmez).
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api-llm.sunra.ai/v1/embeddings \
    -H "Authorization: Bearer <SUNRA_KEY>" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "google/gemini-embedding-2",
      "input": [
        "The quick brown fox jumps over the lazy dog.",
        "Sunra is a platform for AI models."
      ],
      "dimensions": 768
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api-llm.sunra.ai/v1/embeddings",
      headers={
          "Authorization": "Bearer <SUNRA_KEY>",
          "Content-Type": "application/json"
      },
      json={
          "model": "google/gemini-embedding-2",
          "input": [
              "The quick brown fox jumps over the lazy dog.",
              "Sunra is a platform for AI models."
          ],
          "dimensions": 768
      }
  )
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api-llm.sunra.ai/v1/embeddings", {
    method: "POST",
    headers: {
      "Authorization": "Bearer <SUNRA_KEY>",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      model: "google/gemini-embedding-2",
      input: [
        "The quick brown fox jumps over the lazy dog.",
        "Sunra is a platform for AI models."
      ],
      dimensions: 768
    })
  });
  const data = await response.json();
  console.log(data);
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "object": "list",
    "data": [
      {
        "object": "embedding",
        "index": 0,
        "embedding": [0.011253, -0.020551, 0.049236, "..."]
      },
      {
        "object": "embedding",
        "index": 1,
        "embedding": [0.031744, 0.008122, -0.014307, "..."]
      }
    ],
    "model": "google/gemini-embedding-2",
    "usage": {
      "prompt_tokens": 18,
      "total_tokens": 18
    }
  }
  ```
</ResponseExample>
