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

# إنشاء Embedding

> ينشئ متجه embedding يمثّل النص المُدخل

## جسم الطلب

**مهلة الطلبات المتزامنة:** ينتظر هذا الـ endpoint غير الخاص بالمحادثة حتى ينتهي النموذج الذي تم التوجيه إليه. قد تتجاوز المدخلات الكبيرة أو الصوت الطويل أو الدُفعات الكبيرة القيمة الافتراضية الشائعة للعميل وهي 30s، لذا اضبط مهلة عميل HTTP على `120s` على الأقل.

<ParamField body="model" type="string" required>
  معرّف نموذج الـ embedding المراد استخدامه (على سبيل المثال: `text-embedding-3-small`).
</ParamField>

<ParamField body="input" type="string | array" required>
  النص المُدخل لتحويله إلى embedding. يمكن أن يكون سلسلة نصية أو مصفوفة من السلاسل النصية.
</ParamField>

<ParamField body="encoding_format" type="string" default="float">
  التنسيق الخاص بالـ embeddings: `float` أو `base64`.
</ParamField>

<ParamField body="dimensions" type="integer">
  عدد الأبعاد في المخرجات (يعتمد على النموذج).
</ParamField>

<ParamField body="user" type="string">
  معرّف فريد يمثّل المستخدم النهائي الخاص بك لمراقبة إساءة الاستخدام.
</ParamField>

## النماذج المتاحة

| النموذج                  | الأبعاد | الوصف     |
| ------------------------ | ------- | --------- |
| `text-embedding-3-large` | 3072    | أفضل جودة |
| `text-embedding-3-small` | 1536    | متوازن    |
| `text-embedding-ada-002` | 1536    | قديم      |

## الاستجابة

<ResponseField name="object" type="string">
  دائمًا `list`.
</ResponseField>

<ResponseField name="data" type="array">
  مصفوفة من كائنات embedding.

  يحتوي كل كائن على:

  * `object` (string): `embedding`
  * `index` (integer): الفهرس في مصفوفة الإدخال
  * `embedding` (array): متجه الـ embedding
</ResponseField>

<ResponseField name="model" type="string">
  النموذج المستخدم.
</ResponseField>

<ResponseField name="usage" type="object">
  استخدام الـ token مع `prompt_tokens` و `total_tokens`.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.tokenlab.sh/v1/embeddings" \
    -H "Authorization: Bearer sk-your-api-key" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "text-embedding-3-small",
      "input": "The quick brown fox jumps over the lazy dog"
    }'
  ```

  ```python Python theme={null}
  from openai import OpenAI

  client = OpenAI(
      api_key="sk-your-api-key",
      base_url="https://api.tokenlab.sh/v1"
  )

  response = client.embeddings.create(
      model="text-embedding-3-small",
      input="The quick brown fox jumps over the lazy dog"
  )

  embedding = response.data[0].embedding
  print(f"Embedding dimension: {len(embedding)}")
  print(f"First 5 values: {embedding[:5]}")
  ```

  ```javascript JavaScript theme={null}
  import OpenAI from 'openai';

  const client = new OpenAI({
    apiKey: 'sk-your-api-key',
    baseURL: 'https://api.tokenlab.sh/v1'
  });

  const response = await client.embeddings.create({
    model: 'text-embedding-3-small',
    input: 'The quick brown fox jumps over the lazy dog'
  });

  console.log(response.data[0].embedding.slice(0, 5));
  ```

  ```php PHP theme={null}
  <?php
  $ch = curl_init('https://api.tokenlab.sh/v1/embeddings');

  curl_setopt_array($ch, [
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_POST => true,
      CURLOPT_HTTPHEADER => [
          'Content-Type: application/json',
          'Authorization: Bearer sk-your-api-key'
      ],
      CURLOPT_POSTFIELDS => json_encode([
          'model' => 'text-embedding-3-small',
          'input' => 'The quick brown fox jumps over the lazy dog'
      ])
  ]);

  $response = curl_exec($ch);
  curl_close($ch);

  $data = json_decode($response, true);
  print_r(array_slice($data['data'][0]['embedding'], 0, 5));
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "object": "list",
    "data": [
      {
        "object": "embedding",
        "index": 0,
        "embedding": [0.0023, -0.0194, 0.0081, ...]
      }
    ],
    "model": "text-embedding-3-small",
    "usage": {
      "prompt_tokens": 9,
      "total_tokens": 9
    }
  }
  ```
</ResponseExample>

## Embeddings الدفعية

```python theme={null}
# Embed multiple texts at once
response = client.embeddings.create(
    model="text-embedding-3-small",
    input=[
        "First document text",
        "Second document text",
        "Third document text"
    ]
)

for i, data in enumerate(response.data):
    print(f"Document {i}: {len(data.embedding)} dimensions")
```
