Awesome Free LLM APIs IR

API رایگان Embedding؛ راهنمای انتخاب سرویس تبدیل متن به بردار

راهنمای مقایسه APIهای رایگان Embedding برای RAG، جست‌وجوی معنایی و پردازش متن فارسی؛ همراه با سهمیه، ابعاد بردار، کیفیت و دسترسی ایران.

آخرین بازبینی: 2026-08-05

پاسخ سریع: Embedding متن را به بردار عددی تبدیل می‌کند و پایه جست‌وجوی معنایی، RAG و دسته‌بندی سندها است. برای انتخاب API رایگان Embedding باید ابعاد بردار، طول Context، زبان‌های پشتیبانی‌شده، سهمیه درخواست، قیمت پس از اتمام سهمیه و سیاست نگهداری داده را هم‌زمان بررسی کنید. یک سرویس ممکن است برای متن انگلیسی عالی باشد اما کیفیت مطلوبی برای متن فارسی نداشته باشد.

آخرین داده‌های تاریخ‌دار سرویس‌ها در کاتالوگ رایگان LLM قرار دارد.

Embedding چیست و چرا مهم است؟

مدل Embedding متن ورودی را به یک بردار عددی با ابعاد مشخص تبدیل می‌کند. این بردارها شباهت معنایی متون را نشان می‌دهند: دو متن با معنای مشابه به بردارهای نزدیک‌تری تبدیل می‌شوند.

کاربردهای اصلی Embedding:

  • RAG (Retrieval-Augmented Generation): بازیابی سندهای مرتبط از دیتابیس برداری قبل از ارسال به مدل زبانی
  • جست‌وجوی معنایی: جایگزینی جست‌وجوی کلمه‌ای با جست‌وجوی بر اساس معنا
  • دسته‌بندی متن: خوشه‌بندی و طبقه‌بندی سندها بدون برچسب دستی
  • تشابه سنجه: مقایسه شباهت دو متن یا سند

معیارهای انتخاب API Embedding

۱. ابعاد بردار (Dimensions)

هر مدل Embedding خروجی را با ابعاد مشخصی تولید می‌کند:

  • 384-768 بعد: مناسب برای پروژه‌های کوچک و متوسط
  • 1024-1536 بعد: مناسب برای پروژه‌های پیچیده‌تر
  • 3072+ بعد: بالاترین کیفیت اما هزینه ذخیره‌سازی و جست‌وجو بیشتر

ابعاد بیشتر لزوماً بهتر نیست. ابعاد مناسب به حجم داده، پیچیدگی معنا و بودجه زیرساخت بستگی دارد.

۲. طول Context (Max Tokens)

تعداد توکن‌هایی که مدل می‌تواند در هر درخواست پردازش کند:

  • برای سندهای کوتاه (پاراگراف، FAQ) اکثر مدل‌ها کافی‌اند
  • برای سندهای بلند (مقالات، کتاب‌ها) به مدل‌های با Context طولانی‌تر نیاز است
  • سندهای بلند معمولاً باید به بخش‌های کوچکتر تقسیم شوند (Chunking)

۳. پشتیبانی زبانی

  • مدل‌های چندزبانه معمولاً برای متن فارسی نتایج قابل قبولی دارند
  • کیفیت Embedding برای زبان‌های کم‌منبع مانند فارسی ممکن است کمتر از انگلیسی باشد
  • اگر کاربرد اصلی جست‌وجوی فارسی است، مدل‌های چندزبانه را با داده فارسی آزمایش کنید

۴. سهمیه و هزینه

  • بسیاری از سرویس‌ها سهمیه رایگان ماهانه دارند
  • پس از اتمام سهمیه، هزینه هر 1M توکن یا هر 1M بردار را بررسی کنید
  • برخی سرویس‌ها مدل‌های رایگان را از مدل‌های پولی جدا کرده‌اند

۵. سیاست نگهداری داده

  • آیا درخواست‌های Embedding ذخیره می‌شوند؟
  • آیا داده برای بهبود مدل استفاده می‌شود؟
  • برای پروژه‌های حساس، سرویس‌هایی با سیاست صریح عدم ذخیره را ترجیح دهید

مقایسه APIهای رایگان Embedding

OpenAI text-embedding

  • ابعاد: 1536 (text-embedding-3-small) یا 3072 (text-embedding-3-large)
  • سهمیه رایگان: ندارد (فقط پس از شارژ حساب)
  • مزیت: کیفیت بالا، سند رسمی
  • محدودیت: نیاز به کارت بانکی

Jina Embeddings

  • ابعاد: 1024 یا 768
  • سهمیه رایگان: 1M توکن در ماه
  • مزیت: پشتیبانی چندزبانه، سهمیه رایگان واقعی
  • محدودیت: ممکن است نیاز به کارت بانکی برای ثبت‌نام باشد

Cohere Embed

  • ابعاد: 1024
  • سهمیه رایگان: 1000 درخواست در ماه
  • مزیت: کیفیت بالا برای متن‌های طولانی
  • محدودیت: سهمیه رایگان محدود

Nomic Embed

  • ابعاد: 768
  • سهمیت رایگان: قابل اجرا با Ollama به‌صورت محلی
  • مزیت: بدون نیاز به API، حریم‌خصوصی کامل
  • محدودیت: نیاز به سخت‌افزار محلی

نکات فنی برای استفاده از Embedding API

انتخاب اندازه Chunk

متن‌های طولانی باید به بخش‌های کوچکتر تقسیم شوند:

  • 256-512 توکن: مناسب برای FAQ و پرسش‌های کوتاه
  • 512-1024 توکن: مناسب برای مقالات و سندهای متوسط
  • بیش از 1024 توکن: معمولاً با افت کیفیت همراه است

