Login
Back to Blog
العربيةTutorial

دليل واجهة برمجة تطبيقات Text-Embedding-3-Small - دليل نموذج التضمين من OpenAI

دليل كامل لاستخدام واجهة برمجة تطبيقات OpenAI text-embedding-3-small للبحث الدلالي، وأنظمة RAG، ومطابقة التشابه. يتضمن أمثلة Python وNode.js ومقارنة الأسعار.

C
Crazyrouter Team
January 26, 2026 / 294 views
Share:
دليل واجهة برمجة تطبيقات Text-Embedding-3-Small - دليل نموذج التضمين من OpenAI

هل تبني محرك بحث دلالي أو نظام RAG (Retrieval-Augmented Generation)؟ يعد Text-embedding-3-small أحدث نموذج تضمين من OpenAI يقوم بتحويل النص إلى متجهات رقمية، مما يمكّن من عمليات بحث تشابه قوية واسترجاع فعّال للمحتوى.

في هذا الدليل ستتعلم:

  • ما هي تضمينات النص ولماذا هي مهمة
  • كيفية استخدام واجهة برمجة تطبيقات text-embedding-3-small
  • أمثلة كود كاملة بـ Python وNode.js
  • أبعاد مخصصة لتحسين التخزين
  • مقارنة الأسعار وتحسين التكلفة

What is Text-Embedding-3-Small?#

يعد Text-embedding-3-small نموذج تضمين مدمج من OpenAI تم إصداره في يناير 2024. يقوم بتحويل النص إلى متجهات ذات 1536 بُعدًا تلتقط المعنى الدلالي، مما يمكّن من:

  • البحث الدلالي (Semantic Search): إيجاد المستندات ذات الصلة بناءً على المعنى وليس مجرد الكلمات المفتاحية
  • أنظمة RAG: استرجاع السياق لاستجابات نماذج اللغة الكبيرة (LLM)
  • مطابقة التشابه (Similarity Matching): مقارنة تشابه النصوص للتوصيات
  • التجميع (Clustering): تجميع المستندات المتشابهة معًا
  • التصنيف (Classification): تصنيف النص بناءً على المحتوى

Model Specifications#

SpecificationValue
Model Nametext-embedding-3-small
Default Dimensions1536
Custom Dimensions256, 512, 1024, 1536
Max Input Tokens8,191
OutputNormalized vector

Quick Start#

Prerequisites#

  1. التسجيل في Crazyrouter
  2. الحصول على مفتاح واجهة البرمجة API key من لوحة التحكم
  3. Python 3.8+ أو Node.js 16+

Python Example#

python
from openai import OpenAI

client = OpenAI(
    api_key="your-crazyrouter-api-key",
    base_url="https://crazyrouter.com/v1"
)

# Generate embedding for a single text
response = client.embeddings.create(
    model="text-embedding-3-small",
    input="Machine learning is transforming industries worldwide."
)

embedding = response.data[0].embedding
print(f"Dimensions: {len(embedding)}")  # Output: 1536
print(f"First 5 values: {embedding[:5]}")

Node.js Example#

javascript
import OpenAI from 'openai';

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

async function getEmbedding(text) {
    const response = await client.embeddings.create({
        model: 'text-embedding-3-small',
        input: text
    });

    return response.data[0].embedding;
}

// Usage
const embedding = await getEmbedding('Machine learning is amazing');
console.log(`Dimensions: ${embedding.length}`);  // Output: 1536

cURL Example#

bash
curl -X POST https://crazyrouter.com/v1/embeddings \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-3-small",
    "input": "Hello world"
  }'

Response:

json
{
  "object": "list",
  "model": "text-embedding-3-small",
  "usage": {
    "prompt_tokens": 2,
    "total_tokens": 2
  },
  "data": [
    {
      "object": "embedding",
      "index": 0,
      "embedding": [-0.0020785425, -0.049085874, 0.02094679, ...]
    }
  ]
}

Batch Embedding#

قم بمعالجة عدة نصوص في طلب API واحد لتحسين الكفاءة:

python
from openai import OpenAI

client = OpenAI(
    api_key="your-crazyrouter-api-key",
    base_url="https://crazyrouter.com/v1"
)

# Batch embedding - multiple texts at once
texts = [
    "Python is a programming language",
    "JavaScript runs in browsers",
    "Machine learning uses neural networks"
]

response = client.embeddings.create(
    model="text-embedding-3-small",
    input=texts
)

# Access each embedding
for i, data in enumerate(response.data):
    print(f"Text {i}: {len(data.embedding)} dimensions")

# Output:
# Text 0: 1536 dimensions
# Text 1: 1536 dimensions
# Text 2: 1536 dimensions

Custom Dimensions#

قم بتقليل تكاليف التخزين باستخدام أبعاد أصغر. يدعم النموذج تقليل الأبعاد مع الحفاظ على الجودة:

python
# Use 512 dimensions instead of 1536
response = client.embeddings.create(
    model="text-embedding-3-small",
    input="Your text here",
    dimensions=512  # Options: 256, 512, 1024, 1536
)

embedding = response.data[0].embedding
print(f"Dimensions: {len(embedding)}")  # Output: 512

Dimension Comparison#

DimensionsStorage (per vector)Use Case
2561 KBتطبيقات الجوال، التخزين المحدود
5122 KBأداء متوازن
10244 KBاحتياجات دقة عالية
15366 KBأعلى دقة ممكنة

Building a Semantic Search System#

إليك مثال كامل لبناء نظام بحث دلالي:

python
import numpy as np
from openai import OpenAI

client = OpenAI(
    api_key="your-crazyrouter-api-key",
    base_url="https://crazyrouter.com/v1"
)

def get_embedding(text):
    """Get embedding for a single text"""
    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=text
    )
    return response.data[0].embedding

def cosine_similarity(a, b):
    """Calculate cosine similarity between two vectors"""
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

# Document database
documents = [
    "Python is great for data science and machine learning",
    "JavaScript is essential for web development",
    "Docker containers simplify deployment",
    "Kubernetes orchestrates container workloads",
    "PostgreSQL is a powerful relational database"
]

# Pre-compute embeddings for all documents
doc_embeddings = [get_embedding(doc) for doc in documents]

# Search function
def search(query, top_k=3):
    query_embedding = get_embedding(query)

    # Calculate similarities
    similarities = [
        cosine_similarity(query_embedding, doc_emb)
        for doc_emb in doc_embeddings
    ]

    # Get top results
    results = sorted(
        zip(documents, similarities),
        key=lambda x: x[1],
        reverse=True
    )[:top_k]

    return results

# Example search
results = search("How to deploy applications?")
for doc, score in results:
    print(f"Score: {score:.4f} - {doc}")

# Output:
# Score: 0.8234 - Docker containers simplify deployment
# Score: 0.7891 - Kubernetes orchestrates container workloads
# Score: 0.6543 - PostgreSQL is a powerful relational database

Integration with Vector Databases#

Pinecone Integration#

python
import pinecone
from openai import OpenAI

# Initialize clients
client = OpenAI(
    api_key="your-crazyrouter-api-key",
    base_url="https://crazyrouter.com/v1"
)

pinecone.init(api_key="your-pinecone-key")
index = pinecone.Index("your-index")

def embed_and_upsert(texts, ids):
    """Embed texts and store in Pinecone"""
    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=texts
    )

    vectors = [
        (id, data.embedding)
        for id, data in zip(ids, response.data)
    ]

    index.upsert(vectors=vectors)

def search_pinecone(query, top_k=5):
    """Search Pinecone with query embedding"""
    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=query
    )

    results = index.query(
        vector=response.data[0].embedding,
        top_k=top_k
    )

    return results

ChromaDB Integration#

python
import chromadb
from openai import OpenAI