نکات فارسی

  • متن فارسی را قبل از Embedding نرمالایز کنید (نیم‌فاصله، یونیکد)
  • علائم نگارشی و اعداد فارسی ممکن است روی کیفیت Embedding تأثیر بگذارند
  • برای جست‌وجوی فارسی، Hybrid Search (کلمه‌ای + معنایی) معمولاً بهتر از Embedding خالص عمل می‌کند

مثال: دریافت Embedding با API سازگار با OpenAI

import os
import requests

api_key = os.environ["EMBEDDING_API_KEY"]
base_url = "https://api.groq.com/openai/v1"

response = requests.post(
    f"{base_url}/embeddings",
    headers={"Authorization": f"Bearer {api_key}"},
    json={"model": "nomic-embed-text-v1.5", "input": "متن فارسی شما اینجا"}
)
embeddings = response.json()["data"][0]["embedding"]

جمع‌بندی

انتخاب API Embedding باید بر اساس نیاز واقعی پروژه باشد. برای شروع، یک مدل رایگان یا محلی (Ollama) کافی است. با رشد پروژه، کیفیت Embeding را روی داده واقعی ارزیابی و سپس سرویس را ارتقا دهید.

مقایسه با راه‌حل‌های محلی

اگر حجم داده‌های شما زیاد است یا به حریم خصوصی بالایی نیاز دارید، راه‌حل‌های محلی مانند Ollama با مدل‌هایی مانند nomic-embed-text می‌توانند گزینه مناسبی باشند. مزیت اصلی آن‌ها عدم وابستگی به اینترنت و عدم ارسال داده به سرورهای خارجی است. از معایب آن‌ها می‌توان به نیاز به سخت‌افزار قوی‌تر و مدیریت خود مدل‌ها اشاره کرد. برای پروژه‌های کوچک تا متوسط، APIهای رایگان معمولاً مقرون‌به‌صرفه‌تر هستند.

نکات عملی برای توسعه‌دهندگان ایرانی

  • قبل از انتخاب Provider، وضعیت دسترسی از ایران را بررسی کنید
  • از Providerهایی که Free Tier واقعی و بدون نیاز به کارت اعتباری ارائه می‌دهند شروع کنید
  • برای پروژه‌های دانشجویی، ابتدا از Ollama استفاده کنید و سپس در صورت نیاز به API مهاجرت کنید
  • همیشه یک Plan B برای مواقعی که API اصلی در دسترس نیست داشته باشید

نحوه ثبت‌نام

برای استفاده از یک API رایگان Embedding:

  1. از کاتالوگ رایگان LLM یک Provider Embedding را انتخاب کنید
  2. در وب‌سایت Provider ثبت‌نام کنید
  3. بخش API Keys یا Dashboard را پیدا کنید
  4. یک کلید API جدید بسازید
  5. کلید را در فایل .env ذخیره کنید
  6. مدل مورد نظر را انتخاب کنید (مثلاً nomic-embed-text-v1.5 یا text-embedding-3-small)
  7. با درخواست ساده API تست کنید

اولین درخواست API

import os
import requests

api_key = os.environ["EMBEDDING_API_KEY"]
base_url = "https://api.groq.com/openai/v1"

response = requests.post(
    f"{base_url}/embeddings",
    headers={"Authorization": f"Bearer {api_key}"},
    json={"model": "nomic-embed-text-v1.5", "input": "متن تستی شما"}
)
print(response.json()["data"][0]["embedding"][:5])

خطاهای رایج و رفع آنها

خطاعلتراه‌حل
Model not foundمدل انتخاب شده در Free Tier نیستمدل رایگان جایگزین انتخاب کنید
429 Too Many RequestsRate Limit فعال شدهExponential Backoff اضافه کنید
Invalid API Keyکلید نامعتبرکلید را مجدداً بسازید
Unsupported languageزبان فارسی توسط مدل پشتیبانی نمی‌شودمدل چندزبانه دیگری امتحان کنید
Dimension mismatchابعاد بردار با انتظار شما متفاوت استمستندات مدل را بررسی کنید

چه زمانی از این ارائه‌دهنده استفاده نکنیم

  • داده‌های بسیار حساس: از Ollama محلی استفاده کنید
  • حجم داده بسیار بالا: APIهای رایگان محدودیت حجمی دارند
  • نیاز به کیفیت بالا: ممکن است نیاز به مدل پولی باشد
  • پروژه‌های realtime: تأخیر API ممکن است مشکل‌ساز باشد
  • عدم دسترسی از ایران: ابتدا سیاست دسترسی Provider را بررسی کنید

منابع رسمی بررسی‌شده

وضعیت ایران و نکات ویژه برای کاربران

  • Groq Embedding از ایران قابل دسترسی است و نیاز به کارت بانکی ندارد
  • از مدل‌های محلی مانند Ollama برای داده‌های حساس استفاده کنید
  • مدل‌های چندزبانه معمولاً برای فارسی مناسب‌ترند
  • قبل از انتخاب Provider، وضعیت دسترسی را در کاتالوگ بررسی کنید

برای مقایسه سهمیه، مدل‌ها و وضعیت دسترسی ایران، کاتالوگ رایگان LLM را بررسی کنید. فایل‌های منبع و گزارش مشکلات در مخزن GitHub در دسترس هستند.

راهنماهای مرتبط

  • [راهنمای LLM رایگان برای ایران](free-llm-api.md) — معرفی سرویس‌های رایگان بدون کارت بانکی
  • [راهنمای ثبت‌نام و ساخت حساب در Providerها](api-key-security.md) — نکات امنیت کلید و ساخت حساب
  • [زبان فارسی و ساخت مدل Embedding برای داده‌های حساس](build-persian-chatbot-python.md) — مثال عملی پروژه فارسی