client = OpenAI(
    api_key="your-crazyrouter-api-key",
    base_url="https://crazyrouter.com/v1"
)

# Initialize ChromaDB
chroma_client = chromadb.Client()
collection = chroma_client.create_collection("documents")

def get_embeddings(texts):
    """Get embeddings for multiple texts"""
    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=texts
    )
    return [data.embedding for data in response.data]

# Add documents
documents = ["doc1 content", "doc2 content", "doc3 content"]
embeddings = get_embeddings(documents)

collection.add(
    embeddings=embeddings,
    documents=documents,
    ids=["doc1", "doc2", "doc3"]
)

# Query
query_embedding = get_embeddings(["search query"])[0]
results = collection.query(
    query_embeddings=[query_embedding],
    n_results=3
)

Available Embedding Models#

يوفر Crazyrouter إمكانية الوصول إلى عدة نماذج تضمين من OpenAI:

ModelDimensionsPrice RatioBest For
text-embedding-3-small15360.01الاستخدام العام، أفضل قيمة
text-embedding-3-large30720.065احتياجات الدقة العالية
text-embedding-ada-00215360.05التوافق مع الأنظمة القديمة

Pricing Comparison#

ProviderModelPrice per 1M tokens
OpenAI Officialtext-embedding-3-small$0.020
Crazyroutertext-embedding-3-small$0.002
OpenAI Officialtext-embedding-3-large$0.130
Crazyroutertext-embedding-3-large$0.013

تنويه بشأن الأسعار: الأسعار المعروضة لأغراض التوضيح وقد تتغير. تتم المحاسبة الفعلية بناءً على الأسعار اللحظية وقت الطلب.

مثال على توفير التكلفة:

لنظام RAG يعالج 10 مليون رمز (tokens) شهريًا:

  • OpenAI Official: ‏$200 شهريًا
  • Crazyrouter: ‏$20 شهريًا
  • نسبة التوفير: 90%

Best Practices#

1. Batch Your Requests#

python
# Good - single API call for multiple texts
response = client.embeddings.create(
    model="text-embedding-3-small",
    input=["text1", "text2", "text3"]  # Up to 2048 texts
)

# Bad - multiple API calls
for text in texts:
    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=text
    )

2. Cache Embeddings#

python
import hashlib
import json

embedding_cache = {}

def get_embedding_cached(text):
    # Create cache key
    cache_key = hashlib.md5(text.encode()).hexdigest()

    if cache_key in embedding_cache:
        return embedding_cache[cache_key]

    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=text
    )

    embedding = response.data[0].embedding
    embedding_cache[cache_key] = embedding

    return embedding

3. Use Appropriate Dimensions#

  • 256 dimensions: تطبيقات الجوال، أجهزة إنترنت الأشياء (IoT)
  • 512 dimensions: تطبيقات الويب ذات قيود التخزين
  • 1024 dimensions: التطبيقات القياسية
  • 1536 dimensions: متطلبات أعلى دقة

Frequently Asked Questions#

ما الفرق بين text-embedding-3-small و text-embedding-3-large؟#

ينتج text-embedding-3-small متجهات ذات 1536 بُعدًا وهو مُحسّن من حيث الكلفة. بينما ينتج text-embedding-3-large متجهات ذات 3072 بُعدًا بدقة أعلى ولكن بتكلفة أعلى بمقدار 6.5 مرة. لمعظم التطبيقات، يوفر text-embedding-3-small نتائج ممتازة.

Can I reduce dimensions after generating embeddings?#

نعم، يمكنك استخدام المعامل dimensions لإنشاء متجهات أصغر مباشرة. هذا أكثر كفاءة من إنشاء متجهات كاملة ثم اقتطاعها.

كم عدد النصوص التي يمكنني تضمينها في طلب واحد؟#

يمكنك تضمين ما يصل إلى 2048 نصًا في طلب API واحد. بالنسبة لمجموعات البيانات الكبيرة، قم بتقسيم الطلبات على دفعات من 2048 نصًا.

Are the embeddings normalized?#

نعم، يعيد text-embedding-3-small متجهات مُطبَّعة (ذات طول وحدوي)، لذا يمكنك استخدام حاصل الضرب النقطي (dot product) بدلًا من تشابه جيب التمام (cosine similarity) لحسابات أسرع.

Getting Started#

  1. قم بالتسجيل في Crazyrouter
  2. احصل على مفتاح واجهة البرمجة API key من لوحة التحكم
  3. ثبّت SDK: ‏pip install openai أو npm install openai
  4. ابدأ في إنشاء التضمينات باستخدام أمثلة الكود أعلاه

مقالات ذات صلة:

للاستفسارات، تواصل مع support@crazyrouter.com

Implementation Guides

Topics

Tutorial

Related Posts

كيفية الوصول إلى GPT-5 و GPT-5.2 عبر واجهة برمجة التطبيقات (API) - دليل المطوّر الكاملTutorial

كيفية الوصول إلى GPT-5 و GPT-5.2 عبر واجهة برمجة التطبيقات (API) - دليل المطوّر الكامل

تعرّف على كيفية الوصول إلى أحدث نماذج OpenAI: GPT-5، GPT-5.2، و o3-pro من خلال واجهة برمجة تطبيقات موحّدة. دليل خطوة بخطوة مع أمثلة Python و Node.js و curl.

Jan 23
Doubao Seed Code: نموذج ByteDance لتوليد الأكواد بالذكاء الاصطناعي - دليل API كاملTutorial

Doubao Seed Code: نموذج ByteDance لتوليد الأكواد بالذكاء الاصطناعي - دليل API كامل

تعرّف على كيفية استخدام Doubao Seed Code، نموذج ByteDance القوي لتوليد الأكواد بالذكاء الاصطناعي. دليل API كامل مع أمثلة Python وNode.js ومقارنة الأسعار.

Jan 26
شرح أبعاد text-embedding-3-small: كيفية اختيار الحجم المناسب للجودة والتكلفةTutorial

شرح أبعاد text-embedding-3-small: كيفية اختيار الحجم المناسب للجودة والتكلفة

دليل عملي لأبعاد text-embedding-3-small، وكيفية الاختيار بين 256 و512 و1024 و1536 بُعد.

Mar 27
دليل تثبيت واستخدام Claude Code - إعداد مساعد البرمجة بالذكاء الاصطناعيTutorial

دليل تثبيت واستخدام Claude Code - إعداد مساعد البرمجة بالذكاء الاصطناعي

دليل كامل لتثبيت وتهيئة Claude Code، مساعد البرمجة بالذكاء الاصطناعي. تعلّم كيفية إعداد Node.js، تهيئة رموز واجهة برمجة التطبيقات (API tokens)، والبدء في الب...

Jan 24
أفضل مولدات الموسيقى بالذكاء الاصطناعي 2026: مقارنة بين Suno وUdio وStable AudioTutorial

أفضل مولدات الموسيقى بالذكاء الاصطناعي 2026: مقارنة بين Suno وUdio وStable Audio

قد يكون اختيار مولّد الموسيقى المناسب بالذكاء الاصطناعي مربكًا. تقارن هذه المقالة بين أفضل أدوات الموسيقى بالذكاء الاصطناعي المتاحة في عام 2026، بما في ذلك S...

Jan 23
دليل مستخدم Gemini CLI - Google AI في سطر الأوامر لديكTutorial

دليل مستخدم Gemini CLI - Google AI في سطر الأوامر لديك

دليل كامل لتثبيت وتهيئة Gemini CLI، أداة الذكاء الاصطناعي مفتوحة المصدر من Google لسطر الأوامر. تعلّم كيفية إعداد البروكسي، استخدام الأدوات المدمجة، وأتمتة س...

Jan 24